《2022年计算机温度控制系统课程设计方案》由会员分享,可在线阅读,更多相关《2022年计算机温度控制系统课程设计方案(29页珍藏版)》请在金锄头文库上搜索。
1、1 / 29 目录1. 设计目的 . 1 2. 设计要求和设计指标 . 1 3. 总体方案设计 . 1 4. 硬件选择以及相关电路设计. 1 4.1 温度传感器的选择. 1 4.2 模数转换器 . 3 4.2.1ADC0809内部结构 . 3 4.2.2 信号引脚 . 4 4.2.3 工作时序与使用说明. 6 4.3 控制器 89C51. 7 4.4 数码管显示电路. 8 4.4.1 LED 数码管的组成 . 8 4.4.2 数码管显示方式. 9 5.PID 控制算法 . 10 6. 各子程序设计及流程图 . 11 6.1 A/D 转换程序流程图 . 11 6.2 显示程序流程图 . 12 6
2、.3PID 控制器流程图 13 6.4 温度控制总程序流程图. 14 总结. 15 参考文献 . 16 附录 1:温度控制系统总电路图. 17 附录 2:温度控制系统程序清单. 19 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 29 页2 / 29 摘要温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。本设计介绍了以AD590集成温度传感器为采集器、AT89C51 为控制器、 ADC0809 为 A/D转换器对温度进行智能控制的温度控制系
3、统。其主要过程如下:利用传感器对将非电量信号转化成电信号,转换后的电信号再入A/D 转换成数字量,传递给单片机进行数据处理,并向外围设备发出控制信号。随着工业技术的不断发展,传统的控制方式已经不能满足高精度、高速度的控制要求。如接触器温度控制仪表,其主要缺点是温度波动范围大,由于它主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。近几年来快速发展了多种先进的温度控制方式,如:直接数字控制DDC ),推断控制,预测控制,模糊控制,鲁棒控制 Robust Control),推理控制等, PID 控制,神经网络及遗传算法控制等1 。这些控制
4、技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。论文首先介绍了单片机控制系统的整体方案设计及原理,然后具体介绍了控制系统的温度传感器部分、A/D 转换部分、控制器89C51部分以及数码管显示和键盘控制部分,接着相信介绍了温度控制系统各个单元电路的设计,最后阐述了温度控制系统软件设计的主程序和各个子程序。关键字 :单片机 89C51 温度传感器 A/D 转换器温度控制精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 29 页0 / 29 1. 设计目的设计制作和调试一个由工业控制机控制的
5、温度测控系统。通过这个过程学习温度的采样方法, A/D变换方法以及数字滤波的方法。通过实践过程掌握温度的几种控制方法,了解利用计算机进行自动控制的系统结构。2. 设计要求和设计指标1、每组 7 名同学,每个小组根据设计室提供的设备及设计要求,设计出实际电路组成一个完整的计算机温度测控系统。2、根据设备情况以及被控对象,选择12种合适的控制算法,框图和源程序,并进行实际操作和调试通过。编制程序温度指标: 6080之间任选;偏差: 1。3. 总体方案设计本系统主要由数据采集、信号放大、模数转换等模块构成。设计思想是通过温度传感器将温度信号转变为电流电压)信号,但我们要知道经温度变化引起电流电压)信
6、号的改变是非常小的,此时如果被模数转换器采集的话效果是非常不明显的,因此我们将其通过一个信号放大模块进行放大。再通过模数转换器后送入单片机AT89C51 ,而单片机通过PID 算法控制烘箱的电炉加热,并且使数码管显示实时温度,从而实现温度的高精度控制。4. 硬件选择以及相关电路设计4.1 温度传感器的选择传感器的选取目前市场上温度传感器繁多就此我们提出了以下三种选取方案:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 29 页1 / 29 方案一:选用铂电阻温度传感器,此类温度传感器在各方面特性都比较优秀,但其成本较高。方案二:采用热敏
7、电阻,选用此类元器件有价格便宜的优点,但由于热敏电阻的非线性特性会影响系统的精度。方案三:选用美国Analog Devices 公司生产的二端集成电流传感器AD590 ,此器件具有体积小、质量轻、线形度好、性能稳定等优点。其测量范围在-50-+150 ,满刻度范围误差为 0.3 ,当电源电压在510V之间,稳定度为 1时,误差只有 0.01,其各方面特性都满足此系统的设计要求。比较以上三种方案,方案三具有明显的优点,因此此次设计选用方案三。图 4-1 温度采集过程图选用温度传感器AD590 ,AD590具有较高精度和重复性 重复性优于0.1 ,其良好的非线形可以保证优于0.1 的测量精度,利用
8、其重复性较好的特点,通过非线形补偿,可以达到0.1 测量精度)。超低温漂移高精度运算放大器OP-07 将“温度 -电压”信号放大。便于A/D 进行转换,以提高温度采集电路的可靠性。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为 10mV/K ,温度 0时输出为 0,温度 25时输出为 2.982V。电流精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 29 页2 / 29 输出型的灵敏度为1A/K。这样便于 A/D 转换器采集数据。4.2 模数转换器ADC0809 是 M美国国家半导体公司生产的CMOS 工艺
9、 8 通道, 8 位逐次逼近式 A/D 转换器。其内部有一个8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通8 路模拟输入信号中的一个进行A/D 转换,其转换时间为100s 左右。是目前国内应用最广泛的8位 通 用A/D芯片。图 4-2 ADC0809 引脚图4.2.1ADC0809 内部结构图中多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用一个A/D 转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对 A、B、C 3 个地址位进行锁存和译码,其译码输出用于通道选择,其精选学习资料 - - - - - - - - - 名师归纳总结 - - - -
10、- - -第 5 页,共 29 页3 / 29 转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表 4-1为通道选择表。图 4-3 ADC0809 内部结构图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 29 页4 / 29 表 4-1 通道选择表4.2.2信号引脚ADC0809 的内部结构和外部引脚分别如图4-3 和图 4-2 所示。内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:1)IN0IN78 路模拟输入,通过3 根地址译码线 ADDA、ADDB、ADDC来
11、选通一路。2)D7D0 A/D 转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。 8 位排列顺序是 D7为最高位, D0为最低位。3)ADDA、ADDB、ADDC模拟通道选择地址信号,ADDA为低位, ADDC为高位。地址信号与选中通道对应关系如表4-1 所示。、VR(- 正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+=5V,VR(-=0V;双极性输入时,VR(+、VR(- 分别接正、负极性的参考电压。5)ALE 地址锁存允许信号,高电平有效。当此信号有效时,A、B、C 三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和 ST
12、ART信号连在一起,以便同时锁存通道地址和启动A/D 转换。(6)START A/D 转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存止,重新从头开始转换器清零,下降沿开始A/D 转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 29 页5 / 29 7)EOC 转换结束信号,高电平有效。该信号在A/D 转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作
13、为启动信号反馈接到START 端,但在刚加电时需由外电路第一次启动。8) OE 输 出 允许 信 号 , 高 电 平有 效 。 当 微 处理 器 送 出 该 信 号 时 ,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。4.2.3工作时序与使用说明图 4-4 ADC0809 工作时序图用单片机控制ADC时,多数采用查询和中断控制两种方式。查询法是在单片机把启动命令送到ADC之后,执行别的程序,同时对ADC的状态进行查询,以检查 ADC变换是否已经完成,如查询到变换已结束,则读入转换完毕的数据。中断控制是在启动
14、信号送到ADC之后,单片机执行别的程序。当ADC转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换数据,并进行必要的数据处理,然后返回到原程序。这种方法单片机无需进行转换时间管理,CPU 效率高,所以特别适合于变换时间较长的ADC 。本设计采用查询方式进行数据收集。由于ADC0809 片内无时钟,故运用8051 提供精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 29 页6 / 29 的地址锁存使能信号ALE经 D 触发器二分频后获得时钟。因为ALE信号的频率是单片机时钟频率的1/6 ,如果时钟频率为
15、6MHz, 则 ALE信号的频率为1MHz ,经二分频后为 500kHz ,与 AD0809时钟频率的典型值吻合。由于AD0809具有三态输出锁存器,故其数据输出引角可直接与单片机的总线相连。地址码引脚ADDA C分别与地址总线的低3 位 A0、A1、A2 相连,以选通IN0IN7 中的一个通道。采用单片机的P2.7和启动转换信号,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51指令系统,片内置通用8 位中央处理器 (CPU 和 Flash 存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51 单片机的
16、主要特性:(1与 MCS-51 兼容, 4K字节可编程闪烁存储器;(2灵活的在线系统编程,掉电标识和快速编程特性;(3寿命为 1000 次写/ 擦周期,数据保留时间可10 年以上;(4全静态工作模式: 0Hz-33Hz;(5三级程序存储器锁定;(6128*8 位内部 RAM ,32 可编程 I/O 线;(7两个 16 位定时器 / 计数器, 6 个中断源;(8全双工串行 UART 通道,低功耗的闲置和掉电模式; (9 片内振荡器和时钟电路;RSTRSTP10P11P12P13P14P15P16P17XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/
17、AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122pFC222pFX1CRYSTALR21kR110k
18、C422uF精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 29 页8 / 29 图 4-5 AT89C51 结构图4.4 数码管显示电路4.4.1 LED数码管的组成LED 数码管显示器是由发光二极管显示字段的显 示器 件, 也称 为数 码管。其结构如图4-6所示。它由 8 个发光二极管构成,通过不同的组合可用来显示0-9、A-F 及小数点“ . ”等字符。数码管有共阴极和共阳极两种结构规格,电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管的发光二极管是阳极,并接高电平,对于需点
19、亮的发光二极管将其阴极接低电平即可。图 4-6 LED 数码管显示图4.4.2数码管显示方式1) 静态显示方式直接利用并行口输出。 LED 显示工作于静态显示方式时, 各位的共阴极连接在一起接地。每位的段选线分别于一个8 位的锁存输出相连。一般称之为静态显示, 是由于显示器中的各位相互独立。而且各位的显示字符一经确定, 相应锁精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 29 页9 / 29 存器的输出将维持不变 , 直到显示另一个字符为止。本实验采用串入并出的静态显示方式。利用通信号串行输出。在实际应用中, 多位 LED显示时,为
20、了简化电路,在系统不需要通信功能时,经常采用串行通信口工作方式0,外接移位寄存器74LS164来实现静态显示。, 然后进行比例、积分、微分计算,通过线性组合构成控制器,实现对被控对象的控制。对于增量型的PID 控制规律为:Uk=kp*ek+ki* ek+kd*(ek-ek-1 Uk为 PID 控制的输出信号6. 各子程序设计及流程图6.1 A/D 转换程序流程图开始选择通道,允许 A/D 转换读寄存器转换是否结束精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 29 页11 / 29 图 6-1 A/D转换程序流程图6.2 显示程序流程
21、图开始取出要显示的数送位段码到输出延时4位数据显示完修改显示缓冲区求下一位选码读取转换值N Y 数据处理精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 29 页12 / 29 图 6-2 显示程序流程图6.3 PID控制器流程图返回精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 29 页13 / 29 图 6-3 PID控制器流程图6.4 温度控制总程序流程图开始系统各模块初始化读测量温度子程序精选学习资料 - - - - - - - - - 名师归纳总结 - - - - -
22、 - -第 16 页,共 29 页14 / 29 图 6-4 温度控制总程序流程图总结在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速性要求不高。在论文中Y N 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 29 页15 / 29 简单分析了单片机温度控制系统设计过程及实现方法。本系统的测温范围为-1040,温度检测系统根据用户设定的温度范围完成一定范围的温度控制。AT89C5 包括 14k 字节 Flash 闪速存储器, 128 字节内部 RAM ,32 个 I O口
23、线,两个 16 位定时计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路,都为我们实现电路功能提供了非常有利的条件。同时也因为开发环境友好,易用,方便,大大加快本系统设计开发。参考文献1. 于海生等编著微型计算机控制技术M 北京:机械工业出版社,2007. 2. 邴志刚等编著 . 计算机控制:基础 ?技术?工具?实例 M. 北京:清华大学出版社, 2005. 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 29 页16 / 29 3. 邹伯敏主编 . 自动控制原理 (第二版 M. 北京:机械工业出版社 ,20
24、02. 4. 吕震中,刘吉臻,王志明编. 计算机控制技术与系统. 北京: 电子工业出版社 ,2002 8. 周润景,张丽娜基于PROTEUS 的电路及单片机系统设计与仿真M 北京: 航空航天大学出版社 ,2006.P321 P326 9. 王忠飞,胥芳 MCS-51 单片机原理及嵌入式系统应用M 西安:西安电子科技大学出版社, 2007P268-273 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 29 页17 / 29 附录 1:温度控制系统总电路图RSTRSTP10P11P12P14P15P16P17P13D0D1D2D3D4D
25、5D6D71/2ALECLOCKALEP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A82
26、1P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122pFC222pFX1CRYSTALR21kR110kC422uFD1LED-REDRL1G2R-14-AC120Q1MPS6518234567891RP1RESPACK-8OUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026
27、ALE22U2ADC0809D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374LS3731123U1:A74321123U3:A743212U4:A740412U2:A7404精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 29 页18 / 29 P10P15P11P12P13P14P16P17DULAD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7WELAD02D13D24D35D46D57D68D79Q019Q118Q217Q316
28、Q415Q514Q613Q712LE11OE1U574HC5D02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE11OE1U474HC573精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 29 页19 / 29 附录 2:温度控制系统程序清单1)主函数如下:#include #include #includeKEYSCAN.H #includePID.H void PIDBEGIN(void 。 / PID参数初始化 / void main( unsigned char
29、key1=0,i,k。 unsigned int tmp。 unsigned char shu3=13,13,0。 unsigned char counter=0。 PIDBEGIN(。 while(1 if(counter- = 0 tmp = ReadTemperature( 。counter = 20。 view(tmp 。 /温度显示;compare_temper(。 2) PID 算法温度控制程序#ifndef _PID_H_ #define _PID_H_ 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 29 页20 /
30、29 #include #include #include struct PID unsigned int SetPoint。 / 设定目标 Desired Value unsigned int Proportion。 / 比例常数 Proportional Const unsigned int Integral。 / 积分常数 Integral Const unsigned int Derivative。 / 微分常数 Derivative Const unsigned int LastError。 / Error-1 unsigned int PrevError。 / Error-2 un
31、signed int SumError。 / Sums of Errors struct PID spid。 / PID Control Structure unsigned int rout。 / PID Response (Output unsigned int rin。 / PID Feedback (Input sbit output=P34。unsigned char high_time,low_time,count=0。/ 占空比调节参数unsigned char set_temper=33。void PIDInit (struct PID *pp memset ( pp,0,si
32、zeof(struct PID。 unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint unsigned int dError,Error。Error = pp-SetPoint - NextPoint。 / 偏差pp-SumError += Error。 / 积分dError = pp-LastError - pp-PrevError。 / 当前微分pp-PrevError = pp-LastError。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 29 页21
33、/ 29 pp-LastError = Error。return (pp-Proportion * Error/比例+ pp-Integral * pp-SumError /积分项+ pp-Derivative * dError。 / 微分项 温度比较处理子程序compare_temper( unsigned char i。/EA=0。if(set_tempertemper if(set_temper-temper1 high_time=100 。low_time=0 。 else for(i=0。i get_temper(。rin = s。 / Read Input rout = PIDCa
34、lc ( &spid,rin 。 / Perform PID Interation if (high_time high_time=(unsigned char(rout/800。else high_time=100 。low_time= (100-high_time。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 29 页22 / 29 else if(set_temper if(temper-set_temper0 high_time=0 。low_time=100 。 else for(i=0。i get_temper(。rin
35、 = s。 / Read Input rout = PIDCalc ( &spid,rin 。 / Perform PID Interation if (high_time high_time=(unsigned char(rout/10000。else high_time=0 。low_time= (100-high_time。/EA=1。 / T0 中断服务子程序,用于控制电平的翻转 ,40us*100=4ms 周期void serve_T0( interrupt 1 using 1 if(+count 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
36、 -第 25 页,共 29 页23 / 29 output=1 。else if(count output=0 。 else count=0。TH0=0x2f。TL0=0xe0。 void PIDBEGIN( TMOD=0x01。TH0=0x2f。TL0=0x40。EA=1 。ET0=1 。TR0=1 。high_time=50 。low_time=50 。PIDInit ( &spid 。 / Initialize Structure spid.Proportion = 10。 / Set PID Coefficients spid.Integral = 8。spid.Derivative
37、=6。spid.SetPoint = 100。 / Set PID Setpoint #endif (3ADC0809转换子程序#define uchar unsigned char 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 26 页,共 29 页24 / 29 #define uint unsigned int #define IN0 XBYTE0x7ff8 /*设置 ADC0809 的通道 0 地址*/ sbit ad_busy=P33 。 /*即 EOC 状态*/ uint overflow_count = 0。 /*T1中断次数初值*
38、/ void ad0809(uchar xdata * x /*采样函数,结果 x 放外部数据存储器 */ uchar i。 uchar idata * ad_adr。 ad_adr=&IN0 。 for(i=0。i /*处理 8 通道*/ *ad_adr=0。 /*启动转换 */ i=i。 /*延时等待 EOC 变低*/ i=i。 while(ad_busy=0。 /*查询等待转换结束 */ xi=*ad_adr。 /*存转换结果 */ *(*(p+j+i=xi。 ad_adr+ 。 /*下一通道 */ /* 定时器 1 中断服务程序;每 100ms执行一次, fosc=6MHz*/ voi
39、d timer1_ISR(void interrupt 3 TH1 = (65536 50000/256 。 /定时器 1 赋初值 TL1 = (65536 50000%256 。 / 100ms/1us=50000次计数 overflow_count+。 void main(void static char xdata ad10。 char (*p8。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 27 页,共 29 页25 / 29 TMOD = 0X10。 /设置定时器 1 工作方式1, TH1 = (65536 50000/256 。 /定
40、时器 1 赋初值 TL1 = (65536 50000%256 。 EA = 1 。 /开定时器 1 中断 ET1 = 1 。 TR1 = 1 。 /启动定时器 1 uchar j。for(j=0。j / *采样 24h*/ if ( overflow_count = 6000 /*10分钟到,采样 ADC0809 通道的值*/ uchar i,(*p8。 uchar idata * ad_adr。 ad_adr=&IN0 。 for(i=0。i /*处理 8 通道*/ *ad_adr=0。 /*启动转换 */ i=i。 /*延时等待 EOC 变低*/ i=i。 while(ad_busy=0
41、。 /*查询等待转换结束 */ xi=*ad_adr。 /*存转换结果 */ ad_adr+ 。 for(i=0。i *(*(p+j+i=xi (4 数码管显示程序unsigned char code DUAN_TABLE=0X3F, 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 28 页,共 29 页26 / 29 0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x77,0x7C,0x39,0x5E,0x79,0x71 。 / 段码void Delay(unsigned char n /延时 0.1*
42、n 毫秒 0 unsigned char i。 do for(i=0。i 。 while(n-。 main( while(1 P1=0xfe。 /位码左边第 1 个 P0=DUAN_TABLE1 。Delay(20 。 / 显示 1 P1=0xfd 。 /位码左边第 2 个 P0=DUAN_TABLE2 。Delay(20 。 / 显示 2 / 位码左边第 3 个 P1=0xfb 。 P0=DUAN_TABLE3 。Delay(20 。 / 显示 3 P1=0xf7 。 / 位码左边第 4 个 P0=DUAN_TABLE4 。Delay(20 。 / 显示 4 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 29 页,共 29 页