📄 动态数码管显示程序.c
字号:
//MCU:AT89S51
//晶振:12M
#include"AT89X51.H"
unsigned char code numcode[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90
};//数字0~9共阳数码管代码
unsigned char code charcode[]={0xff,0xc0,0xc7,0xc7,0x86,0x89,0xff,0xff};
// HELLO 字样共阳数码管代码
unsigned char code bitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f}; //数码管位选代码
/********1ms延时子程序***********/
delay_nms(unsigned int n)
{
unsigned int i;
unsigned char j;
for(i=0;i<n;i++)
for(j=0;j<120;j++)
; //空操作
}
void main(void)
{
unsigned char a;
unsigned char mode_change;
while(1)
{
/***按键扫描*********/
if(P2_0==0) //判断是否有按键按下
{
delay_nms(10); //延时10ms再判断有没有按键按下
if(P2_0==0) //真的有按键按下,更改显示模式
mode_change^=1;
while(P2_0==0); //等待按键释放
}
if(mode_change==0)
for(a=0;a<8;a++) //数码管显示数字
{
P0=numcode[a];//送代码到数码管ABCDEFGH口
P1=bitcode[a]; //开相应位数码管显示
delay_nms(8); //延时8ms
}
else //显示" HELLO "
for(a=0;a<8;a++)
{
P0=charcode[a];//送代码到数码管ABCDEFGH口
P1=bitcode[a]; //开相应位数码管显示
delay_nms(8); //延时8ms
}
}
}
/**********程序到此结束**************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -