网站导航: 首页 > 设计参考 > 正文 文章搜索
128X64 LCD接口51汇编程序
 
文章编号:
081207160638
文章分类: 单片机 51系列
点 击:
...
关 键 词: 12864,128X64,LCD
文章来源:
网络,作者:马良
摘 要:

 
  1.     
  2. ;                    12864接口程序(MCS51模拟口线方式)     
  3. ;***************************************************************************     
  4. ;连线图: *LCM---8031* *LCM---8031* *LCM------------8031* *LCM----------8031*     
  5. ;        *DB0---P1.0* *DB4---P1.4* *RS-------------P3.0* *CS1----------P3.4*     
  6. ;        *DB1---P1.1* *DB5---P1.5* *RW-------------P3.1* *CS2----------P3.5*     
  7. ;        *DB2---P1.2* *DB6---P1.6* *E--------------P3.3     
  8. ;        *DB3---P1.3* *DB7---P1.7* */RST-----------VDD       (详见说明书)     
  9. ;注:8031的晶振频率为12MHz     
  10. ;2005年9月  马良 测试通过 欢迎大家讨论   QQ:8297327     13087664858     
  11. ;**************************************************************************     
  12. XPOS    EQU     20H             ;列方向地址指针(用于LCDPOS子程序)     
  13. YPOS    EQU     21H             ;行方向地址指针(用于LCDPOS子程序)     
  14. RSPIN   EQU    P3.0                 
  15. RWPIN   EQU     P3.1            ;     
  16. EPIN    EQU     P3.3            ;     
  17. CS1PIN  EQU     P3.4            ;     
  18. CS2PIN  EQU     P3.5            ;     
  19.         ORG     0000H      
  20.         JMP     START       
  21. START:  MOV     SP,#60H      
  22. MAIN:       
  23.         CALL    LCDRESET       
  24.         MOV A,#55H      
  25.         CALL LCDFILL       
  26.         MOV DPTR,#STRING1       
  27.         CALL PUTSTR       
  28.         CALL PUTSTR       
  29.         JMP MAIN       
  30. DELAY400MS:       
  31.         MOV     R0,#20              ;延时子程序(400MS)     
  32. DL4_PA: MOV     R1,#100      
  33. DL4_PB: MOV     R2,#100      
  34.         DJNZ    R2,$       
  35.         DJNZ    R1,DL4_PB       
  36.         DJNZ    R0,DL4_PA       
  37.         RET      
  38. DELAY:       
  39.  MOV R6,#2      
  40. DLY_PA: MOV R5,#0      
  41. DLY_PB: MOV R4,#0      
  42.  DJNZ R4,$       
  43.  DJNZ R5,DLY_PB       
  44.  DJNZ R6,DLY_PA       
  45.  RET      
  46. GETSTRCHAR:       
  47. GSC_PA:       
  48.  CLR A      
  49.  MOVC A,@A+DPTR       
  50.  INC DPTR       
  51.  MOV B,A      
  52.  INC A      
  53.  CLR C       
  54.  JZ GSC_LAX       
  55.  CLR A      
  56.  MOVC A,@A+DPTR       
  57.  INC DPTR       
  58.  SETB C       
  59. GSC_LAX:       
  60.  RET      
  61. PUTSTR:       
  62.  CALL DELAY       
  63.  CALL GETSTRCHAR       
  64.  PUSH DPL      
  65.  PUSH DPH      
  66.  JNC PSR_LAX       
  67.  JNB B.7,PSR_LBY       
  68. ;CHINESE:     
  69.  CALL HZKPOS       
  70.  CALL PUTCHARDOT       
  71.  CALL PUTCHARDOT       
  72.  JMP PSR_LBX       
  73. PSR_LBY:       
  74. ;ENGLISH:     
  75.  CALL HZKPOS       
  76.  CALL PUTCHARDOT       
  77. PSR_LBX:       
  78.  POP DPH      
  79.  POP DPL      
  80.  JMP PUTSTR       
  81. PSR_LAX:POP DPH      
  82.  POP DPL      
  83.  RET      
  84. PUTCHARDOT:       
  85.  MOV R7,#8      
  86. PAC_PA:       
  87.  CLR A      
  88.  MOVC A,@A+DPTR       
  89.  CALL LCDWRITE       
  90.  INC YPOS       
  91.  INC DPTR       
  92.  CLR A      
  93.  MOVC A,@A+DPTR       
  94.  CALL LCDWRITE       
  95.  DEC YPOS       
  96.  INC DPTR       
  97.  CALL CUSORNEXT       
  98.  MOV A,XPOS       
  99.  JNZ PAC_LAX       
  100.  INC YPOS       
  101. PAC_LAX:       
  102.  DJNZ R7,PAC_PA       
  103.  RET      
  104. HZKPOS:       
  105.  MOV R2,#5      
  106. HTP_PA:       
  107.  CLR C       
  108.  RLC A      
  109.  XCH A,B      
  110.  RLC A      
  111.  XCH A,B      
  112.  DJNZ R2,HTP_PA       
  113.       
  114.  MOV DPTR,#HZKDOT       
  115.  ADD A,DPL      
  116.  MOV DPL,A      
  117.  MOV A,B      
  118.  ADDC A,DPH      
  119.  MOV DPH,A      
  120.  RET      
  121. LCDFILL:                        ;LCD整屏显示A的内容     
  122.         MOV     R7,A      
  123.         MOV     YPOS,#0      
  124. LFL_PB: MOV     XPOS,#0      
  125. LFL_PA: MOV     A,R7      
  126.         CALL    LCDWRITE        ;定位并写数据     
  127.         CALL    CUSORNEXT       
  128.         MOV     A,XPOS       
  129.         JNZ     LFL_PA          ;XPOS<128则循环(128列)     
  130.         MOV     A,YPOS       
  131.         JNZ     LFL_PB          ;YPOS<8则循环(8页)     
  132.         RET      
  133. LCDWRITE:                    ;定位并写数据子程序     
  134.         CALL    LCDPOS       ;内部写数指针定位     
  135.         CALL    LCDWD        ;写数据     
  136.         RET      
  137. CUSORNEXT:       
  138.  ANL YPOS,#7      
  139.  INC XPOS       
  140.  MOV A,XPOS       
  141.  JNB ACC.7,CNT_LAX       
  142.  MOV XPOS,#0      
  143.  INC YPOS       
  144.  MOV A,YPOS       
  145.  ANL A,#0F8H      
  146.  JZ CNT_LAX       
  147.  MOV YPOS,#0      
  148. CNT_LAX:       
  149.  RET      
  150. LCDPOS:                      ;内部写数指针定位子程序     
  151.         PUSH    ACC      
  152.         MOV     A,XPOS       
  153.         JB      ACC.6,LPS_LAY       
  154.         MOV     A,YPOS       ;XPOS列方向小于64则对CS1操作     
  155.         ANL     A,#07H      
  156.         ADD     A,#0B8H      
  157.         CALL    LCDWC1       ;设页码     
  158.         MOV     A,XPOS       
  159.         ANL     A,#3FH      
  160.         ORL     A,#40H      
  161.         CALL    LCDWC1       ;设列码     
  162.         JMP     LPS_LAX       
  163. LPS_LAY:MOV     A,YPOS       ;XPOS列方向大于等于64则对CS2操作     
  164.         ANL     A,#07H      
  165.         ADD     A,#0B8H      
  166.         CALL    LCDWC2       ;设页码     
  167.         MOV     A,XPOS       
  168.         ANL     A,#3FH      
  169.         ORL     A,#40H      
  170.         CALL    LCDWC2       ;设列码     
  171. LPS_LAX:POP     ACC      
  172.         RET      
  173. LCDWD:                          ;送数据子程序     
  174.         MOV     B,A      
  175.         MOV     A,XPOS       
  176.         JB      ACC.6,LWD_LAY       
  177.         MOV     A,B             ;XPOS列方向小于64则对CS1操作     
  178.         CALL    LCDWD1       
  179.         JMP     LWD_LAX       
  180. LWD_LAY:MOV     A,B             ;XPOS列方向大于等于64则对CS2操作     
  181.         CALL    LCDWD2       
  182. LWD_LAX:       
  183.         RET      
  184. LCDRESET:                       ;LCD控制器复位     
  185.         MOV     A,#3FH          ;打开LCD显示     
  186.         CALL    LCDWC1       
  187.         CALL    LCDWC2       
  188.         MOV     A,#0C0H         ;设显示起始行     
  189.         CALL    LCDWC1       
  190.         CALL    LCDWC2       
  191.         RET      
  192. LCDWC1:                         ;送片1控制字子程序     
  193.         CALL    WAITIDLE1       
  194.         MOV     P1,A      
  195.         CLR     RSPIN           ;RS=0 RW=0 CS1=1 E=高脉冲     
  196.         CLR     RWPIN       
  197.         SETB    CS1PIN       
  198.         SETB    EPIN       
  199.         NOP      
  200.         CLR     EPIN       
  201.         CLR     CS1PIN       
  202.         RET      
  203. LCDWC2:                         ;送片2控制字子程序     
  204.         CALL    WAITIDLE2       
  205.         MOV     P1,A      
  206.         CLR     RSPIN           ;RS=0 RW=0 CS2=1 E=高脉冲     
  207.         CLR     RWPIN       
  208.         SETB    CS2PIN       
  209.         SETB    EPIN       
  210.         NOP      
  211.         CLR     EPIN       
  212.         CLR     CS2PIN       
  213.         RET      
  214. LCDWD1:                         ;片1写数据子程序     
  215.         CALL    WAITIDLE1       
  216.         MOV     P1,A      
  217.         SETB    RSPIN           ;RS=1 RW=0 CS1=1 E=高脉冲     
  218.         CLR     RWPIN       
  219.         SETB    CS1PIN       
  220.         SETB    EPIN       
  221.         NOP      
  222.         CLR     EPIN       
  223.         CLR     CS1PIN       
  224.         RET      
  225. LCDWD2:                         ;片2写数据子程序     
  226.         CALL    WAITIDLE2       
  227.         MOV     P1,A      
  228.         SETB    RSPIN           ;RS=1 RW=0 CS2=1 E=高脉冲     
  229.         CLR     RWPIN       
  230.         SETB    CS2PIN       
  231.         SETB    EPIN       
  232.         NOP      
  233.         CLR     EPIN       
  234.         CLR     CS2PIN       
  235.         RET      
  236. LCDRD1:                         ;片1读数据子程序     
  237.         CALL    WAITIDLE1       
  238.         MOV     P1,#0FFH      
  239.         SETB    RSPIN           ;RS=1 RW=1 CS1=1 E=高电平     
  240.         SETB    RWPIN       
  241.         SETB    CS1PIN       
  242.         SETB    EPIN       
  243.         NOP      
  244.         MOV     A,P1      
  245.         CLR     EPIN       
  246.         CLR     CS1PIN       
  247.         RET      
  248. LCDRD2:                         ;片2读数据子程序     
  249.         CALL    WAITIDLE2       
  250.         MOV     P1,#0FFH      
  251.         SETB    RSPIN           ;RS=1 RW=1 CS1=2 E=高电平     
  252.         SETB    RWPIN       
  253.         SETB    CS2PIN       
  254.         SETB    EPIN       
  255.         NOP      
  256.         MOV     A,P1      
  257.         CLR     EPIN       
  258.         CLR     CS2PIN       
  259.         RET      
  260. WAITIDLE1:       
  261.         MOV     P1,#0FFH      
  262.         CLR     RSPIN           ;RS=0 RW=1 CS1=1 E=高电平     
  263.         SETB    RWPIN       
  264.         SETB    CS1PIN       
  265.         SETB    EPIN       
  266. WT1_PA: NOP      
  267.         JB      P1.7,WT1_PA       
  268.         CLR     EPIN       
  269.         CLR     CS1PIN       
  270.         RET      
  271. WAITIDLE2:       
  272.         CLR     RSPIN           ;RS=0 RW=1 CS2=1 E=高电平     
  273.         SETB    RWPIN       
  274.         SETB    CS2PIN       
  275.         SETB    EPIN       
  276. WT2_PA: NOP      
  277.         JB      P1.7,WT2_PA       
  278.         CLR     EPIN       
  279.         CLR     CS2PIN       
  280.         RET      
  281. HZKDOT:       
  282. ;(d3d0H)(有)(8000)     
  283. DB  04H04H04H02H04H01H84H00H      
  284. DB 0e4H,0ffH3cH09H27H09H24H09H      
  285. DB  24H09H24H49H24H89H,0f4H7fH      
  286. DB  24H00H06H00H04H00H00H00H      
  287. ;(cfdeH)(限)(8001)     
  288. DB  00H00H,0feH,0ffH02H08H22H10H      
  289. DB 0daH08H06H07H00H00H,0feH,0ffH      
  290. DB  92H42H92H24H92H08H92H14H      
  291. DB 0ffH22H02H61H00H20H00H00H      
  292. ;(b9abH)(公)(8002)     
  293. DB  00H01H00H01H80H00H40H30H      
  294. DB  30H28H0cH24H00H23H,0c0H20H      
  295. DB  06H20H18H28H20H30H40H60H      
  296. DB  80H00H80H01H80H00H00H00H      
  297. ;(cbbeH)(司)(8003)     
  298. DB  10H00H10H00H92H3fH92H10H      
  299. DB  92H10H92H10H92H10H92H10H      
  300. DB 0d2H3fH9aH00H12H40H02H80H      
  301. DB 0ffH7fH02H00H00H00H00H00H      
  302. STRING1: DB  80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,0ffH      
  303. STRING2: DB  80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,80H00H80H01H80H02H80H03H,0ffH      
  304.         END      


 
相关文章:

 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4