1602logo.asm
上传用户:teamwork
上传日期:2021-04-01
资源大小:15k
文件大小:3k
源码类别:

汇编语言

开发平台:

DOS

  1. ;///////////////////////////////////////////
  2. ;....本程序实现液晶循环显示信息功能.
  3. ;///////////////////////////////////////////
  4. RS EQU P3.5 
  5. RW EQU P3.6 
  6. E  EQU P3.7 
  7. SJ EQU P1
  8. org 00h
  9. ajmp main
  10. org 030h
  11. main:
  12. mov sp,#60h
  13. main1:
  14. lcall delay ;延时一段时间                      
  15. MOV SJ,#38H ;                                  
  16. ACALL ENABLE                    ;写指令38H                         
  17. MOV SJ,#38H ;                                  
  18. ACALL ENABLE                    ;写指令38H                         
  19. MOV SJ,#38H ;                                  
  20. ACALL ENABLE                    ;写指令38H                         
  21. MOV SJ,#38H ;                                  
  22. ACALL ENABLE                    ;写指令38H                         
  23. MOV SJ,#08H ;                                  
  24. ACALL ENABLE                    ;写指令08H                         
  25. MOV SJ,#01H ;                                  
  26. ACALL ENABLE                    ;写指令01H                         
  27. MOV SJ,#06H ;                                  
  28. ACALL ENABLE                    ;写指令06H                         
  29. MOV SJ,#0cH ;                                  
  30. ACALL ENABLE                    ;写指令0CH                         
  31. MOV SJ,#80H ;第一行显示第一个字符的位置            
  32. ACALL ENABLE                    ;调用写指令                            
  33. mov dptr,#table3                ;第一行表头位置                        
  34. call write1                     ;调用第一行写子程序                    
  35. mov SJ,#0c0h ;第二行位置                            
  36. call enable                     ;调用写指令                            
  37. mov dptr,#table2                ;第二行表头位置                        
  38. call write1                     ;调用第二行写子程序
  39. jmp main1                       ;返回主程序不断的循环                  
  40. ENABLE: ;写命令时序(参照1602LCD使用说明书)
  41. CLR RS
  42. CLR RW 
  43. CLR E 
  44. ACALL DELAY 
  45. SETB E 
  46. RET
  47. write1: ;写字符串    
  48. mov r1,#00h                     ;将R1清0                                      
  49. a1:mov a,r1                     ;把R1的值送到ACC                              
  50. movc a,@a+dptr                  ;查表取将显示的数据并把要显示的数送入ACC      
  51. call write2                     ;调用写程序写入单个字节                       
  52. inc r1                          ;将工作寄存器指针加一                         
  53. cjne r1,#10h,a1                 ;R1的内容加到16后就返回到a1处                  
  54. ret                             ;
  55.                                                                               
  56. write2:                         ;写单个字符                                                                             
  57. mov SJ,a                        ;写数据到显示端口                            
  58. setb rs                         ;写数据时序(请参照1602LCD使用说明书)         
  59. clr rw                          
  60. clr e
  61. call delay
  62. setb e
  63. ret 
  64. delay:
  65. mov r7,#255
  66. d1:mov r6,#255
  67. d2:djnz r6,d2
  68. djnz r7,d1
  69. ret
  70.       
  71. table3: db " 1111111"
  72. table2: db "   0571-85956028"
  73. end