- 12
- 0
- 约1.48千字
- 约 12页
- 2016-12-08 发布于山西
- 举报
动态数码管显示的
动态数码管显示的Proteus仿真及C语言程序设计 主讲:应电三班 唐园 设计要求 P0端口接两个74LS373锁存器,其中一个接数码管字型码笔段,另一个接数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样,当开关接低电平时,显示“HELLO”字样。 元器件选取 (1)AT89C52:单片机 (2)RES:电阻 (3)CRYSTAL:晶振 (4)CAP.CAP-ELEC:电容,电解电容 (5)RESPACK-8:排阻 (6)7SEG-MPX6-CC:7段式6位共阴极数码管 (7)BUTTON:按钮 (8)74LS373:锁存器 74LS373详细说明 74LS373为三态输出的八 D 透明锁存器 当三态允许控制端 OE 为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,Q0~Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,Q 随数据 D 而变。当 LE 为低电平时,D 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。 实 物 图 流程图 C语言程序 #include reg52.h void delay(unsigned int t); unsigned char code table1[]={0x06,0x6d,0x66,0x4f,0x5b}; unsigned char code table2[]={0x76,0x3f,0x38,0x38,0x79}; unsigned char code table3[]={0xfe,0xfd,0xfb,0xf7,0xef}; unsigned char i; sbit button=P1^7; sbit wei=P2^0; unsigned int t; sbit duan=P2^1; void main(void) { while(1) { P0=0xff; for(i=0;i5;i++) { if(button==0) { duan=1; P0=table1[i]; duan=0; P0=0xff; delay(1000); wei=1; P0=table3[i]; wei=0; } else { duan=1; P0=table2[i]; duan=0; P0=0xff; delay(1000); wei=1; P0=table3[i]; wei=0; } } } } void delay(unsigned int t) { while(t--); } 仿真测试 仿真结果① 仿真结果② * * 开始 K1按键识别成功否 置显示“12345”字型码首地址 否 置显示“HELLO”字型码首地址 是 置字型码偏移量和位选码 查表并送出显示 延时2ms并指向下一个偏移量 五个数码管显示完否 否 是 仿真原理图 *
原创力文档

文档评论(0)