![]() |
|
| | 网站首页 | 电子知识 | 单片机知识 | 电路设计 | 微电子技术 | SCADA系统 | 资源下载 | 给我留言 | 谷歌商城 | 视频教程 | ieee | |
| 热门搜索关键字: 单片机教程 | 三极管 | 二极管 | C语言 | 汇编语言 | SCADA | 元器件 | 模拟电子 | |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/* 99计数器C语言版本
*********************************
Create by:左秀龙
support:
Tel:0755-82879296
email: cutedesign@tom.com
Date: 2005/06/23
*********************************
*/
#include<AT89x51.h>
void main()
{
unsigned char DB[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //0~9数据
unsigned char i,upbit,lowbit,cnt=100;
void delay10ms(unsigned char time);
while(1)
{
for(i=0;i<cnt;i++)
{
if(i<10) //小于10的数直接显示在个位
{
P0=DB[i]; //P0口为段接位
P2_0=0; //个位的位选
delay10ms(100);
P2_0=1;
}
else if(i>=10) //大于等于10的数分时显示在个位和十位上
{
upbit=i/10;
lowbit=i%10;
P0=DB[lowbit];
P2_0=0;
delay10ms(100);
P2_0=1;
P2_0=1; //十位的位选
P0=DB[upbit];
P2_1=0;
delay10ms(100);
P2_1=1;
}
}
}
}
//延时程序
void delay10ms(unsigned char time)
{
unsigned char a,b,c;
for(a=0;a<=time;a++)
for(b=0;b<=10;b++)
for(c=0;c<=120;c++)
;
}
附录: 999计数器C语言源程序
//数码管实验
/* 999计数器C语言源程序
*********************************
Create by:左秀龙
support:
Tel:0755-82879296
email: cutedesign@tom.com
Date: 2005/07/4
*********************************
*/
#include
void main()
{
unsigned char DB[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //0~9数据
unsigned char a;
unsigned int i,upbit,lowbit,hibit,cnt=1000;
void delay10ms(unsigned char time);
while(1)
{
for(i=0;i
hibit=i/100; //提取百位
upbit=(i-hibit*100)/10; //提取十位
lowbit=i%10; //提取个位
for(a=0;a<30;a++) //调整a的大小可改变计数的显示速度
{
P0=DB[lowbit];
P2_0=0; //个位的位选
delay10ms(1);
P2_0=1;
P0=DB[upbit];
P2_1=0; //十位的位选
delay10ms(1);
P2_1=1;
P0=DB[hibit];
P2_2=0; //百位的位选
delay10ms(1);
P2_2=1;
}
}
}
}
//延时程序
void delay10ms(unsigned char time)
{
unsigned char a,b,c;
for(a=0;a<=time;a++)
for(b=0;b<=10;b++)
for(c=0;c<=120;c++)
;
}
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站地图 | 名站导航 | 管理登录 | |
| 本站资源部分来自互联网,如侵犯您的权利,我们将予以删除 鲁ICP备08006092号 |
| 中国IEEE 中国电气电子工程师网 版权所有 |