两个74HC595驱动8位数码管
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/******************************************************************
/* *
/* 单片机开发系统演示程序 *
/* *
/* *
/******************************************************************/
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit SDATA_595=P1^5; //串行数据输入 ----接板卡上的SPI
sbit SCLK_595 =P1^6; //移位时钟脉冲 ---接板卡上的SPO
sbit RCK_595 =P1^7; //输出锁存器控制脉冲 ----接板卡上SPK
sbit CS_LED8 =P1^1; //数码管片选 --------接板卡上的CS
sbit CS_1302 =P1^4; //ds1302片选
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71}; //数码管编码(0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F)(共阴极数码管)
uchar dis[8]; //显示缓冲区
void delay(uint );
void display();
/*******************************************************
* *
* 延时函数 *
* *
*******************************************************/
void delay(uint dt)
{
uint i;
uchar bt;
for(i=0;i
}
/*******************************************************
* *
* 定时中断函数 *
* *
*******************************************************/
void timer0(void) interrupt 1
{
TH0=0XFC;
TL0=0X66;
display();
}
/*******************************************************
* *
* 显示函数 *
* *
*******************************************************/
void display()
{
uchar num,c,i;
for(i=0;i<8;i++)
{
num=dis[i];
CS_LED8=0;
for(c=0;c<8;c++) //写入显示数据
{
SCLK_595=0;
num=num<<1;
SDATA_595=CY;
SCLK_595=1;
SCLK_595=0;
}
num=~(1<for(c=0;c<8;c++) //写入数码管序号
{
SCLK_595=0;
num=num<<1;
SDATA_595=CY;
SCLK_595=1;
SCLK_595=0;
}
RCK_595=0;
_nop_(); //短延时
_nop_();
RCK_595=1;
_nop_();
_nop_();
RCK_595=0; //显示数据输出
delay(1);
CS_LED8=1;
}
}
/*******************************************************
*
*
* 主函数 *
* *
*******************************************************/
main(void)
{
uchar k;
TMOD|=0x01;
TH0=0XFC;
TL0=0X66; //定时器初始化
TR0=1;
EA=1;
ET0=1;
// IP=0X10;
CS_1302=0; //屏蔽1302的信号
for(k=0;k<8;k++)
{
dis[k]=table[k]; //将显示内容送入显示缓冲区
}
while(1);
} //end of main()