📄 74hc595qudong.txt
字号:
#i nclude<reg51.h>
#define uchar unsigned char
uchar code seg[10]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit SER=P0^4; //595串行数据输入
sbit SCK=P0^5; //595移位时钟
sbit RCK=P0^7; //595数据输出脉冲
sbit SQH=P0^6; //595串行数据输出
sbit gewei=P2^7; //595数码管个位选通
sbit shiwei=P2^6; //595数码管十位选通
sbit power=P1^7; //
void IN595(uchar segdata) //输入一字节数码管数据进595
{
uchar i,temp;
temp=seg[segdata];
RCK=0;
for(i=0;i<8;i++) //循环移入8位数据,
{
SCK=0;
SER=temp&0x80; // 取数码的最高位
temp=temp<<1;
SCK=1; //上升沿把一位数据移入595
}
//由于电路不是我设计的,有点不合理,这时在最低位QA的对应的是数码管右下角的点的管脚,所以需要再移一位,以使数码管右下角的点能正确显示
//
SCK=0;
SER=seg[segdata]&0x80;
SCK=1;
RCK=1; //上升沿把8位数据并行输出
}
void show(uchar showdata)
{
uchar i,j;
i=showdata/10;
j=showdata%10;
IN595(i); //移入十位数据
gewei=1; //关个位
shiwei=0; //选通十位数码管
//delay(); //不用加延时了,因为显示数据串入595已经要一段的时间了
IN595(j); //移入个位数据
shiwei=1; //关十位
gewei=0; //选通个位数码管
}
void main() //测试。。。。。。。。。。。。。。。。
{
power=1; //
while(1)
{
show(58);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -