久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3075|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)主從機(jī)通訊叫號(hào)系統(tǒng)protues仿真與源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
基于51單片機(jī)的叫號(hào)系統(tǒng)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)其實(shí)就是一個(gè)單片機(jī)控制的主從機(jī)通訊系統(tǒng)


單片機(jī)源程序如下:
  1. /*-----------------------------------------------
  2.   名稱(chēng):LCD1602
  3.   修改:無(wú)
  4.   內(nèi)容:
  5.   引腳定義如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK
  6. ------------------------------------------------*/
  7. /*------------------------------------------------
  8.               寫(xiě)入字符函數(shù)
  9. ------------------------------------------------*/
  10. /* void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)
  11. {     
  12. if (y == 0)
  13.          {     
  14.          LCD_Write_Com(0x80 + x);     
  15.          }   
  16. else
  17.          {     
  18.          LCD_Write_Com(0xC0 + x);     
  19.          }        
  20. LCD_Write_Data( Data);  
  21. }*/
  22. /*------------------------------------------------
  23.               初始化函數(shù)
  24. ------------------------------------------------*/
  25. #include<reg52.h>
  26. #include<intrins.h>
  27. #include<stdio.h>

  28. #define CHECK_BUSY

  29. sbit RS = P2^4;   //定義端口
  30. sbit RW = P2^5;
  31. sbit EN = P2^6;
  32. sbit key1=P1^0; //VIP 按鍵
  33. sbit key2=P1^1; //普通按鍵
  34. sbit key3=P1^2; //對(duì)公按鍵
  35. sbit key4=P1^3; //業(yè)務(wù)選擇按鍵

  36. float num0,num1,num2;
  37. int num3;                        
  38.            
  39. #define RS_CLR RS=0
  40. #define RS_SET RS=1

  41. #define RW_CLR RW=0
  42. #define RW_SET RW=1

  43. #define EN_CLR EN=0
  44. #define EN_SET EN=1

  45. #define DataPort P0


  46. void DelayUs2x(unsigned char t)
  47. {   
  48. while(--t);
  49. }
  50. /*------------------------------------------------
  51. mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值
  52. unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是
  53. 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編
  54. ------------------------------------------------*/
  55. void DelayMs(unsigned char t)
  56. {
  57.      
  58. while(t--)
  59. {
  60.      //大致延時(shí)1mS
  61.      DelayUs2x(245);
  62.          DelayUs2x(245);
  63. }
  64. }


  65. /*------------------------------------------------
  66.               判忙函數(shù)
  67. ------------------------------------------------*/

  68. bit LCD_Check_Busy(void)
  69. {
  70. #ifdef CHECK_BUSY
  71. DataPort= 0xFF;
  72. RS_CLR;
  73. RW_SET;
  74. EN_CLR;
  75. _nop_();
  76. EN_SET;
  77. return (bit)(DataPort & 0x80);
  78. #else
  79. return 0;
  80. #endif
  81. }
  82. /*------------------------------------------------
  83.               寫(xiě)入命令函數(shù)
  84. ------------------------------------------------*/
  85. void LCD_Write_Com(unsigned char com)
  86. {  
  87. // while(LCD_Check_Busy()); //忙則等待
  88. DelayMs(5);
  89. RS_CLR;
  90. RW_CLR;
  91. EN_SET;
  92. DataPort= com;
  93. _nop_();
  94. EN_CLR;
  95. }
  96. /*------------------------------------------------
  97.               寫(xiě)入數(shù)據(jù)函數(shù)
  98. ------------------------------------------------*/
  99. void LCD_Write_Data(unsigned char Data)
  100. {
  101. //while(LCD_Check_Busy()); //忙則等待
  102. DelayMs(5);
  103. RS_SET;
  104. RW_CLR;
  105. EN_SET;
  106. DataPort= Data;
  107. _nop_();
  108. EN_CLR;
  109. }


  110. /*------------------------------------------------
  111.                 清屏函數(shù)
  112. ------------------------------------------------*/
  113. void LCD_Clear(void)
  114. {
  115. LCD_Write_Com(0x01);
  116. DelayMs(5);
  117. }
  118. /*------------------------------------------------
  119.               寫(xiě)入字符串函數(shù)
  120. ------------------------------------------------*/
  121. void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
  122. {     
  123. if (y == 0)
  124.          {     
  125.          LCD_Write_Com(0x80 + x);     //表示第一行
  126.          }
  127. else
  128.          {      
  129.          LCD_Write_Com(0xC0 + x);      //表示第二行
  130.          }        
  131. while (*s)
  132.          {     
  133. LCD_Write_Data( *s);     
  134. s ++;     
  135.          }
  136. }

  137. void LCD_Init(void)
  138. {
  139.    LCD_Write_Com(0x38);    /*顯示模式設(shè)置*/
  140.    DelayMs(5);
  141.    LCD_Write_Com(0x38);
  142.    DelayMs(5);
  143.    LCD_Write_Com(0x38);
  144.    DelayMs(5);
  145.    LCD_Write_Com(0x38);  
  146.    LCD_Write_Com(0x08);    /*顯示關(guān)閉*/
  147.    LCD_Write_Com(0x01);    /*顯示清屏*/
  148.    LCD_Write_Com(0x06);    /*顯示光標(biāo)移動(dòng)設(shè)置*/
  149.    DelayMs(5);
  150.    LCD_Write_Com(0x0C);    /*顯示開(kāi)及光標(biāo)設(shè)置*/
  151.    }



  152. void VIPdisplay()


  153. {
  154.    char displaytemp[16];//定義顯示區(qū)域臨時(shí)存儲(chǔ)數(shù)組
  155.       if(key1==0)
  156.                                 {
  157.                                         DelayMs(20);
  158.                                         if(key1==0)
  159.                                         {
  160.                                                 
  161.                                                 num0=num0+1;
  162.        LCD_Write_String(0,0,"window1");
  163.        sprintf(displaytemp,"VIP  % 7.0f ",num0);//打印數(shù)值
  164.        LCD_Write_String(0,1,displaytemp);//顯示第二行
  165.                         }
  166.         if(num0==100)
  167.         {                                       
  168.             LCD_Write_String(0,0,"Please wait!");
  169.              num0=0;
  170.      }
  171.                    while(!key1);
  172.                                   DelayMs(20);
  173.                                         while(!key1);
  174.                                        
  175. }

  176. }

  177. void PUdisplay()


  178. {
  179.    char displaytemp[16];//定義顯示區(qū)域臨時(shí)存儲(chǔ)數(shù)組
  180.       if(key2==0)
  181.                                 {
  182.                                         DelayMs(20);
  183.                                         if(key2==0)
  184.                                         {
  185.                                                 
  186.                                                 num1=num1+1;
  187.        LCD_Write_String(0,0,"window2");
  188.        sprintf(displaytemp,"general  % 7.0f",num1);//打印數(shù)值
  189.        LCD_Write_String(0,1,displaytemp);//顯示第二行
  190.                         }
  191.         if(num1==100)
  192.         {                                       
  193.             LCD_Write_String(0,0,"Please wait!");
  194.              num1=0;
  195.      }
  196.                    while(!key2);
  197.                                   DelayMs(20);
  198.                                         while(!key2);
  199.                                        
  200. }

  201. }

  202. void Dgdisplay()


  203. {
  204.    char displaytemp[16];//定義顯示區(qū)域臨時(shí)存儲(chǔ)數(shù)組
  205.       if(key3==0)
  206.                                 {
  207.                                         DelayMs(20);
  208.                                         if(key3==0)
  209.                                         {
  210.                                                 
  211.                                                 num2=num2+1;
  212.        LCD_Write_String(0,0,"window3");
  213.        sprintf(displaytemp,"public  % 7.0f",num2);//打印數(shù)值
  214.        LCD_Write_String(0,1,displaytemp);//顯示第二行
  215.                         }
  216.         if(num2==100)
  217.         {                                       
  218.             LCD_Write_String(0,0,"Please wait!");
  219.              num2=0;
  220.      }
  221.                    while(!key3);
  222.                                   DelayMs(20);
  223.                                         while(!key3);
  224. ……………………

  225. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
protues仿真.zip (88.74 KB, 下載次數(shù): 94)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:340513 發(fā)表于 2018-6-1 13:17 | 只看該作者
這個(gè)能做成一個(gè)主機(jī)帶多個(gè)從機(jī)嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:303383 發(fā)表于 2018-6-1 16:30 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

地板
ID:247623 發(fā)表于 2019-7-2 15:32 | 只看該作者
仿真有問(wèn)題,無(wú)法實(shí)現(xiàn)功能
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费一级黄色电影 | 亚洲网站在线 | 日本欧美国产在线观看 | 国产成人午夜高潮毛片 | 国产精品久久亚洲7777 | 波多野吉衣在线播放 | 99精品欧美一区二区三区综合在线 | 日韩成人在线播放 | 一区二区免费 | av网站在线看| 日韩欧美在线视频一区 | 亚洲高清av | 日韩免费视频一区二区 | 国产精品96久久久久久 | 黑人中文字幕一区二区三区 | 亚洲精品在线免费观看视频 | 一区二区久久精品 | 久久大陆 | 福利片在线看 | 国产一区二区久久 | 国产黄色大片在线观看 | 亚洲成人一区二区三区 | 欧美黄色小视频 | 日韩在线不卡 | 成人网视频 | 日本羞羞影院 | 一区二区三区在线免费观看视频 | 成人国产精品久久久 | 亚洲天堂影院 | 天天综合网91 | 久久国产美女视频 | 日韩国产专区 | 国产日韩欧美另类 | 国产精品色 | 青青久久 | 久久99深爱久久99精品 | 国产精品夜夜春夜夜爽久久电影 | 在线观看av不卡 | 免费一区二区 | 91视频大全 | 一级免费看 |