要求:
1、雙機通過串口連接
2、主機接受矩陣鍵盤按下的值,處理后通過串口發送對應數據給從機
3、從機接收主機發送的數據,通過處理后,LCD實時顯示發送的數值,并在“=”發送后開始運算,同時顯示結果
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (144.05 KB, 下載次數: 23)
下載附件
2022-4-9 03:04 上傳
2.png (60.65 KB, 下載次數: 33)
下載附件
2019-11-23 18:02 上傳
源程序:
- /**
- P1:按鍵
- P2:數據LCD
- P3:RW,RW,EN
- 主從機功能分配:
-
- 主機以字符串形式接收數據,并實時發送給從機,從機實時進行LCD顯示
-
- 當主機檢測輸入為"="時,從機檢測接收到"=",從機計算結果,再進行LCD顯示
- */
- #include <reg52.h>
- #include <stdio.h>
- #include "Keyscan.h"
- #include "usart.h"
- unsigned char num;
- //unsigned char str;
- // 主機: 以字符串形式接收數據,并實時發送給從機
- void main()
- {
- UsartInit();
- delay(200);
- while(1)
- {
- num=KeyPro();//鍵盤掃描
- if(num!=0xff) //按鍵按下
- {
- putchar(num);
- }
- }
- }
復制代碼
- //主機main函數
- void main()
- {
- UsartInit();
- delay(200);
- while(1)
- {
- num=KeyPro();
- if(num!=0xff)
- {
- putchar(num);
- }
- }
- }
- //從機main函數
- UsartInit();
- LCD_init();
- putstring("Hello,this is calaulator\r\n");
- putstring("He is made from Hebin and Wangshaoji\r\n");
- showstring(0,0,Hello_0);
- showstring(0,1,Hello_1);
- delayms(500);
- while(1)
- {
- showstring(0,0,dis_table0);
- showstring(0,1,dis_table1);
- }
- }
復制代碼
51hei.png (8.03 KB, 下載次數: 21)
下載附件
2022-4-9 03:07 上傳
代碼和仿真都放在資料中了
注意只支持Proteus7.5版本,其他版本打開都會報錯的,dsn文件和代碼51hei下載地址:
distant_calculator.zip
(45.58 KB, 下載次數: 99)
2019-11-23 17:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|