|
例2 00-99計數器的proteus仿真電路及C語言程序設計
0.png (27.47 KB, 下載次數: 43)
下載附件
2017-1-7 21:17 上傳
- #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;
-
- }
復制代碼
0.png (78.33 KB, 下載次數: 43)
下載附件
2017-1-7 21:16 上傳
所有資料下載:
例2 00-99計數器的proteus仿真電路及C語言程序設計.zip
(52.24 KB, 下載次數: 21)
2016-12-8 20:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|