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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機雙機通信+LCD1602匯編語言程序

[復制鏈接]
跳轉到指定樓層
樓主
在主機顯示學號姓名,利用通信功能,在從機也顯示同樣的內容。
  1. ;發送端
  2. ;/通用寄存器R5用于錄入lcd1602的8位指令和數據
  3. ORG 000H
  4. LCD_PORT EQU P1
  5. COUNT EQU 30H
  6. RS EQU P2.5
  7. RW EQU P2.6
  8. EN  EQU P2.7

  9. AJMP START

  10. ORG 00BH
  11. LJMP TIME0

  12. ORG 100H
  13. START:
  14. ;將自定義的八個字符寫入CGRAM
  15. ACALL ENABLE
  16. MOV P1,#40H
  17.         ACALL ENABLE
  18.         MOV DPTR,#SELF1
  19.         CALL WSELF
  20.         MOV P1,#48H
  21.         ACALL ENABLE
  22.         MOV DPTR,#SELF2
  23.         CALL WSELF
  24.         MOV P1,#50H
  25.         ACALL ENABLE
  26.         MOV DPTR,#SELF3
  27.         CALL WSELF
  28.         MOV P1,#58H
  29.         ACALL ENABLE
  30.         MOV DPTR,#SELF4
  31.         CALL WSELF
  32.         MOV P1,#60H
  33.         ACALL ENABLE
  34.         MOV DPTR,#SELF5
  35.         CALL WSELF
  36.         MOV P1,#68H
  37.         ACALL ENABLE
  38.         MOV DPTR,#SELF6
  39.         CALL WSELF
  40.         MOV P1,#70H
  41.         ACALL ENABLE
  42.         MOV DPTR,#SELF7
  43.         CALL WSELF
  44.         MOV P1,#78H
  45.         ACALL ENABLE
  46.         MOV DPTR,#SELF8
  47.         CALL WSELF
  48. //定時器設置
  49.         MOV TMOD,#00100001B
  50.         SETB EA;總開關
  51.         MOV PCON,#80H
  52.         MOV TH1,#0FDH
  53. //初始化串口//方式1發送接收均初始化
  54.         MOV SCON,#01010000B
  55.         SETB TR1;定時器1開始運行

  56. ACALL LCD1602_init;初始化lcd1602

  57. ACALL PRINT0

  58. MAIN:
  59. MOV DPTR,#NUM_TAB
  60. MOV R0,#16

  61. ACALL DELAY5
  62. ACALL SEND_DATA
  63. NEXT:AJMP NEXT


  64. //發送數據,表地址放入dptr,發送數量放入R0
  65. SEND_DATA:
  66. INC R0
  67. MOV A,#00H;從首位開始
  68. SEND_DATA_0:
  69. DJNZ R0,SEND_DATA_1
  70. ret
  71. SEND_DATA_1:
  72. ACALL D5MS
  73. ACALL D5MS
  74. PUSH ACC
  75. MOVC A,@A+DPTR
  76. MOV SBUF,A
  77. ACALL D5MS
  78. POP ACC
  79. INC A
  80. WAIT:JBC TI,SEND_DATA_0//等待發送完成
  81. AJMP WAIT
  82. //寫指令,指令放入R5
  83. WRITE_COM:
  84. CLR  RS                                                                 ;(130)RS,RW,EN均置0,寫指令
  85. CLR  RW
  86. CLR  EN
  87. MOV LCD_PORT ,R5                                     ;(131)指令一律寫入R5,在移入P2
  88. SETB  EN      
  89. ACALL D5MS
  90. ACALL D5MS
  91. CLR  EN                                                                 ;(132)EN跳變,允許數據交換
  92. RET                                                                         ;(134)返回原處

  93. //寫數據,數據放入R5
  94. WRITE_DATA:
  95. SETB  RS                                                                 ;(130)RS置1,RW,EN均置0,寫數據
  96. CLR  RW
  97. CLR  EN
  98. MOV LCD_PORT ,R5                                                         ;(131)數據一律寫入R5,在移入P2
  99. //ACALL D5MS
  100. SETB  EN      
  101. ACALL D5MS
  102. ACALL D5MS
  103. CLR  EN                                                                 ;(132)EN跳變,允許數據交換
  104. RET                                                                         ;(134)返回原處

  105. //初始化LCD1602
  106. LCD1602_init:
  107. MOV R5,#06H                                                        ;(144)8位數據,5*7點陣,2行顯示
  108. ACALL WRITE_COM                       
  109. MOV R5,#0CH                                                        ;(148)寫一個數據后,光標右移,屏幕不移動
  110. ACALL WRITE_COM
  111. MOV R5,#38H                                                        ;(146)顯示開,關光標,光標不閃爍
  112. ACALL WRITE_COM
  113. MOV R5,#01H                                                        ;(150)清屏
  114. ACALL WRITE_COM
  115. RET

  116. PRINT0:
  117. PUSH ACC;對A做保護
  118. PUSH 06
  119. PUSH 05
  120. MOV A,#00H
  121. MOV R3,#16
  122. MOV DPTR,#NUM_TAB

  123. PRINT0_0:
  124. PUSH ACC
  125. MOVC A,@A+DPTR
  126. MOV R5,#00H                ;(49)命令載入R5
  127. ACALL WRITE_COM                        ;(50)寫命令
  128. MOV R5,A
  129. ACALL WRITE_DATA
  130. POP ACC
  131. INC A
  132. DJNZ R3,PRINT0_0
  133. POP 05
  134. POP 06
  135. POP ACC
  136. RET

  137. ENABLE:
  138.         CLR RS
  139.         CLR RW
  140.         CLR EN
  141.         ACALL D5MS
  142.         ACALL D5MS
  143.         SETB EN
  144.         RET
  145.       
  146. WSELF:
  147.         MOV R7,#00H
  148. W1:
  149.         MOV A,R7
  150.         MOVC A,@A+DPTR
  151.         CALL WRITE1
  152.         INC R7
  153.         CJNE R7,#08H,W1
  154.         RET
  155. WRITE1:
  156.         CLR EN
  157.         SETB RS
  158.         CLR RW
  159.         SETB EN
  160.         MOV P1,A
  161.         CLR EN
  162.         CALL D5MS
  163.     CALL D5MS
  164.         RET
  165. //計數器0中斷服務函數
  166. TIME0:
  167. PUSH ACC
  168. INC 30H
  169. MOV A,30H
  170. CJNE A,#02,RETIME;5*O.1S
  171. INC R3
  172. MOV 30H,#0

  173. RETIME:
  174. MOV TH0,#27H
  175. MOV TL0,#11H;重置定時器
  176. POP ACC
  177. RETI
  178. //延時5ms左右,已進行現場保護
  179. D5MS:
  180. PUSH 07
  181. PUSH 06
  182. MOV  R7,#200      
  183. DEL1:MOV R6,#125
  184. DEL2:DJNZ R6,DEL2      
  185. DJNZ R7,DEL1
  186. POP 06
  187. POP 07
  188. RET
  189. //帶保護現場的延時
  190. DELAY5:
  191.         PUSH 02
  192.         PUSH 03
  193.         PUSH 04
  194.     MOV R2,#5
  195. DLY1:
  196.     MOV R3,#200
  197. DLY2:
  198.     MOV R4,#250
  199.     DJNZ R4,$
  200.     DJNZ R3,DLY2
  201.     DJNZ R2,DLY1
  202.         POP 04
  203.         POP 03
  204.         POP 02
  205.     RET
  206. //學號
  207. NUM_TAB: DB "0123456789",20H,05H,20H,06H,20H,07H
  208. //姓名
  209. SELF1:DB  04H,1FH,15H,1FH,15H,1FH,04H,07H
  210. SELF2:DB  02H,0CH,04H,1FH,0EH,15H,15H,04H
  211. SELF3:DB  02H,0AH,06H,02H,1FH,02H,02H,02H
  212. SELF4:DB  0EH,04H,04H,04H,0EH,04H,04H,0EH
  213. SELF5:DB  0FH,0AH,0AH,1AH,1FH,0AH,0AH,0FH
  214. SELF6:DB  09H,01H,1DH,07H,15H,09H,15H,03H
  215. SELF7:DB  04H,1FH,04H,0AH,1FH,00H,1BH,0BH
  216. SELF8:DB  02H,1CH,10H,14H,1FH,04H,15H,0CH
  217.       
  218. END
