数码管动态显示及编程

合集下载

两位数码管显示

两位数码管显示

课程设计说明书课程名称:《单片机技术》设计题目:两位数码管显示设计学院:电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2014年6 月13日课程设计任务书两位数码管显示摘要:两位数码管显示设计是基于AT89S52单片机的两位数码显示系统,通过AT89S52进行控制,利用汇编语言编写两位数码管循环扫描动态显示的专用程序来实现两位数码管动态显示系统。

系统主要由电源模块、复位模块、外部时钟电路模块、数码管显示模块构成。

电源电路通过桥堆2W10和三端稳压器7805将交流电压变为5V的直流电压。

复位电路由电容与按键的并联来实现。

时钟通过外部12M的晶振来控制。

两位数码管显示由两个共阳极的三极管进行驱动。

将汇编语言编写的两位数码管动态显示程序写入单片机,使数码管相应段点亮,同时利用人眼的视觉暂留的特性和数码管的余辉效应,在扫描频率足够高时,人眼无法感觉数码管的变化,从而实现数码管的动态显示。

关键词:AT89S52;两位数码管;7805;2W10;动态显示目录1.设计背景 (1)1.1单片机的应用背景 (1)1.2共阳极数码管的显示方法 (1)1.3共阳极数码管的驱动设计 (1)2.设计方案 (1)2.1方案一:共阳极数码管静态显示 (1)2.2方案二:共阳极数码管动态显示 (2)2.3数码管静态与动态显示的优缺点比较 (3)3.方案实施 (3)3.1电源电路设计 (3)3.2复位及震荡电路 (4)3.3单片机接口 (4)3.4软件设计 (4)3.5调试仿真 (6)4.结果与结论 (7)4.1设计结果 (7)4.2设计结论 (7)5.收获与致谢 (7)6.参考文献 (8)7.附件 (8)1.设计背景1.1单片机的应用背景在信息时代的今天,单片机技术应用越来越广泛,涉及各行各业,几乎很难找到哪个领域没有单片机的踪迹。

如洗衣机、空调、冰箱等的控制系统,就可以用单片机实现。

为了让人们很直观的了解相关设备当前的工作状态,很多时候需要将当前的时间、温度、工作程序等状态通过数码管显示出来,这就涉及到单片机的数码管显示技术。

PLC课程设计-LED灯数码显示控制

PLC课程设计-LED灯数码显示控制

成绩可编程逻辑控制器课程设计报告题目LED灯数码显示控制系别专业名称班级学号姓名指导教师目录一、引言 (4)二、系统总体方案设计 (4)2.1系统硬件配制及组成原理 (4)2.1.1 PLC各组成部件及作用 (4)2.1.2 PLC的分类 (5)2.1.3 LED数码管的结构及工作原理 (5)2.2系统变量定义及分配表 (6)2.3系统接线图设计 (7)三、控制系统设计 (7)3.1控制程序设计思想 (7)3.2控制程序时序图设计 (8)四、系统调试及结果分析 (8)4.1系统调试及解决的问题 (8)4.2结果分析 (8)五、结束语 (8)六、参考文献 (9)附录 (10)LED 数码显示控制一、实验目的了解并掌握LED 数码显示控制中的应用及其编程方法。

二、控制要求按下启动按钮后,由八组LED 发光二极管模拟的八段数码管开始显示:一一显示各段,之后一次显示0、1、2、3、4、5、6、7、8、9、A 、B 、C 、D 、E 、F 再返回初始显示,并循环不止。

三、LED 数码显示控制的实验面板图: 四、实验设备 1、安装了STEP7-Micro/WIN32编程软件的计算机一台2、PC/PPI 编程电缆一根3、锁紧导线苦干五、实验步骤1、根据上表进行输入输出接线;2、编写程序,并把程序输入STEP7中;3、检查输入程序无误以后,将程序下载到主机内,并且把PLC 的工作模式达到RUN 模式;4、拨动输入开关SD ,观察输出LED 的显示结果。

输入接线 SD I0.0 启动 输出 接线 A B CD E F G H Q0.0 Q0.1 Q0.2Q0.3 Q0.4 Q0.5 Q0.6 Q0.7 A B C D E F G H一、引言《可编程逻辑控制器》课程设计是该课程的一个重要教学环节,既有别于毕业设计,又不同于课堂教学。

它需要学生统筹运用所学基本理论、基本方法对现实生活中的实际系统进行设计和调试。

