51单片机数码管静态显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*两个共阳八段数码管,位接P0口,段接74HC595 Q0-Q7 全部显示1*/
#include
unsigned char code LED_DATE [] = //定义数码管段数组
{
0XC0, // 0
0XF9, // 1
0XA4, // 2
0XB0, // 3
0X99, // 4
0X92, // 5
0X82, // 6
0XF8, // 7
0X80, // 8
0X90, // 9
0XFF, // 关
};
unsigned char code LED_W [] = //定义数码管位数组
{
0X80, //第一个数码管位
0X40, //第二个数码管位
0X20, //第三个数码管位
0X10, //第四个数码管位
0X08, //第五个数码管位
0X04, //第六个数码管位
0X02, //第七个数码管位
0X01 //第八个数码管位
};
sbit DS =P1^5; //定义HC595 I/O口
sbit MR =P1^4;
sbit SHCP =P1^6;
sbit STCP =P1^7;
void HC595(unsigned char LED_WEI); //声名HC595驱动子程序
void Delay(unsigned int xms); //声名延时子程序
void main()
{
unsigned char x,y;
y=0;
while(1)
{
for(x=0;x<9;x++)
{
P0=LED_DATE[1];
HC595(LED_W[x]);
Delay(100);
P0=LED_DATE[10];
}
MR=0;
MR=1;
}
}
void HC595(unsigned char LED_WEI)
{
unsigned char i;
for(i=0;i<8;i++)
{
DS = LED_WEI & 0x01;
SHCP = 0;
SHCP = 1;
LED_WEI >>=1;
}
STCP = 0;
STCP = 1;
}
void Delay(unsigned int xms)
{
unsigned int i;
for(i=xms;i>0;i--);
//for(j=110;j>0;j--);
}