基本功能:PC機通過串口以字符方式向單片機發送一1位十進制數值(仿真時串口發送器的顯示設置為Echo T),波特率為9600,單片機收到后將其顯示到數碼管上,當P3.2引腳按鍵按下時開始做秒表倒計時(這里使用的是定時器),數值減到0停止,P3.5端口的LED燈閃爍三下
發揮部分:在基本功能基礎上,PC機通過串口向單片機發送一2位十進制數值
我把基本功能做出來了,有需要的下載即可,另外有沒有大佬指點一下發揮部分應該怎樣寫?
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
E%(EEPI`(E37QSL5L9]0MYV.png (93.42 KB, 下載次數: 72)
下載附件
仿真圖
2020-6-24 10:32 上傳
單片機源程序如下:
- #include <reg52.h>
- sbit key = P3^2;
- sbit led = P3^5;
- typedef unsigned char uchar;
- typedef unsigned int uint;
- uchar smg[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};
- uchar num[2];
- uchar time,tt=0,over = 0;
- char s = 0;
- /*****************************************
- 延時函數
- *****************************************/
- void delay(uint x)
- {
- uchar y;
- for(x;x>0;x--)
- for(y=110;y>0;y--);
- }
- /*****************************************
- 數碼管顯示函數
- *****************************************/
- void smg_show(char num_[])
- {
- char i;
- num_[0] = 0;
- //num_[1] = 2;
- for(i=6;i<=7;i++)
- {
- P1=(0x01<<i);
- P0=~smg[num_[i-6]];
- delay(1);
- P0=0xff;
- delay(1);
- }
- }
- void time_uart_init()
- {
- TMOD = 0x21;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
- SCON = 0x50;
- TH0=0XFC; //給定時器賦初值,定時1ms
- TL0=0X18;
- TH1 = 0xfd;
- TL1 = 0xfd;
- ET0=1;//打開定時器0中斷允許
- EA=1;//打開總中斷
- TR0=1;//打開定時器
- TR1 = 1;
- ES = 1;
-
- }
- void main()
- {
- uchar j = 0;
- time_uart_init();
- while(1)
- {
- // time = num[0]
- num[0] = 0;
- num[1] = time;
- smg_show(num);
- if(key == 0)
- {
- s = 1;
- while(!key);
- }
- if(over)
- {
- for(j = 0;j<6;j++)
- {
- led = ~led;
- delay(1000);
- }
- over = 0;
- }
- }
- }
- /*****************************************
- 定時器0中斷函數
- *****************************************/
- void Timer0() interrupt 1
- {
- static uint i;
- TH0=0XFC; //給定時器賦初值,定時1ms
- TL0=0X18;
- i++;
- if(i==1000)
- {
- if(s)
- {
- time--;
- if(time<=0)
- {
- time = 0;
- over = 1;
- s = 0;
- }
-
-
- // over = 1;
- }
- i = 0;
- }
- }
- void serve() interrupt 4
- {
- uchar temp;
- if(RI)
- {
- RI = 0;
- temp = SBUF-0x30;
- time = temp;
- num[tt] = temp;
- tt++;
- if(tt==2)
- tt = 0;
- }
- }
復制代碼
所有資料51hei提供下載:
PC機控制的倒計時秒表.zip
(25.43 KB, 下載次數: 20)
2020-6-24 10:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|