|
兩個(gè)51單片機(jī)采用串口通信,實(shí)現(xiàn)叫號(hào)系統(tǒng),附加為代碼+Proteus仿真,采用LCD12864顯示
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (45.9 KB, 下載次數(shù): 78)
下載附件
2020-4-12 21:20 上傳
單片機(jī)源程序如下:
- #include <REG51F.H>
- #include <stdlib.h>
- #include "uart.h"
- #include <stdio.h>
- #include "12864.h"
- #include "tcs_resource.h"
- unsigned char hour = 23;
- unsigned char mnt = 59;
- unsigned char sec = 50;
- sbit KEY1 = P1^0;
- sbit KEY2 = P1^1;
- void delay(uint ms);
- void button();
- void Delay10ms(uchar u);
- void Timer0Init(void);
- void show(void);
- void main(void)
- {
- num=0;
- TMOD=0x01;
- EA = 1; //開總中斷
- ES = 1; //串口中斷標(biāo)志位
- Timer0Init();
- UartInit();
-
- choose12864(2); //選擇為全屏操作
- init12864(); //初始化12864
- clear12864(); //清屏
- while(1)
- {
- show();
- button();
-
- }
- }
- void show(void)
- {
- char j = 0;
- play8(0,0,2,letter[13]);
- play8(0,1,2,letter[20]);
- play8(0,2,2,letter[22]);
- play8(0,3,2,fuhao[0]);
- play8(0,4,2,Number[Number1/10]);
- play8(0,5,2,Number[Number1%10]);
-
- play8(1,0,2,letter[22]);
- play8(1,1,2,letter[15]);
- play8(1,2,2,fuhao[0]);
- play8(1,3,2,Number[num/10]);
- play8(1,4,2,Number[num%10]);
- //顯示時(shí)分秒
- play8(0,3,1,Number[hour/10]);
- play8(0,4,1,Number[hour%10]);
- play8(0,5,1,fuhao[1]);
- play8(0,6,1,Number[mnt/10]);
- play8(0,7,1,Number[mnt%10]);
- play8(1,0,1,fuhao[1]);
- play8(1,1,1,Number[sec/10]);
- play8(1,2,1,Number[sec%10]);
- }
- void button()
- {
- if(KEY1==0)
- {
- delay(5);
- if(KEY1==0)
- {
- Number1++;
- num=Number1-1;
- choose12864(2); //選擇為全屏顯示
- init12864(); //初始化12864
- clear12864();
- Delay10ms(1);
- while(KEY1==0);
- send();
- }
- }
- }
- void delay(uint ms)
- {
- uint i,j;
- for(i=ms;i>0;i--)
- for(j=110;j>0;j--);
- }
- void Delay10ms(uchar u)
- {
- unsigned char i, j;
- i = 108;
- j = 145;
- while(u--)
- {
- do
- {
- while (--j);
- } while (--i);}
- }
- void Timer0Init(void) //62毫秒@11.0592MHz
- {
- TMOD |= 0x01;
- ET0 = 1;
- TR0 = 1; //定時(shí)器0開始計(jì)時(shí)
- }
- void T0ISR() interrupt 1
- {
- static char n = 0;
- TH0=(65536-62500)/256;//在65.536ms定時(shí)器允許的最大范圍內(nèi)取最大值,1000/n=62.5ms,n=16
- TL0=(65536-62500)%256;
- n++;
- if(n>15)
- {
- n = 0;
- sec++;
- if(sec>59)
- {
- sec = 0;
- mnt++;
- if(mnt>59)
- {
- mnt = 0;
- hour++;
- if(hour>23)
- hour = 0;
- }
- }
- }
- }
復(fù)制代碼
51hei.png (4.19 KB, 下載次數(shù): 72)
下載附件
2020-4-12 21:21 上傳
所有資料51hei提供下載:
叫號(hào)系統(tǒng).7z
(43.97 KB, 下載次數(shù): 68)
2022-7-18 02:46 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|