04-数码管动态显示
# include "reg52.h"
void delay(unsigned char i)
{
while(i--);
}
void showseg();
void maindelay(unsigned char t)
{
while(t--)
{
showseg();
}
}
unsigned char yu = 1;
unsigned char code table[] =
{
0xc0,//0
0xf9,//1
0xa4,//2
0xb0,//3
0x99,//4
0x92,//5
0x82,//6
0xf8,//7
0x80,//8
0x90,//9
0x88,//A
0x83,//B
0xc6,//C
0xa1,//D
0x86,//E
0x8e,//F
0xbf,//-
0x7f//.
};
void HC138(unsigned char n)
{
switch(n)
{
case 4:
P2 = (P2 & 0x1f) | 0x80;
break;
case 5:
P2 = (P2 & 0x1f) | 0xa0;
break;
case 6:
P2 = (P2 & 0x1f) | 0xc0;
break;
case 7:
P2 = (P2 & 0x1f) | 0xe0;
break;
}
}
void show(unsigned char pos,unsigned char dat)
{
HC138(7);//数码管的内容
P0 = table[dat];
HC138(6);//数码管的位置
P0 = 0x01 << pos;
}
void showseg()
{
show(0,2);//2018
delay(500);
show(1,0);
delay(500);
show(2,1);
delay(500);
show(3,8);
delay(500);
show(4,16);//--
delay(500);
show(5,16);
delay(500);
show(6,yu/10);//月份
delay(500);
show(7,yu%10);
delay(500);
}
void main()
{
while(1)
{
showseg();
yu++;
if(yu > 12)
yu = 1;
maindelay(1000);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律