復制代碼

屏幕截圖 2022-06-07 130928.png (82.06 KB, 下載次數: 109)

屏幕截圖 2022-06-07 130928.png

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1026000 發表于 2022-6-7 13:16 | 只看該作者
  1. ;接收端
  2. //通用寄存器R5用于錄入lcd1602的8位指令和數據
  3. ORG 000H
  4. LCD_PORT EQU P1
  5. RS EQU P2.5
  6. RW EQU P2.6
  7. EN  EQU P2.7

  8. AJMP START

  9. ORG 023H
  10. LJMP REC

  11. ORG 100H
  12. START:
  13. //定時器1設置,即設置波特率

  14. MOV TMOD,#20H
  15. MOV PCON,#80H
  16. MOV TH1,#0FDH
  17. //

  18. //初始化串口//方式1發送接收均初始化
  19. MOV SCON,#01010000B
  20. SETB REN
  21. SETB TR1
  22. //

  23. //初始化中斷
  24. SETB EA;總開關
  25. SETB ES;串口中斷
  26. ACALL WCGRAM
  27. ACALL LCD1602_init;初始化lcd1602
  28. MAIN:;循環
  29. AJMP MAIN

  30. //串口中斷服務函數(僅用于接受數據)
  31. REC:
  32. PUSH ACC
  33. PUSH 05
  34. MOV A,SBUF
  35. CLR RI
  36. MOV R5,#00H
  37. ACALL WRITE_COM
  38. MOV R5,A
  39. ACALL WRITE_DATA
  40. POP 05
  41. POP ACC
  42. RETI

  43. //寫指令,指令放入R5
  44. WRITE_COM:
  45. ACALL D5MS
  46. CLR  RS                                                                 ;(130)RS,RW,EN均置0,寫指令
  47. CLR  RW
  48. CLR  EN
  49. MOV LCD_PORT ,R5                                                         ;(131)指令一律寫入R5,在移入P2
  50. //ACALL D5MS
  51. SETB  EN        
  52. CLR  EN                                                                 ;(132)EN跳變,允許數據交換
  53. RET                                                                         ;(134)返回原處


  54. //寫數據,數據放入R5
  55. WRITE_DATA:
  56. ACALL D5MS
  57. SETB  RS                                                                 ;(130)RS置1,RW,EN均置0,寫數據
  58. CLR  RW
  59. CLR  EN
  60. MOV LCD_PORT ,R5                                                         ;(131)數據一律寫入R5,在移入P2
  61. SETB  EN        
  62. CLR  EN                                                                 ;(132)EN跳變,允許數據交換
  63. RET                                                                         ;(134)返回原處


  64. //初始化LCD1602
  65. LCD1602_init:
  66. MOV R5,#06H                                                        ;(144)8位數據,5*7點陣,2行顯示
  67. ACALL WRITE_COM                        
  68. MOV R5,#0CH                                                        ;(148)寫一個數據后,光標右移,屏幕不移動
  69. ACALL WRITE_COM
  70. MOV R5,#38H                                                        ;(146)顯示開,關光標,光標不閃爍
  71. ACALL WRITE_COM
  72. MOV R5,#01H                                                        ;(150)清屏
  73. ACALL WRITE_COM
  74. RET

  75. WCGRAM:
  76. MOV P1,#40H
  77.         ACALL ENABLE
  78.         MOV DPTR,#SELF1
  79.         CALL WSELF
  80.         MOV P1,#48H
  81.         ACALL ENABLE
  82.         MOV DPTR,#SELF2
  83.         CALL WSELF
  84.         MOV P1,#50H
  85.         ACALL ENABLE
  86.         MOV DPTR,#SELF3
  87.         CALL WSELF
  88.         MOV P1,#58H
  89.         ACALL ENABLE
  90.         MOV DPTR,#SELF4
  91.         CALL WSELF
  92.         MOV P1,#60H
  93.         ACALL ENABLE
  94.         MOV DPTR,#SELF5
  95.         CALL WSELF
  96.         MOV P1,#68H
  97.         ACALL ENABLE
  98.         MOV DPTR,#SELF6
  99.         CALL WSELF
  100.         MOV P1,#70H
  101.         ACALL ENABLE
  102.         MOV DPTR,#SELF7
  103.         CALL WSELF
  104.         MOV P1,#78H
  105.         ACALL ENABLE
  106.         MOV DPTR,#SELF8
  107.         CALL WSELF
  108.         RET
  109. ENABLE:
  110.         CLR RS
  111.         CLR RW
  112.         CLR EN
  113.         ACALL D5MS
  114.         ACALL D5MS
  115.         SETB EN
  116.         RET
  117.         WSELF:
  118.         MOV R7,#00H
  119. W1:
  120.         MOV A,R7
  121.         MOVC A,@A+DPTR
  122.         CALL WRITE1
  123.         INC R7
  124.         CJNE R7,#08H,W1
  125.         RET
  126. WRITE1:
  127.         CLR EN
  128.         SETB RS
  129.         CLR RW
  130.         SETB EN
  131.         MOV P1,A
  132.         
  133.         CLR EN
  134.     ACALL D5MS
  135.         ACALL D5MS
  136.         RET


  137. //延時5ms左右,已進行現場保護
  138. D5MS:
  139. PUSH 07
  140. PUSH 06
  141. MOV  R7,#200      
  142. DEL1:MOV R6,#125
  143. DEL2:DJNZ R6,DEL2      
  144. DJNZ R7,DEL1
  145. POP 06
  146. POP 07
  147. RET
  148. //
  149. SELF1:DB  04H,1FH,15H,1FH,15H,1FH,04H,07H
  150. SELF2:DB  02H,0CH,04H,1FH,0EH,15H,15H,04H
  151. SELF3:DB  02H,0AH,06H,02H,1FH,02H,02H,02H
  152. SELF4:DB  0EH,04H,04H,04H,0EH,04H,04H,0EH
  153. SELF5:DB  0FH,0AH,0AH,1AH,1FH,0AH,0AH,0FH
  154. SELF6:DB  09H,01H,1DH,07H,15H,09H,15H,03H
  155. SELF7:DB  04H,1FH,04H,0AH,1FH,00H,1BH,0BH
  156. SELF8:DB  02H,1CH,10H,14H,1FH,04H,15H,0CH



  157. END
