找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机双机通信+LCD1602汇编语言程序

查看数: 3114 | 评论数: 3 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-6-7 13:09

正文摘要:

在主机显示学号姓名,利用通信功能,在从机也显示同样的内容。;发送端 ;/通用寄存器R5用于录入lcd1602的8位指令和数据 ORG 000H LCD_PORT EQU P1 COUNT EQU 30H RS EQU P2.5 RW EQU P2.6 EN  EQU P2.7 AJ ...

回复

ID:1067163 发表于 2023-5-22 14:26
李了里 发表于 2023-5-21 16:13
大佬,能直接给一下原理图吗?我自己画的仿真不出来

CSU?
ID:1078514 发表于 2023-5-21 16:13
大佬,能直接给一下原理图吗?我自己画的仿真不出来
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
复制代码

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表