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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4185|回復: 0
打印 上一主題 下一主題
收起左側

單片機串口接收通過MAX7219驅動64個繼電器仿真+代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:421173 發表于 2018-11-21 16:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
上電發送工作正常指令給主CPU
接收8位數據
后八位為控制位,大于100的RSET   小于100的SET  
輸出范圍  Q   00---07
              10---17
              20---27
              30---37
                 *
              70---77

接收到數據后反饋給主CPU,檢查正確性

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


單片機源程序如下:
  1. /****************************************************
  2. 單片機89C55,12M晶振,通過單片機和MAX7219控制64個繼電器輸出;
  3. 采用通信方式接收信息,接收方式為八位數據;接收采用串口接收數據;
  4. 00--07分別對應Q0.0--Q0.7八個繼
  5. 電器動作;10--17為Q1.0--Q1.7八個繼電器動作*****Q7.0--Q7.7總64
  6. 個繼電器;
  7. 想復位繼電器,對應的前面加100即可,如100,為Q0.0繼電器復位;
  8. 172為Q7.2繼電器復位;
  9. ****************************************************/
  10. #include <reg52.h>
  11. #include <intrins.h>
  12. #define uchar unsigned char
  13. #define uint  unsigned int
  14. //定義Max7219端口
  15. sbit Max7219_pinCLK = P2^2;
  16. sbit Max7219_pinCS  = P2^1;
  17. sbit Max7219_pinDIN = P2^0;

  18. uchar ReData;

  19. uchar code DP[]={0,128,1,2,4,8,16,32,64,255};//顯示從全滅到一個燈泡
  20. uchar NUM0,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,NUM7;
  21. uchar code SET[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  22. uchar code RSET[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

  23. void Delay_xms(uint x)
  24. {
  25. uint i,j;
  26. for(i=0;i<x;i++)
  27.   for(j=0;j<112;j++);
  28. }
  29. //--------------------------------------------
  30. //功能:向MAX7219(U3)寫入字節
  31. //入口參數:DATA
  32. //出口參數:無
  33. //說明:
  34. void Write_Max7219_byte(uchar DATA)         
  35. {
  36.             uchar i;   
  37.                 Max7219_pinCS=0;               
  38.             for(i=8;i>=1;i--)
  39.           {                  
  40.             Max7219_pinCLK=0;
  41.             Max7219_pinDIN=DATA&0x80;
  42.             DATA=DATA<<1;
  43.             Max7219_pinCLK=1;
  44.            }                                 
  45. }
  46. //-------------------------------------------
  47. //功能:向MAX7219寫入數據
  48. //入口參數:address、dat
  49. //出口參數:無
  50. //說明:
  51. void Write_Max7219(uchar address,uchar dat)
  52. {
  53.      Max7219_pinCS=0;
  54.          Write_Max7219_byte(address);           //寫入地址,即數碼管編號
  55.      Write_Max7219_byte(dat);               //寫入數據,即數碼管顯示數字
  56.          Max7219_pinCS=1;                        
  57. }

  58. void Init_MAX7219(void)
  59. {
  60. Write_Max7219(0x09, 0x00);       //譯碼方式:BCD碼
  61. Write_Max7219(0x0a, 0x03);       //亮度
  62. Write_Max7219(0x0b, 0x07);       //掃描界限;8個數碼管顯示
  63. Write_Max7219(0x0c, 0x01);       //掉電模式:0,普通模式:1
  64. Write_Max7219(0x0f, 0x00);       //顯示測試:1;測試結束,正常顯示:0
  65. }



  66. void SHUCHU(unsigned char shu)//數碼代表輸出點Q0.0---Q0.8...Q8.0---Q8.8  數00--77  大于100是復位
  67. {
  68. unsigned char i,j;
  69. i=shu%100/10;
  70. j=shu%10;
  71. switch(i)
  72.         {
  73.         case 0:{NUM0=NUM0|SET[j];Write_Max7219(1,NUM0);break;};
  74.     case 1:{NUM1=NUM1|SET[j];Write_Max7219(2,NUM1);break;};
  75.     case 2:{NUM2=NUM2|SET[j];Write_Max7219(3,NUM2);break;};
  76.     case 3:{NUM3=NUM3|SET[j];Write_Max7219(4,NUM3);break;};
  77.     case 4:{NUM4=NUM4|SET[j];Write_Max7219(5,NUM4);break;};
  78.     case 5:{NUM5=NUM5|SET[j];Write_Max7219(6,NUM5);break;};
  79.     case 6:{NUM6=NUM6|SET[j];Write_Max7219(7,NUM6);break;};
  80.     case 7:{NUM7=NUM7|SET[j];Write_Max7219(8,NUM7);break;};
  81.   
  82.         }       

  83. }

  84. void RSHUCHU(unsigned char shu)//數碼代表輸出點Q0.0---Q0.8...Q8.0---Q8.8  數00--77  大于100是復位
  85. {
  86. unsigned char i,j;
  87. i=shu%100/10;
  88. j=shu%10;
  89. switch(i)
  90.         {
  91.         case 0:{NUM0=NUM0&RSET[j];Write_Max7219(1,NUM0);break;};
  92.     case 1:{NUM1=NUM1&RSET[j];Write_Max7219(2,NUM1);break;};
  93.     case 2:{NUM2=NUM2&RSET[j];Write_Max7219(3,NUM2);break;};
  94.     case 3:{NUM3=NUM3&RSET[j];Write_Max7219(4,NUM3);break;};
  95.     case 4:{NUM4=NUM4&RSET[j];Write_Max7219(5,NUM4);break;};
  96.     case 5:{NUM5=NUM5&RSET[j];Write_Max7219(6,NUM5);break;};
  97.     case 6:{NUM6=NUM6&RSET[j];Write_Max7219(7,NUM6);break;};
  98.     case 7:{NUM7=NUM7&RSET[j];Write_Max7219(8,NUM7);break;};
  99.    
  100.         }       

  101. }

  102. void main(void)
  103. {
  104. unsigned char num;
  105.         SCON = 0x50;      //REN=1允許串行接受狀態,串口工作模式1                             
  106.             TMOD|= 0x20;      //定時器工作方式2                    
  107.                 PCON|= 0x80;                                                         
  108.                
  109.                 TH1  = 0xFD;     //baud*2  /* reload value 19200、數據位8、停止位1。效驗位無         
  110.                
  111.                 TR1  = 1;                                                            
  112.                 ES   = 1;        //開串口中斷                  
  113.                 EA   = 1;        // 開總中斷

  114. Init_MAX7219();

  115. while(1)
  116. {
  117. num=ReData;
  118. if(num>=100)
  119. {RSHUCHU(num%100);}
  120. else
  121. SHUCHU(num%100);//x7,x0,x1,x2,x3,x4,x5,x6  1---8燈泡亮
  122.        
  123. }  
  124. }


  125. /****************************************************
  126.                串口中斷程序
  127. ******************************************************/
  128. void ser_int (void) interrupt 4 using 1
  129. {

  130. if(RI == 1)        //RI接受中斷標志
  131. {
  132.         RI = 0;                    //清除RI接受中斷標志
  133.         ReData = SBUF;  //SUBF接受/發送緩沖器
  134. }

  135. }
復制代碼

所有資料51hei提供下載:

此商品已被刪除

MAX7219點陣驅動64個繼電器OK.rar

9.4 MB, 下載次數: , 下載積分: 黑幣 -5

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清视频 | 国际精品久久 | 欧美精品一区二区三区四区 在线 | 欧美成人专区 | 午夜视频一区二区 | 在线观看亚洲专区 | 欧美一区二区在线 | 国产成人综合av | 成人亚洲精品久久久久软件 | 99久久久国产精品 | 五月激情久久 | 久久久精彩视频 | av毛片免费| 国产男女精品 | 在线色 | 日本二区在线观看 | 国产美女永久免费无遮挡 | 久久黄色 | 日本又色又爽又黄的大片 | 999www视频免费观看 | cao在线| 91精品国产色综合久久 | 国产高清在线精品 | 电影91久久久 | 久久机热 | 午夜精品一区二区三区在线视频 | 国产欧美在线 | 2018中文字幕第一页 | 日韩精品视频在线播放 | 天天天操操操 | 日韩精品一区二区三区在线播放 | 久久av网 | 91一区二区三区在线观看 | 欧美成人免费在线视频 | 精品国产乱码久久久久久丨区2区 | 精品欧美色视频网站在线观看 | 国产一区二区av | 91美女在线 | 中文字幕乱码亚洲精品一区 | 国产免费又色又爽又黄在线观看 | www国产亚洲精品 |