我要发布
仪器网/ 仪器社区/ 八联管/ 两片74HC595级联驱动8个数码管

两片74HC595级联驱动8个数码管

梓辰wy    2015-08-11    八联管    浏览 529 次

//########################################################## #include #include #define uchar unsigned char #define uint unsigned int //#############管脚定义####################### sbit sclk=P3^2; //595 移位时钟信... //##########################################################
#include
#include
#define uchar unsigned char
#define uint unsigned int
//#############管脚定义#######################

sbit sclk=P3^2; //595 移位时钟信号输入端
sbit st=P3^1; //595 锁存信号输入端
sbit da=P3^0; //595 数据信号输入端
//#############################################
//共阴极数码管显示代码:7 6 5 4 3 2 1 0
// a b c d e f
uchar code LED_7SEG[16]={0xfc,0x60,0xda,0xf2,//0,1,2,3,
0x66,0xb6,0xbe,0xe0, //4,5,6,7,
0xfe,0xe6,0xee,0x3e, //8,9,A,b,
0x9c,0x7a,0x9e,0x8E};//C,d,E,F
unsigned char code Wei[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; // 位选
//#####################################################
//名称:wr595()向 595 发送一个字节的数据
//功能:向 595 发送一个字节的数据(先发低位)
//#####################################################
void wr595(uchar wrdat)
{
uchar i;
sclk=0;
st=0;
for(i=8;i>0;i--)//循环八次,写一个字节
{
da=wrdat&0x01; //发送 BIT0 位
wrdat>>=1; //要发送的数据右移,准备发送下一位
sclk=0; //移位时钟上升沿
_nop_();
_nop_();
sclk=1;
_nop_();
_nop_();
sclk=0;
}
st=0; //上升沿将数据送到输出锁存器
_nop_();
_nop_();
st=1;
_nop_();
_nop_();
st=0;
}
//##########################################################
// 延时函数
//##########################################################
void delay(uint del)
{
while(del--)
{
;
}
}
//##########################################################
//名称:wr7leds()8 个 led 显示数字函数
//功能:向 595 发送一个字节的数据,然后发送位选信号
//##########################################################
void wr7leds(void)
{
uchar i;
wr595(Wei[0]); //送位选信号 ; //位选信号初始化
for(i=0;i<8;i++) //循环 8 次写 8 个数据
{
wr595(LED_7SEG[i]); //传送显示数据
wr595(Wei[i]); //送位选信号
delay(50); //延时,(决定亮度,和闪烁)
}
}
//##########################################################
//主函数
//##########################################################
main(void)
{
while(1)
{
wr7leds(); //向 74HC595 发送数据并显示
}
}

精彩问答
aaaaa44444a4 发布日期:2015-08-12
//共阴极数码管显示代码:7 6 5 4 3 2 1 0
// a b c d e f
uchar code LED_7SEG[16]={0xfc,0x60,0xda,0xf2,//0,1,2,3,
0x66,0xb6,0xbe,0xe0, //4,5,6,7,
0xfe,0xe6,0xee,0x3e, //8,9,A,b,
0x9c,0x7a,0x9e,0x8E};//C,d,E,F
这些段码不对
unsigned char code Wei[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; // 位选
这位选码也不对,是0有效,你这是1有效,正相反,就不会亮的。
你这是仿真,还是实物板,现象是什么?
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控