本课程设计是以LED数码管和PLC控制为基础,通过了解PLC的基本编程方法及LED数码管的原理,用顺序控制法实现:按下启动按钮,由八组LED发光二极管模拟的八段数码管开始显示,显示次序是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F再返回初始显示,并循环不止的控制要求。

两位数码管计时0-99 实验

两位数码管计时0-99 实验
该程序具有一定自由性,修改第一行的参数,就可以调节计时的速度。该 值越大,动态扫描每个数的循环次数越多,每个数字显示的时间就越长。该值 越小,动态扫描每个数的循环次数越少,每个数字的显示时间就越短。 注意:在使用定义字节命令伪指令的时候,如果一行写不下,或者为了美观想另起 一行书写,一定注意在新起的一行必须添加伪指令关键字“DB”。另外抄写程序的 学习者一定注意,标号后面的“:”一定不可以省,否则在编译程序的时候会报错。
{ P31=0; P2=a[y]; P30=1; P30=0; P2=a[x]; P31=1;
} } main() { for(i=0;i<100;i++) { b=i/10; //shiwei
c=i%10; //gewei xianshi(c,b); } }
4
单片机实验报告
上述两种编程语言编写程序的思路基本一致,都是通过修改程序中动态显示的 时长实现显示时长的调节。上述两个程序有一个共同的缺点,那就是无法特别准确 的定时。在计时不要求很准确的场合使用可以,但是在对计时准确性要求较高的场 合使用时,则不是很适合。如果要求显示准确性较高,例如秒表,可以采用定时器 中断的方式修改以上程序。
对于没有 Keil 编程软件的编程者,可以将如下代码存入 HEX 文件中,再将该 HEX 文件下载至单片机或导入仿真软件中。 程序 HEX 代码如下: :0300000002008576 :0C008500787FE4F6D8FD758107020000CA :02000000802E50 :100030007530007830B6640050061145053080F503 :1000400075300080F0E53075F00A84F53185F032C6 :100050007C0A7B0A7AFFC2B190B000C2B0E53293F5A0D2B100DAE7DB3E :10007000E3DCDF22C0F9A4B0999282F880908883F3

单片机实验两位数码管显示报告

单片机实验两位数码管显示报告

一、实验目的1、在之前单键实验和中断控制数码管“静态”显示实验的基础上,把单键判断、数码管显示和中断结合起来编写中断程序实现单键控制一位数码管;2、在实现控制一位数码管显示的基础上用单键控制两位数码管显示。

二、实验所需器材与软件硬件:电脑、传输线、AT89S52单片机软件:编程软件Keil uVision3;读写软件MePro V5.02三、实验程序的及其分析:1、单键控制一位数码管显示主要设计思路:在中断主程序后加入单键判断键按下情况判断语句,把数码管显示程序放在中断子程序中。

当有键按下且有中断请求时,重新给数码管显示偏移地址赋值,从而改变显示内容。

程序:ORG 0000HAJMP MAIN ;转向主程序ORG 001BH ;中断矢量地址AJMP T_INT ;转向中断服务程序MAIN: ;主程序标号MOV R3,#0 ;表偏移地址MOV DPTR,#TAB ;把表头地址赋值给寄存器DPTRMOV TMOD,#10H ;设定定时器工作于模式1MOV TH1,#0FEH ;定时器赋初值MOV TL1,#0EHSETB ET1 ;开中断SETB EASETB TR1 ;启动定时器LOOP1:JNB P1.4, LOOP4AJMP LOOP1LOOP4:ACALL DELAYJNB P1.4, LOOP_ADD 单键按下判断程序LOOP_ADD:INC R3CJNE R3,#10,LOOP8MOV R3,#0LOOP8: AJMP LOOP1T_INT: MOV TH1,#0FEHMOV TL1,#0EHMOV A,R3 中断程序内嵌的数码管显示程序MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BRETITAB:DB 0C0H,0F9H,0A4H,0B0H ,99H,92H,82H,0F8H ;表内容DB 80H,90HDELAY:MOV R5,#64HLOOP5:MOV R7,#0FFHLOOP6:NOPNOP 用于单键按下防抖动的延时程序DJNZ R7,LOOP6DJNZ R5,LOOP5RET2、单键控制两位数码管显示设计思路:用两个寄存器分别存放数码管显示的个位和十位,并且在数码管显示程序中用移位指令对数码管的位码进行移位,使每次执行中断程序时显示一位数,循环两次中断程序后“静态”显示两位数字。

plc编程教学:数码管数字显示控制

plc编程教学:数码管数字显示控制

f gb
Q0.2
Q0.3
edc Q0.6
七段码显示器
那么:当I0.0闭时,有:
项目十一、数码管数字显示控制
五、新指令: 1:SEG指令 1、指令形式:
指令表:SEG IN,OUT 梯形图:
SEG EN ENO
2、说明:
???? IN OUT ????
EN端有能流输入时,段码指令是将IN端所指存
储区(字节)的低4位的二进制数(4个二进制数)
所代表的1个十六进制数进行译码,并存入OUT
端码管,经显示这个 个十六进制数。
项目十一、数码管数字显示控制
输 七段码 输出编码 入 显示器 -gfe dcba
0 0 0011 1111 1 1 0000 0110 2 2 0101 1011 3 3 0100 1111 4 4 0110 0110 5 5 0110 1101 6 6 0111 1101 7 7 0000 0111
七段码显示器
七段码显示器是由七只发光 二极管组成的一个字符显示 器,用于显示0~F的16进位 制数字。其各段显示的定义 如图。
接线规则:
a:QX.0
b:QX.1
c:QX.2 e:QX.4
d:QX.3 f:QX.5
g:QX.6
项目十一、数码管数字显示控制
四、七段码显示器
如果: I0.0
Q0.0
a
Q0.1
十六进制数
16#0 16#1 16#2 16#3 16#4 16#5 16#6 16#7
项目十一、数码管数字显示控制
五、新指令: 6:BCD码
10#8 10#9 10#10 10#11
0000 0000 0000 1000 0000 0000 0000 1001 0000 0000 0001 0000 0000 0000 0001 0001

嵌入式实验报告数码管显示实验

嵌入式实验报告数码管显示实验

实验报告课程名称嵌入式系统编程实践实验仪器清华同方辰源嵌入式系统实验箱实验名称实验四:数码管显示实验系别__计算机学院_专业 _班级/学号学生姓名实验日期 2013年10月11日成绩___________________指导教师实验四:数码管显示实验一、实验问题回答(1)如何设置功能3,4中的循环速度?答:利用系统SysTick Handler中断,控制循环速度void SysTick_Handler (void){Event = 1;}(2)若是想实现类似实验(三)通过键盘动态控制循环速度,考虑一下应该如何设计?答:SysTickPeriodSet(SysCtlClockGet() / X)//设置x的大小就可以控制循环的速度。

void Reset_Counter_Speed(int x){SysTickIntDisable();SysTickDisable();SysTickPeriodSet(SysCtlClockGet() / x);// 设置x,控制计数频率,值与频率成正比SysTickEnable();SysTickIntEnable();},达到预期的效果。

二、实验目的和效果(效果即是否达到实验目的,达到的程度如何)学习、了解和掌握数码管工作原理和使用方法实验结果及检查(1)默认在在OLED屏幕上分行显示自己的学号、姓名、项目序号、时间,如“2010011001”、“zhangsan”、“work4”、“2012-11-”(2)首先在屏幕上显示四个功能选单,通过键盘A-F键选择不同功能,选择后屏幕显示相关功能提示,接受键盘输入的数字键0-9并在数码管上显示。

如:开始显示:“please choose the function:”“A: …”“B: …”“C: …”“D: …”按下“A”键后,显示”now you choose function A”(3)按下键盘后,根据不同功能在数码管上显示按键字符。

微机原理七段数码管编程提示

微机原理七段数码管编程提示微机原理是计算机科学中的重要分支,主要研究计算机硬件和软件的结合。

其中,七段数码管是计算机中常用的一种输出设备,用于显示数字和字母等信息。

本文将介绍如何利用微机原理来编程控制七段数码管显示数字。

一、七段数码管的基本原理七段数码管是由七个LED管组成的,每个LED管分别代表一个数码。

通过控制这七个LED管的亮灭状态来显示不同的数字和字母等信息。

一般情况下,七段数码管的控制信号由微控制器输出,通过外部电路将控制信号转换成LED管的亮灭状态。

控制信号的输出需要按照一定的格式进行编程,才能实现七段数码管的正常显示。

二、编程控制七段数码管编程控制七段数码管需要了解七段数码管的控制信号格式。

以常用的共阴极七段数码管为例,其控制信号格式如下:```数码 a b c d e f g0 0 0 0 0 0 0 11 1 0 0 1 1 1 12 0 0 1 0 0 1 03 0 0 0 0 1 1 04 1 0 0 1 1 0 05 0 1 0 0 1 0 06 0 1 0 0 0 0 07 0 0 0 1 1 1 18 0 0 0 0 0 0 09 0 0 0 1 1 0 0A 0 0 0 1 0 0 0B 1 1 0 0 0 0 0C 0 1 1 0 0 0 1D 1 0 0 0 0 1 0E 0 1 1 0 0 0 0F 0 1 1 1 0 0 0```其中,数码表示要显示的数字或字母,a、b、c、d、e、f、g分别代表数码对应的七个LED管。

数码的输出需要将控制信号按照上表的格式进行编程,将每个LED管的控制信号输出到对应的引脚上,从而实现七段数码管的显示。

三、编程示例下面是一个简单的编程示例,控制七段数码管显示数字0~9:```#include <reg51.h>#define uchar unsigned char#define delay_time 500uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};void delay(uchar t){uchar i, j;for(i=0; i<t; i++)for(j=0; j<delay_time; j++);}void main(){uchar i;while(1){for(i=0; i<10; i++){P1 = table[i];delay(10);}}}```在这个示例程序中,我们定义了一个表格table,用于存储0~9的控制信号。

单只数码管循环显示0~9

单只数码管循环显示0~9【任务】在单个数码管上循环显示数字0~9,实现类似于计时(或计数)显示的功能。

【硬件平台】在51单片机最小系统的基础上,以端口P0控制一个七段数码管。

为提高驱动能力,增加了上拉排阻RP1(10k)。

【编程思路】因为这里使用了共阴数码管,所以当P0端口相应引脚为高电平时,点亮相应的数码段。

0~9的段码按相同的时间间隔从单片机内存读到P0口,由此产生从0到9的循环显示效果。

先写下前面三板斧,内涵不赘述:#include <reg51.h>#define uchar unsigned char#define uint unsigned int因为0~9的段码是固定的,不妨将其保存为code类型的数组。

注意是共阴接法,比如要显示“0”,那么P0端口的各引脚电平为:a=b=c=d=e=f=1,g=0,闲置的P0.7=0(按字节给端口赋值,所以闲置位也赋值),表示为二进制是P0.7gfedcba=00111111,对应的十六进制为0x3F。

其余段码可类似分析:uchar code display_code[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x7F,0x6F,0x00 }; //0x00表示段码全灭显示不同的数字之间要有时间间隔,须定义一个延时函数以便主函数调用实现间隔延时:最后编写主函数:【代码展示】#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar codedisplay_code[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x 7F,0x6F,0x00};void delay(uint x){uchar i;while(x--) for(i=0;i<100;i++);}void main(){uchar i=0; //定义数组下标变量,用以遍历数组P0=0x00; //数码管初始不亮while(1){P0=display_code[i]; //0~9对应的段码送给P0口,显示9后段码熄灭(0x00)i=(i+1)%10;//从0循环到9,超过10后又回到0,%为取余数算符}}。

单片机驱动LED数码管电路及编程

单片机驱动LED数码管电路及编程单片机I/O的应用最典型的是通过I/O口与7段LED数码管构成显示电路,我们从常用的LED显示原理开始,详尽讲解利用单片机驱动LED数码管的电路及编程原理,目的在于通过这一编程范例,让初学者了解I/O口的编程原理,意在起举一反三,抛砖引玉的作用。

左图为实验电路图,我们使用80C51单片机,电容C1、C2和CRY1组成时钟振荡电路,这部分基本无需调试,只要元件可靠即会正常起振。

C3和R1为单片机的复位电路,80C51的并行口P1.0-P1.7直接与LED数码管的a-f引脚相连,中间接上限流电阻R3-R10。

值得一提的是,80C51并行口的输出驱动电流并非很大,为使LED有足够的亮度,LED数码管应选用高亮度的器件。

此外,图中的80C51还可选用C51系列的其它单片机,只要它们的指令系统兼容C51即可正常运行,程序可直接移植,例如选用低价Flash型的AT89C1051或2051(详细技术手册)等,它们的ROM可反复擦写,非常适合作实验用途。

程序清单:01 START: ORG 0100H ;程序起始地址02 MAIN: MOV R0,#00H ;从“0”开始显示03 MOV DPTR,#TABLE ;表格地址送数据指针04 DISP: MOV A,R0 ;送显示05 MOVC A,@A+ADPTR ;指向表格地址06 MOV P1,A ;数据送LED07 ACALL DELAY ;延时08 INC R0 ;指向下一个字符09 CJNE R0,#0AH,DISP ;未显示完,继续10 AJMP MAIN ;下一个循环11 DELAY: MOV R1,#0FFH ;延时子程序,延时时间赋值12 LOOP0: MOV R2,#0FFH13 LOOP1: DJNZ R2,LOOP114 DJNZ R1,LOOP015 RET ;子程序返回16 TABLE: DB 0C0H ;字型码表17 DB 0F9H18 DB 0A4H19 DB 0B0H20 DB 99H21 DB 92H22 DB 82H23 DB 0F8H24 DB 80H25 DB 90H26 END ;程序结束。

数码管的动态显示设计与研究

单片机课程设计报告指导老师:张橙班级:自动化072姓名:廖岩学号: 07401100221日期: 2013年1月6日数码管的动态显示设计与研究一:概述动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!随着现代科学技术的不断地进步,人们已经走入了信息的高速时代。

科学的力量日益强大,技术的更新的速度也更加加快了。

计算机走进了千家万户,其中,单片机是一种应用十分广泛的单心片微型计算机,在我国的普及应用已有若干年,上至航天飞机,下至电动玩具,都能见到它的身影。

单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。

事实上单片机是世界上数量最多的计算机。

现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。

手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。

而个人电脑中也会有为数不少的单片机在工作。

汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。

而本次单片机数码管动态显示设计中采用AT89C52。

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。

RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。

vcc(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。

P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数码管动态显示及编程
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

ALE W R RD RXD TXD INT0EA/VP 31X119X218RESET 9RD 17W R
16
INT012INT113
T014T115P101P112P123P134P145P156P167P178
P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN
29
ALE/P 30TXD 11RXD 10VCC 40GND 20U1
89C52
PSEN
P10P11P12P13P14P15P16P17
T0
T1INT1P00P01P02P03P04P05P06P07P 00P 01P 02P 03P 04P 05P 06P 07P20P21P22P23P24P25P26P27
P 20
P 21
P 22
P 23
a b f c g d
e DPY 11
742110
5a b c d e f g 3
dp
dp
a b f c g d
e
dp
a b f c g d
e dp
a b f c g d
e dp C 0
6
C 2
8
C 39
C 4
12
LED
DPY 4-LED
12345678
16
151413121110
9
R 1K
P 00P 01P 02P 03P 04P 05P 06P 07
5V
K99K10A K15
F
P10
P11P12P13
P 14
P 15
P 16
P 17
EA/VP 31X119X218RESET 9RD 17WR
16
INT012INT113T0
14T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN
29
ALE/P 30TXD 11RXD 10VCC 40GND 20U1
89C52
P10P11P12P13P14P15P16P17
K0
0K1
1K2
2K3
3K55K66K7
7K8
8K4
4K11
B K12C
K13D
K14E
#include<reg52.h>
#define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 uchar temp,aa,bai,shi,ge;
sbit dula=P2^6; //段选信号位定义
sbit wela=P2^7; //位选信号未定义
uchar code table[]={ //共阴极数码管编码表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void display(uchar bai,uchar shi,uchar ge); //显示程序void delay(uint z); //延时程序
void init(); //初始化程序void main() //主程序
{
init();//初始化子程序
while(1)
{
if(aa==20) // 每隔1s数码管加一
{
aa=0;
temp++;
if(temp==100)
{
temp=0;
}
bai=temp/100; //将temp分离出来分别显示出来
shi=temp%100/10;
ge=temp%10;
}
display(bai,shi,ge);
}
}
void delay(uint z) //延时程序大概1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar bai,uchar shi,uchar ge)
{
dula=1; //这里的段选和位选全
P0=table[bai]; //部有P0口输入,所以
dula=0; //用两个锁存器来帮助
P0=0xff;
wela=1;
P0=0xfe; wela=0; delay(5);
dula=1;
P0=table[shi]; dula=0;
P0=0xff; wela=1;
P0=0xfd; wela=0; delay(5;
dula=1;
P0=table[ge]; dula=0;
P0=0xff; wela=1;
P0=0xfb; wela=0; delay(5);
}
void init()
{
wela=0;
dula=0;
temp=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void timer0() interrupt 1 //用定时器0来进行定时{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}。

相关文档
最新文档