復制代碼
回復

使用道具 舉報

板凳
ID:1078514 發表于 2023-5-21 16:13 | 只看該作者
大佬,能直接給一下原理圖嗎?我自己畫的仿真不出來
回復

使用道具 舉報

地板
ID:1067163 發表于 2023-5-22 14:26 | 只看該作者
李了里 發表于 2023-5-21 16:13
大佬,能直接給一下原理圖嗎?我自己畫的仿真不出來

CSU?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄在线免费观看 | 国产伦精品一区二区三区精品视频 | 精品一区二区电影 | 欧美成人精品激情在线观看 | h小视频 | 青青草一区 | 国产精品视频一区二区三区 | 日韩国产精品一区二区三区 | 91久久久久久久久久久 | 欧美日韩在线观看一区二区三区 | www国产亚洲精品久久网站 | 午夜精品久久久久久久久久久久久 | 四虎最新 | 伊人免费在线观看高清 | 黄在线免费观看 | 在线视频成人 | 亚洲精品黄色 | 99精品电影| 日本欧美国产在线 | 亚洲一区精品视频 | 亚洲欧美在线视频 | 欧美精品在线免费观看 | 亚洲精品美女视频 | 中文二区| a级片在线 | 久久久久久成人网 | 不卡av电影在线播放 | 91在线观看免费 | 在线不卡视频 | 成人在线免费 | 国产高清精品一区二区三区 | 亚洲国产成人精品女人久久久野战 | 在线看亚洲 | 久久久综合久久 | 国产精品伦一区二区三级视频 | 精品久久香蕉国产线看观看亚洲 | 国产毛片久久久久久久久春天 | 国产精品天堂 | 91久久精品一区二区二区 | 久久成人综合 | 在线免费观看视频你懂的 |