《项目四 电子秒表的制作与实现电子课件 中职 单片机c语言程序设计及仿真.pptx》由会员分享,可在线阅读,更多相关《项目四 电子秒表的制作与实现电子课件 中职 单片机c语言程序设计及仿真.pptx(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、项目四、电子秒表的制作与实现任务1 数码管静态显示任务描述:AT89C51单片机的P0端口(P0.0P0.7)连接到一个共阳数码管的ah字段上。编写程序实现在数码管上循环显示09数字。1.半导体数码管知识链接1.半导体数码管结构知识链接1.半导体数码管编码原理知识链接共阳共阴2.数码管的显示方式 知识链接(1)静态显示静态显示就是在数码管工作时,让数码管持续点亮。在每个数码管的段驱动端都要连接有一组位数据线来保持显示字形。静态驱动的优点是编程简单,显示亮度高。缺点是占用I/O多。(2)动态显示静态显示时数码管的每一位都是常亮的,而动态显示时,数码管是逐位轮流点亮的,对每一位数码管而言,是每隔一
2、段时间才被点亮一次,利用人眼的视觉暂留原理,看起来多个数码管相当于同时显示了。3.C语言数组 知识链接(1)数组的定义数据类型数组名常量表达式;数据类型数组名常量表达式1常量表达式2.常表达式n;unsigned char shuma10;/定义无符号整型一维数组,有10个数据单元unsigned char data58;/定义无符号整型二维数组,有40个数据单元3.C语言数组 知识链接(2)数组的初始化数据类型 数组名常量表达式常量表达式;数据类型 数组名常量表达式1.常量表达式2常量表达式1.常量表达式n;对全部元素赋初值,如:共阳数码管0-9段码数组unsigned char shuma
3、10=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;/数组元素之间用逗号隔开1.任务分析任务实施在一个数码管上显示09数字,在单片机段码控制端口采用数组的方式,可以简化程序。段码数组定义为:uchar shuma100 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90/092.程序流程任务实施2.程序编写任务实施void main()uchar i;while(1)for(i=0;i10;i+)P1=shumai;delay_ms(200);3.程序电路仿
4、真绘制电路图任务实施3.程序电路仿真仿真任务实施任务2 数码管动态显示任务描述:利用数码管动态显示方式,编写程序在八位共阳数码管上显示“07”数字。1.数码管动态显示原理知识链接2.锁存器74HC573知识链接2.锁存器74HC573真值表知识链接OE:三态输出使能控制端。1 时,输出高阻态;0 时,输出高电平或低电平。LE:锁存使能输入控制端。1 时,输出和输入直通,输出受输入信号控制;0 时,输出锁存数据,输出不受输入信号控制。1.任务分析任务实施本任务完成数码管动态的显示,利用了74HC573的锁存输出功能,输出锁存的数据,不受输入数据的影响。所以把数码的段码和位码都用单片机的P0端口输
5、出。在程序设计中,把数码管的显示驱动程序单独定义,这样增强了主函数的可读性和逻辑性。编写数码管动态显示驱动程序,基本函数如下:写段码函数:void writeduan(uchar x);写位码函数:void writewei(uchar x);8位数码管动态扫描显示函数:void display()。2.程序流程任务实施3.程序编写数码动态扫描程序任务实施/*写段码函数*/void writeduan(uchar x)leddata=x;/送段码到P0口 du=1;du=0;/完成段码锁存/*写位码函数*/void writewei(uchar x)leddata=x;/送段码到P0口 we=
6、1;we=0;/完成段码锁存/*8位数码管动态扫描显示函数*/void display()uchar i,wei;wei=0 x01;/位码赋初值,第1位数码管显示 for(i=0;i8;i+)/8位数码管依次扫描完 writeduan(shumaai);/写段码 writewei(wei);/在相应的位显示 delay_ms(2);/显示约2ms writewei(0 x00);/熄灭所有位,消除重影 wei=wei1;/下一位数码管显示 3.程序编写主程序任务实施/*主函数*/void main()uchar i;while(1)for(i=0;i8;i+)ai=i;display();4
7、.程序电路仿真绘制电路图任务实施4.程序电路仿真仿真任务实施任务3 电子秒表的制作与实现任务描述:利用8位共阳数码管制作一个电子秒表,显示方式为“00-00-00”,分别对应时、分、秒显示。1.中断知识链接8051系列单片机对中断的处理可以概括为中断请求、中断响应、中断返回三个过程。1.中断中断源知识链接1.中断中断系统结构知识链接2.定时/计数器结构知识链接2.定时/计数器TMOD知识链接GATE:门控位。C/T():定时/计数器选择位。M1M0:定时器工作方式选择位。M1M0=00:定时器工作于方式0;M1M0=01:定时器工作于方式1;M1M0=10:定时器工作于方式2;M1M0=11:
8、定时器工作于方式3;2.定时/计数器TCON知识链接TF1/TF0:T1/T0溢出标志位。当T1或T0产生溢出时,由硬件自动置位中断触发器TF(1/0),并向CPU申请中断。如果用中断方式,则CPU在响应中断服务程序后,TF(1/0)被硬件自动清0。如果用软件查询方式对TF(1/0)进行查询,则在定时/计数器回0后,应当用指令将TF(1/0)清0。TR1/TR0:T1/T0运行控制位。可用于对TR1或TR0进行置位或清0,即可启动或关闭T1或T0的运行。2.定时/计数器工作方式知识链接工作方式02.定时/计数器工作方式知识链接工作方式1定时/计数器工作方式1是16位计数器方式,由TL1/TL0
9、和TH1/TH0共同构成16位计数器。工作方式1与工作方式0的基本工作过程相似,但由于工作方式1是16位计数器,因此,它比工作方式0有较宽的定时/计数范围。2.定时/计数器工作方式知识链接工作方式2定时/计数器的工作方式2是自动再装入时间常数8位计数器方式。TH1/TH0仅用来存放TL1/TL0初次置入的时间常数。在TL1/TL0计数满后,即置位TF1/TF0,向CPU申请中断,同时存放在TH(1/0)中的时间常自动再装入TL1/TL0,然后重新开始定时或计数。2.定时/计数器工作方式知识链接工作方式3定时/计数器工作方式3是两个独立的8位计数器且仅T0有这种工作方式,如果将T1置为工作3方式
10、,则T1将处于关闭状态。当T0工作于方式3时,TL0构成8位计数器可工作于定时/计数状态,并使用T0的控制位和TF0的中断源。THO则只能工作于定时器状态,使用T1中的TR1、TF1的中断源。2.定时/计数器计数初值设定知识链接设置工作方式TMOD=0 x01;/TMOD=0000 0001B,低 四 位GATE=0,C/=0,M1M0=01。2.定时/计数器计数初值设定知识链接计算实际计数值设单片机时钟电路的振荡频率为11.0592MHz,则12分频后得到的机器周期为:2.定时/计数器计数初值设定知识链接计算实际计数值2.定时/计数器计数初值设定知识链接初值计算定时/计数器计数初值的计算公式
11、如下:式中,n为由工作方式决定的定时/计数器位数。工作方式0:n=13,工作方式1:n=16,3.数码管取模软件的使用知识链接左边选择数码管的类型:共阳极、共阴极。右边选择取模方式。对于单个数字或字符而言,采用手动取模,分别把相应的字段点亮即可。数字或字母比较多的情况下,通常采用定义数组的形式,则采用“生成C语言代码”形式,该软件自动把所有数字或字母以数组的形式成生十六进制的代码,再复制出来即可。1.任务分析任务实施本任务利用8位共阳数管,完成时钟显示。为了节约硬件资源采用数码管动态显示和定时器中断形式。定时器中断初始化分析采用定时器T0,工作1方式,所以TMOD=0 x01;定时器中断1次假
12、设为50ms,中断20次为1s钟。所以实际计数值为46083;定时器T0的计数初值为:TH0=(65536-46083)/256;/定时器T0高8位赋初值TL0=(65536-46083)%256;/定时器T0低8位赋初值2.程序流程任务实施3.编写程序主程序任务实施void main()定时器中断初始化 while(1)a0=h/10;a1=h%10;/第一、二位数码管显示小时 a2=22;/第三位数码管显示“”a3=m/10;a4=m%10;/第四、五位数码管显示分钟 a5=22;/第六位数码管显示“”a6=s/10;a7=s%10;/第七、八位数码管显示秒钟 display();/调用数码管动态扫描函数定时器中断初始化TMOD=0X01;TH0=(65536-46083)/256;TL0=(65536-46083)%256;EA=1;ET0=1;TR0=1;3.编写程序中断服务程序任务实施void time0()interrupt 1/设置中断类型TH0=(65536-46083)/256;TL0=(65536-46083)%256;n+;/中断计数,中断1次50ms if(n=20)/中断20次为1秒钟 n=0;s+;if(s=60)s=0;m+;if(m=60)m=0;h+;if(h=24)h=0;4.程序电路仿真绘制电路任务实施4.程序电路仿真仿真任务实施