- 1
- 0
- 约1.37万字
- 约 26页
- 2016-10-07 发布于重庆
- 举报
数码管时钟显示C程序
/* 数码管时钟显示led移动C 程序
使用共阳极数码管
*/
#includereg52.h
#includeintrins.h
#define uint unsigned int
#define uchar unsigned char
sbit wela1 = P2^0; //数码管wela管脚定义
sbit wela2 = P2^1;
sbit wela3 = P2^2;
sbit wela4 = P2^3;
uchar time,d1,d2,d3,d4,temp,tem,aa;
unsigned char code table[] = {0xC0,0xF9,0xA4,0xB0,
0x99,0x92,0x82,0xF8,
0x80,0x90};
void displ(char a,char b,char c,char d);
void delay(uint z) //延时程序
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
//主函数
void main()
{
time=0;
TMOD=0x01; //中断定时初始化
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
aa=0;
temp=0xfe;
tem=0xff;
d1=0;d2=0;d3=0;d4=0;
while(1)
{
if(time==20)
{
time=0;
// 12个led灯移动显示
aa+=1;
if(aa6)
temp=_crol_(temp,1);
if(aa==12)
{
aa=0;
temp=0xfe;
tem=0xff;
}
if(aa==6)
{
tem=0xfe;
temp=0xff;
}
if(aa6)
tem=_crol_(tem,1);
//
d4+=1;
if(d4==10)
{
d4=0;
d3+=1;
}
if(d3==6)
{
d3=0;
d2+=1;
}
if(d2==10)
{
d2=0;
d1+=1;
}
if(d1==6)
{
d1=0;d2=0;d3=0;d4=0;
}
}
displ(d1,d2,d3,d4);
P1=temp;
P3=tem;
}
}
//动态显示子程序
void displ(char a,char b,char c,char d)
{
wela1=0;wela2=0; wela3=0; wela4=0;
P0=table[a];
wela1=1;wela2=0; wela3=0; wela4=0;
delay(5);
P0=table[b];
wela1=0;wela2=1; wela3=0; wela4=0;
delay(5);
P0=table[c];
wela1=0;wela2=0; wela3=1; wela4=0;
delay(5);
P0=table[d];
wela1=0;wela2=0; wela3=0; wela4=1;
delay(5);
}
//中断定时程序
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time ++;
}
2010-12-17
双流
这个是51hei开发板专区里转来的一个程序,注释很详细,运行也没有问题,原文地址:/bbs/dispbbs.asp?boardid=10id=4140
/*动态数显的设计思路,首先是我们要先知道怎样才能使哪个位亮,显示的段是什么数值,接下来就是中断时间的问题了,设计步骤如下,如果要让八个数码管静态显示1到8,我们可以修改中断时间
您可能关注的文档
最近下载
- 学前儿童科学教育与活动指导第一版课件.pptx VIP
- 部编版一下语文吃水不忘挖井人教案.doc VIP
- 一年级语文下册写字表笔画笔顺组词造句(打印版).pdf VIP
- 北师大版七年级下册生物导学案.pdf VIP
- 部编版语文五年级下册教学计划及进度表.doc VIP
- oracleebsopm标准功能培训opm成本v10.pdf VIP
- 新教材高中政治选择性必修2《法律与生活》全册同步课时练习题含答案解析.pdf VIP
- 2025年及未来5年中国风机叶轮动平衡机市场现状数据分析及数据监测报告.docx
- 高中数学预备知识教学研究.pptx VIP
- 【基恩士】SR-2000_1000 系列 × 三菱电机 iQ-F FX5 系列 连接指南 Ethernet PLC链接通信_Ethernet 端口内置CPU.pdf VIP
原创力文档

文档评论(0)