单片机,595级联动态显示数码管

单片机,595级联动态显示数码管,第1张

你须要先去查一查动态扫描的知识。 和74HC595的芯片资料。如果以上你都做了。才便于讲解。

引脚说明

符号 引脚 描述 Q0…Q7 第15脚, 1, 7 并行数据输出 GND 第8脚 地 Q7’ 第9脚 串行数据输出 MR 第10脚 主复位(低电平) SHCP 第11脚 移位寄存器时钟输入 STCP 第12脚 存储寄存器时钟输入 OE 第13脚 输出有效(低电平) DS 第14脚 串行数据输入 VCC 第16脚 电源

意思就是说,DS输入一个电平信号,0或1。通过SH cp上升沿将它存在芯片74HC595的寄存器当中。当8位串行数据传完后。通过STcp的一个正脉冲它从A*-G*输出来。

74HC595是串行转并行的芯片,有利于节省I/O口。在原理图中,通扰尺毕过P0^1先给最小面一片595输入数据。每输入一位数据,这片595会从Q7`引脚输出上一次困尘DS引脚的数据,传送到上面一片595芯片。从面依次驱动4个数码管。你这个电路,只能同时显缓芹示同一个数字。若想显示不同的数字。则四个数码管要分别用三极管控制位选。

没型稿分 没硬件图纸 谁能回答你

给我你的email 我把仿真和程序发给你 贴上源代码:

#include<握姿reg52.h>卜皮孝

#define uint unsigned int

#define uchar unsigned char

sbit shcp1=P2^5

sbit ds1=P2^6

sbit stcp1=P2^7

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} //数码管显示0~9驱动码

void delay(uchar i)

{

uchar x,y

for(x=0x<ix++)

for(y=0y<120y++)

}

void QR0_5951(uchar num1)

{

uchar j

for(j=0j<8j++)

{

num1=num1<<1

ds1=CY

shcp1=1

shcp1=0

}

}

void OUT_5951()

{

stcp1=0

stcp1=1

stcp1=0

}

void main()

{

uchar i,temp

while(1)

{

temp=0xf1

for(i=0i<4i++)

{

P2=0xf0

QR0_5951(table[i])

OUT_5951()

P2=temp

delay(5)

temp=(temp<<1)|0xf0

}

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存