|
例2 00-99计数器的proteus仿真电路及C语言程序设计
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- char _data,j; //变量的定义数据、循环次数。
- uint a;// 变量,秒的判断
- bit miao;//秒到了
- uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//断码缓冲区,0xff是用来消隐
- uchar bit_[]={0x01,0x02,0x04};//位缓冲区
- uchar buffer[3];//显示缓冲区
- uchar code TH0val=63075/256;//timer0中断符初值,2.5ms
- uchar code TL0val=63075%256;//
- main()
- {
- _data=0;//数据初始化
- TMOD=0X01;//中断初始化
- TR0=1;
- ET0=1;
- TH0= TH0val;
- TL0=TL0val;
- EA=1;
- while(1)//主循环
- {
-
-
-
- if(_data<10)//
- {
- buffer[0]=10;//消隐
-
-
- }
- else
- {
- buffer[0]=_data/10;//十位数
- }
- buffer[1]=_data%10;//个位数
- if(miao)
- {
- _data++;//数据加一
- miao=0;//秒味清零
-
-
- }
- if(_data==100)//数据恢复初值
- {
- _data=0;
- }
- }
- }
- void timer0() interrupt 1
- { uchar tmp;
- TH0= TH0val;
- TL0=TL0val;
- a++;
- if(a==400)//是否到了一秒
- {
- miao=1;//秒位置1
- a=0;
- }
- tmp=bit_[j];//显示数据
- P2=tmp;
- tmp=buffer[j];
- tmp=tab[tmp];
- P0=tmp;
- j++;
-
- if(j==2)
- j=0;
-
- }
复制代码
所有资料下载:
例2 00-99计数器的proteus仿真电路及C语言程序设计.zip
(52.24 KB, 下载次数: 21)
|
|