单片机系统开发之利用串口驱动数码管显示

上传人:第*** 文档编号:31013479 上传时间:2018-02-03 格式:DOCX 页数:11 大小:1.33MB
返回 下载 相关 举报
单片机系统开发之利用串口驱动数码管显示_第1页
第1页 / 共11页
单片机系统开发之利用串口驱动数码管显示_第2页
第2页 / 共11页
单片机系统开发之利用串口驱动数码管显示_第3页
第3页 / 共11页
单片机系统开发之利用串口驱动数码管显示_第4页
第4页 / 共11页
单片机系统开发之利用串口驱动数码管显示_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《单片机系统开发之利用串口驱动数码管显示》由会员分享,可在线阅读,更多相关《单片机系统开发之利用串口驱动数码管显示(11页珍藏版)》请在金锄头文库上搜索。

1、单片机应用系统开发作业 5利用串行口驱动数码管显示专业:信息对抗技术学号:1411050121姓名: 吴志飞1. 系统设计要求设晶振频率为 12MHZ,将拨码开关数据串行输入到74LS164,并行输出到 2 个 LED 数码管进行相应的数码显示。2.系统设计分析:单片机的最小系统+74LS164 接口芯片+两个 7 段共阴极 LED数码管。串口工作于方式 0,为移位寄存器方式,波特率为固定的fosc/12,不需要定时计数器 T1 做波特率发生器。拨码开关的的高低 4 位分别控制一个数码管,数码管要显示的数据可以用查表法。两个数码管并连接在 74LS164 的输出端,通过选通位来控制哪一个数码管

2、亮。74LS164 是 8 位边沿触发式移位寄存器,串行输入,并行输出。数据通过俩个输入端 A 或 B 之一串行输入,任一输入端可以作为高电平使能端来控制另一输入端的数据输入。俩个输入端或者连接在一起,或者把不用的一端接高电平,一定不要悬空。时钟 CP 每次有低变高时,数据右移一位输入到 Q0。Q0 是两个数据输入端的逻辑与。 图 1.1 74LS164 接口芯片3系统原理图设计:系统所需原件为单片机 AT89C51,瓷片电容 CAP30pf,晶振CRYSTAL12MHZ,电解电容 CAP-ELEC,电阻 RES,拨码开关DIPSW_8,共阴极数码管 7SEG-COM-CAT-GRN 俩个,7

3、4LS164 接口芯片一个以及开关 SWITCH。原理图如 1.2 所示。图 1.2 利用串口数据驱动数码管进行相应数码显示4.系统流程图设计 :串口寄存器设置初始化 P0、P1 口开 始是否拨动开关低 4 位DPTR 指向表首地址判断 A 的值查表取数发送数据P1 是否等于 SBUF结 束高低 4 位互换把 P1 口给累加器 ANYNY5.系统源程序设计:汇编源程序:ORG 0030HSTART:MOV SCON,#00H /串口工作于方式 0:移位寄存器方式MOV P1,#00HREAD: MOV P0,#0FFHMOV A,P1MOV B,P1ANL A,#0F0HCJNE A,B,LO

4、W4/HIG4: MOV DPTR,#TABLESWAP AXH: MOVC A,A+DPTRMOV SBUF,ACLR P0.0LCALL DELAYMOV A,P1CJNE A,SBUF,READAJMP READ/LOW4: MOV A,P1ANL A,#0FHCJNE A,B,LOOP3 MOV DPTR,#TABLE XL: MOVC A,A+DPTRMOV SBUF,ACLR P0.1LCALL DELAYMOV A,P1CJNE A,SBUF,READAJMP READLOOP3:NOPTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,

5、6FH,77H,7CH,39H,5EH,79H,71H/延时子程序/DELAY:MOV R7,#20DELAY1:MOV R6,#40DELAY2:MOV R5,#248DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETENDC 语言源程序:#include#define uint unsigned int#define uchar unsigned charvoid delay();sbit p01=P01;sbit p00=P00;uchar code tab=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,

6、0X77,0X7C,0X39,0X5E,0X79,0X71; /共阴uchar a;void main(void) SCON=0X00;while(1) a=P1 /低四位SBUF=taba;while(TI=0);TI=0;p00=1;p01=0;delay();a=P1 /高四位a=4;SBUF=taba;while(TI=0);TI=0;p01=1;p00=0;delay(); void delay() /延时子程序uint c,d;for(c=0;c400;c+)for(d=0;d400;d+);6.在 keil 中进行调试:(1)创建“数码管 ”项目,选择单片机型号为 AT89C51

7、,汇编源程序,保存为“数码管.ASM”或“数码管.C ”。(2)将源程序添加到项目中。(3)打开项目菜单,选择 Options for targettarget 1选项,点击 output 一项,在 Create HEX File 前打上对勾。(4)编译源程序,如果有问题,则需要调试修改,若没有错误,则成功创建“数码管.HEX”文件。图 1.3 编译成功提示图7.在 Proteus 中进行仿真:打开 Proteus 软件,用左键单击单片机,在出现的对话框中,添加“数码管.HEX”文件,开始仿真,效果如下图所示。图 1.4 数码管仿真图 图 1.5 数码管仿真图拨码开关的高低 4 位分别可以控制

8、一个数码管,分别显示 0 到F,符合设计要求。8.后言:感想:经过一段时间的学习,从开始对单片机的一无所知,不感兴趣,到现在的自己编程实现实际问题。在这一过程中,随着对单片机知识的逐步深入,兴趣也越来越浓厚,自己去查资料的冲动也越来越强烈。还记得第一次张老师让我们点亮一盏灯时全班同学的一脸茫然,无从下手,但这并不能阻挡我们探索单片机,爱上单片机。现在看着自己编的程序在单片机上运行,内心的激动那是不言而喻。张老师说单片机是一门很枯燥的课程,的确如此,如果不是有兴趣作为支撑,很容易半途而废,一无所获。但是一旦入了门,什么时候想要学了,或者有时间学了,都可以很轻松的捡起来。单片机的知识浩瀚如海,而我们就像一个呱呱坠地的婴儿,只要怀着一颗好奇、探索的心不断汲取,不断充实自己,将来一定会让自己强壮无比。建议:有一个事情,我并不认同张老师的做法。檫黑板本来就是我们应该帮老师做的事情,但是,一旦檫黑板也要加分,这个事情就变了味道。那么,同学们以后遇到不给加分的老师,就是不是不帮他檫黑板呢?我建议张老师在以后的教学中,可以去掉这一加分项!期望成绩:A+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号