標題: 51單片機串口發(fā)送遠程計算器 Proteus仿真程序 [打印本頁]

作者: mynameishebin    時間: 2019-11-23 17:52
標題: 51單片機串口發(fā)送遠程計算器 Proteus仿真程序
要求:
1、雙機通過串口連接
2、主機接受矩陣鍵盤按下的值,處理后通過串口發(fā)送對應數(shù)據(jù)給從機
3、從機接收主機發(fā)送的數(shù)據(jù),通過處理后,LCD實時顯示發(fā)送的數(shù)值,并在“=”發(fā)送后開始運算,同時顯示結(jié)果

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



源程序:

  1. /**
  2.   P1:按鍵
  3.   P2:數(shù)據(jù)LCD
  4.   P3:RW,RW,EN

  5. 主從機功能分配:
  6.    
  7.     主機以字符串形式接收數(shù)據(jù),并實時發(fā)送給從機,從機實時進行LCD顯示
  8.    
  9.     當主機檢測輸入為"="時,從機檢測接收到"=",從機計算結(jié)果,再進行LCD顯示
  10. */
  11. #include <reg52.h>
  12. #include <stdio.h>
  13. #include "Keyscan.h"
  14. #include "usart.h"

  15. unsigned char num;
  16. //unsigned char str;

  17. // 主機: 以字符串形式接收數(shù)據(jù),并實時發(fā)送給從機
  18. void main()
  19. {   
  20.     UsartInit();
  21.     delay(200);
  22.     while(1)
  23.     {         
  24.         num=KeyPro();//鍵盤掃描
  25.         if(num!=0xff) //按鍵按下
  26.         {  
  27.             putchar(num);
  28.         }
  29.     }
  30. }

復制代碼

  1. //主機main函數(shù)
  2. void main()
  3. {   
  4.     UsartInit();
  5.     delay(200);
  6.     while(1)
  7.     {         
  8.         num=KeyPro();
  9.         if(num!=0xff)
  10.         {  
  11.             putchar(num);
  12.         }
  13.     }
  14. }

  15. //從機main函數(shù)
  16. UsartInit();
  17.     LCD_init();
  18.     putstring("Hello,this is calaulator\r\n");
  19.     putstring("He is made from Hebin and Wangshaoji\r\n");
  20.     showstring(0,0,Hello_0);
  21.     showstring(0,1,Hello_1);
  22.     delayms(500);
  23.     while(1)
  24.     {   
  25.         showstring(0,0,dis_table0);
  26.         showstring(0,1,dis_table1);
  27.     }
  28. }
復制代碼

代碼和仿真都放在資料中了
注意只支持Proteus7.5版本,其他版本打開都會報錯的,dsn文件和代碼51hei下載地址:
distant_calculator.zip (45.58 KB, 下載次數(shù): 99)

作者: HR123    時間: 2019-11-25 22:23
仿真文件是Proteus7.5格式的  其他版本不行的

作者: songxia8013    時間: 2020-6-24 08:48
樓主,您的資料全嗎
作者: 6377377    時間: 2022-4-8 14:23
仿真文件是Proteus7.5格式的,用7.9打開果然報錯




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1