51单片机加74hc595驱动多个数码管静态显示的程序设计

51单片机加74hc595驱动多个数码管静态显示的程序设计,第1张

1、首先数码管分为1位,4位,8位,4位和8位的又分为共阴和共阳数码管。

2、共阳数码管,即阳极全部连接在一起,单片机接口给低电位即可点亮对应的段位。

3、可利用MCS-51系列单片机的芯片AT89C52的P3.4,P3.5,P3.6,P3.7进行计时并在数码管上显示时间,作为按键的入口。

4、共阴数码管,即阴极全部连接在一起,单片机接口给高电位即可点亮对应的段位。

5、其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

74hc595是串行输入并行输出,所以你需要将八位数据分八次传入然后一次性传出 具体程序如下 注意特殊管脚的宏定义命名

unsigned char i,j

j = 0xfe

for(i=0i<8i++) // 循环8次,依次移入八位

{

if(j&0x80) P_HC595_SER = 1 // 若dat&0x80 == 1说明dat的最高位为1 相当于将j串行发送给SER

else P_HC595_SER = 0 // 否则说明dat的最高位为0

P_HC595_SRCLK = 1 // 此处SRCLK由0变为1产生上升沿,将SER上的一位数据移入寄存器

//_nop_()_nop_()_nop_()_nop_()

P_HC595_SRCLK = 0 // 将SRCLK变为低电平 等待下一次上升沿

j = j<<1 // 数据右移,从最高位移入寄存器

}

P_HC595_RCLK = 1 // RCLK此处由0变为1产生一个上升沿,将八位数据置入锁存器,锁存器数据通过Q0~Q7输出数据在led显示

//_nop_()_nop_()_nop_()_nop_()

P_HC595_RCLK = 0 //将RCLK的数据变为低电平 等待下一次上升沿

顺便帮你实现了一下 运行正常 望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7748618.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存