仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
(3JO0WVJOK(SXXV]J0A}7F3.png (64.55 KB, 下載次數: 91)
下載附件
pro7.8倒計時仿真效果
2020-11-27 23:17 上傳
24[}5OJFDOX)AIV%N0`IPSJ.png (65.66 KB, 下載次數: 79)
下載附件
pro7.8倒計時仿真效果
2020-11-27 23:17 上傳
%2NUU$)GFJQI3K0KZ(@NM.png (119.22 KB, 下載次數: 85)
下載附件
keil4程序代碼
2020-11-27 23:17 上傳
單片機源程序如下:
- #include<reg51.h>
- char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共陰極LED字模
- sbit P3_0=P3^0; //定義位變量
- sbit P3_1=P3^1;
- unsigned char x,y,num=70,n=0; //宏定義 num為秒表時間設置函數
- void delay(unsigned int time)
- { //延時1ms函數
- unsigned int j=0;
- for(;time>0;time--)
- for(j=0;j<125;j++);
- }
- void key() interrupt 1
- { //中斷函數
- TL0 = 0xB0; //初值重裝
- TH0 = 0x3C;
- n++; //計時
- if(n==20) //1s到了
- {
- n=0; //每秒重置一次
- if(num==0) num=70; //每70s循環
- x=num/10; //LED顯示十位
- y=num%10; //LED顯示個位
- num--; //每定時1s,倒計時減一秒
- }
- }
- void main()
- {
- TMOD = 0x01; //T0工作在方式1
- TL0 = 0xB0; //50ms
- TH0 = 0x3C;
- ET0 = 1; //開定時器0中斷允許位
- EA = 1; //開總中斷
- TR0 = 1; //開定時器0
- while(1)
- { //數碼管的動態顯示
- P3_1 = 1; //數碼管的個位顯示
- P2 = led_mod[x];
- P3_0 = 0;
- delay(5);
- P3_0 = 1; //數碼管的十位顯示
- P2 = led_mod[y];
- P3_1 = 0;
- delay(5);
- }
- }
復制代碼
51hei.png (8.13 KB, 下載次數: 85)
下載附件
2020-11-27 23:40 上傳
所有資料51hei提供下載:
基于C51中斷系統做兩位電子秒表例子.rar
(32.25 KB, 下載次數: 34)
2020-11-27 23:19 上傳
點擊文件名下載附件
詳細編程文件和仿真文件 下載積分: 黑幣 -5
|