|
例2 00-99計數(shù)器的proteus仿真電路及C語言程序設(shè)計
0.png (27.47 KB, 下載次數(shù): 43)
下載附件
2017-1-7 21:17 上傳
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- char _data,j; //變量的定義數(shù)據(jù)、循環(huán)次數(shù)。
- uint a;// 變量,秒的判斷
- bit miao;//秒到了
- uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//斷碼緩沖區(qū),0xff是用來消隱
- uchar bit_[]={0x01,0x02,0x04};//位緩沖區(qū)
- uchar buffer[3];//顯示緩沖區(qū)
- uchar code TH0val=63075/256;//timer0中斷符初值,2.5ms
- uchar code TL0val=63075%256;//
- main()
- {
- _data=0;//數(shù)據(jù)初始化
- TMOD=0X01;//中斷初始化
- TR0=1;
- ET0=1;
- TH0= TH0val;
- TL0=TL0val;
- EA=1;
- while(1)//主循環(huán)
- {
-
-
-
- if(_data<10)//
- {
- buffer[0]=10;//消隱
-
-
- }
- else
- {
- buffer[0]=_data/10;//十位數(shù)
- }
- buffer[1]=_data%10;//個位數(shù)
- if(miao)
- {
- _data++;//數(shù)據(jù)加一
- miao=0;//秒味清零
-
-
- }
- if(_data==100)//數(shù)據(jù)恢復初值
- {
- _data=0;
- }
- }
- }
- void timer0() interrupt 1
- { uchar tmp;
- TH0= TH0val;
- TL0=TL0val;
- a++;
- if(a==400)//是否到了一秒
- {
- miao=1;//秒位置1
- a=0;
- }
- tmp=bit_[j];//顯示數(shù)據(jù)
- P2=tmp;
- tmp=buffer[j];
- tmp=tab[tmp];
- P0=tmp;
- j++;
-
- if(j==2)
- j=0;
-
- }
復制代碼
0.png (78.33 KB, 下載次數(shù): 43)
下載附件
2017-1-7 21:16 上傳
所有資料下載:
例2 00-99計數(shù)器的proteus仿真電路及C語言程序設(shè)計.zip
(52.24 KB, 下載次數(shù): 21)
2016-12-8 20:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|