1、单片机的最小系统 +74LS164 接口芯片 + 两个 7 段共阴极 LED数码管。串口工作于方式 0,为移位寄存器方式 ,波特率为固定的 fosc/12, 不需要定时计数器 T1 做波特率发生器 。拨码开关的的高低 4 位分别控制一个数码管 ,数码管要显示的数据可以用查表法 。两个数码管并连接在 74LS164 的输出端 ,通过选通位来控制哪一个数码管亮 。74LS164 是 8 位边沿触发式移位寄存器 ,串行输入 ,并行输出。数据通过俩个输入端 A 或 B 之一串行输入 ,任一输入端可以作为高电平使能端来控制另一输入端的数据输入 。俩个输入端或者连接在一起 ,或者把不用的一端接高电平 ,一
2、定不要悬空 。时钟 CP每次有低变高时 ,数据右移一位输入到 Q0。Q0 是两个数据输入端的逻辑与 。3系统原理图设计 :图 1.1 74LS164 接口芯片系统所需原件为单片机 AT89C51,瓷片电容 CAP30pf,晶振CRYSTAL12MHZ,电解 电容 CAP-ELEC,电阻 RES,拨码开 关DIPSW_8,共阴极数码管 7SEG-COM-CAT-GRN 俩个,74LS164 接口芯片一个以及开关 SWITCH。原理图如 1.2 所示 。图 1.2 利用串口数据驱动数码管进行相应数码显示4.系统流程图设计 :开 始串口寄存器设置初始化 P0、 P1 口把 P1 口给累加器 A是否拨
3、动开关低 4 位NY高低 4 位互换DPTR指向表首地址判断 A的值查表取数发送数据P1 是否等于 SBUF结 束5.系统源程序设计 :汇编源程序 :ORG 0030HSTART:MOV SCON,#00H / 串口工作于方式 0:移位寄存器方式MOV P1,#00HREAD: MOV P0,#0FFHMOV A,P1MOV B,P1ANL A,#0F0HCJNE A,B,LOW4/HIG4: MOV DPTR,#TABLESWAP AXH: MOVC A,A+DPTRMOV SBUF,ACLR P0.0LCALL DELAYCJNE A,SBUF,READAJMP READ/LOW4: MO
4、V A,P1ANL A,#0FHCJNE A,B,LOOP3MOV DPTR,#TABLEXL:CLR P0.1LOOP3:NOPTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,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 u
5、nsigned charvoid delay();sbit p01=P01;sbit p00=P00;uchar codetab=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71; / 共阴uchar a;void main(void)SCON=0X00;while(1)a=P1&0X0F; / 低四位SBUF=taba;while(TI=0);TI=0;p00=1;p01=0;delay();0XF0 ; / 高四位a=4;p01=1;p00=0;void delay() / 延时子
6、程序uint c,d;for(c=0;c400;c+)for(d=0;dd+);6.在 keil 中进行调试 :(1)创建 “数码管 ”项目 ,选择单片机型号为 AT89C51,汇编源程序 ,保存为 “数码管 .ASM”或“数码管 .C”。(2)将源程序添加到项目中 。(3)打开项目菜单 ,选择 Options for target target 1选项,点击 output 一项,在 Create HEX File 前打上对勾 。(4)编译源程序 ,如果有问题 ,则需要调试修改 ,若没有错误,则成功创建 “数码管 .HEX”文件。图 1.3 编译成功提示图7.在 Proteus 中进行仿真 :
7、打开 Proteus 软件,用左键单击单片机 ,在出现的对话框中 ,添加 “数码管 .HEX”文件 ,开始仿真,效果如下图所示 。图 1.4 数码管仿真图图 1.5 数码管仿真图拨码开关的高低 4 位分别可以控制一个数码管 ,分别显示 0 到 F,符合设计要求 。8.后言:感想:经过一段时间的学习 ,从开始对单片机的一无所知 ,不感兴趣 ,到现在的自己编程实现实际问题 。在这一过程中 ,随着对单片机知识的逐步深入 ,兴趣也越来越浓厚 ,自己去查资料的冲动也越来越强烈 。还记得第一次张老师让我们点亮一盏灯时全班同学的一脸茫然 ,无从下手 ,但这并不能阻挡我们探索单片机,爱上单片机 。现在看着自己编的程序在单片机上运行 ,内心的激动那是不言而喻 。张老师说单片机是一门很枯燥的课程 ,的确如此,如果不是有兴趣作为支撑 ,很容易半途而废 ,一无所获 。但是一旦入了门 ,什么时候想要学了 ,或者有时间学了 ,都可以很轻松的捡起来 。单片机的知识浩瀚如海 ,而我们就像一个呱呱坠地的婴儿 ,只要怀着一颗好奇 、探索的心不断汲取 ,不断充实自己,将来一定会让自己强壮无比 。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1