找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2613|回复: 1
收起左侧

192*64液晶ST7920(带字库)测试汇编程序

[复制链接]
ID:70976 发表于 2014-12-26 23:26 | 显示全部楼层 |阅读模式
  1. ;192*64液晶(带字库)测试程序
  2. ;芯片型号:ST7920
  3. ;晶振11.0592M

  4.          LCD_RS    EQU   P4.0    ;LCD 数据/命令选择端
  5.          LCD_RW    EQU   P4.1    ;LCD 读/写选择端
  6.          LCD_EN    EQU   P4.2    ;LCD 使能信号
  7.          LCD_BG    EQU   P4.3    ;LCD 背光控制端
  8.          LCD_SJ    EQU   P0      ;LCD 数据

  9.          COM EQU 20H
  10.          DAT EQU 21H
  11. ;===========================================================
  12.          ORG  0000H
  13.          AJMP  START
  14.          ORG  0100H
  15. ;===========================================================
  16. START:   MOV  SP,#60H
  17.          CLR  LCD_BG          ;打开LCD背光

  18.          MOV COM,#30H       ;功能设置--8BIT控制界面,基本指令集
  19.          ACALL WRI          ;调用写指令子程序
  20.          LCALL DELAY        ;延迟39uS
  21.          MOV COM,#0CH       ;显示打开,光标关,反白显示关
  22.          ACALL WRI          ;调用写指令子程序
  23.          LCALL DELAY        ;延迟39uS
  24.          MOV COM,#01H       ;清除屏幕显示,将DDRAM的地址计数器归零
  25.          ACALL WRI          ;调用写指令子程序
  26.          LCALL DELAY        ;延迟39uS
  27.          MOV COM,#06H       ;DDRAM的地址计数器(AC)加1
  28.          ACALL WRI          ;调用写指令子程序
  29.          LCALL DELAY        ;延迟39uS
  30. ;*************************************以上是模块初始化
  31.          MOV R2,#64         ;DDRAM地址记数器设为最大
  32.          MOV R1,#10H        ;从代码为“10”处显示
  33.          MOV COM,#80H       ;DDRAM地址---0000000
  34.          ACALL WRI          ;调用写指令子程序
  35. DISP5A:  MOV DAT,R1
  36.          ACALL WRD          ;调用写数据子程序
  37.          INC R1
  38.          DJNZ R2,DISP5A
  39.          LCALL DELAY1       ;1S延时子程序
  40. ;*************************************以上是写入半角字符
  41.          MOV R2,#64         ;DDRAM地址记数器设为最大
  42.          MOV R1,#0DEH       ;字符低位地址
  43.          MOV COM,#80H       ;DDRAM地址---0000000
  44.          ACALL WRI          ;调用写指令子程序
  45. DISP5:   MOV DAT,#0B4H      ;写入字符高位地址
  46.          ACALL WRD          ;调用写数据子程序
  47.          MOV DAT,R1
  48.          ACALL WRD
  49.          INC R1
  50.          DJNZ R2,DISP5
  51.          LCALL DELAY1       ;1S延时子程序
  52. ;*************************************以上是从字库中“崔”字处开始显示汉字
  53.          MOV COM,#01H       ;清屏
  54.          ACALL WRI
  55.          LCALL DELAY

  56.          MOV COM,#32H       ;功能设置---8BIT控制界面,绘图显示开
  57.          ACALL WRI          ;调用写指令子程序
  58.          LCALL DELAY        ;延迟39uS

  59.          MOV COM,#36H       ;功能设置---8BIT控制界面,扩充指令集
  60.          ACALL WRI          ;调用写指令子程序
  61.          LCALL DELAY        ;延迟39uS

  62. DISPLAY6:MOV DPTR,#DAB2     ;图形数据入口地址
  63.          MOV R2,#32         ;32行(双屏结构的上半屏)
  64.          MOV R3,#80H        ;Y地址寄存器
  65. DISP6:   MOV COM,R3         ;设置绘图区的Y地址坐标
  66.          INC R3             ;Y地址加1
  67.          LCALL WRI
  68.          MOV COM,#80H       ;设置绘图区的X地址坐标
  69.          LCALL WRI
  70.          MOV R1,#16         ;16*8列
  71. DISP7:   CLR A
  72.          MOVC A,@A+DPTR
  73.          MOV DAT,A
  74.          LCALL WRD
  75.          INC DPTR
  76.          DJNZ R1,DISP7
  77.          DJNZ R2,DISP6      ;写满全屏的16*8字节X64

  78.          MOV R2,#32         ;32行(双屏结构的下半屏)
  79.          MOV R3,#80H        ;Y地址寄存器
  80. DISP8:   MOV COM,R3         ;设置绘图区的Y地址坐标
  81.          INC R3             ;Y地址加1
  82.          LCALL WRI
  83.          MOV COM,#88H       ;设置绘图区的X地址坐标
  84.          LCALL WRI
  85.          MOV R1,#16         ;16*8列
  86. DISP9:   CLR A
  87.          MOVC A,@A+DPTR
  88.          MOV DAT,A
  89.          LCALL WRD
  90.          INC DPTR
  91.          DJNZ R1,DISP9
  92.          DJNZ R2,DISP8      ;写满全屏的16*8字节X64
  93.          LCALL DELAY1       ;1S延时子程序
  94.          LJMP START         ;从开始处循环显示

  95. ;*************************************以上是写入图画面


  96. WRI:     PUSH ACC
  97.          CLR LCD_RS
  98.          SETB LCD_RW
  99. WRI1:    MOV LCD_SJ,#0FFH
  100.          SETB LCD_EN
  101.          MOV A,LCD_SJ
  102.          CLR LCD_EN
  103.          JB ACC.7,WRI1
  104.          CLR LCD_RW
  105.          MOV LCD_SJ,COM
  106.          SETB LCD_EN
  107.          CLR LCD_EN
  108.          POP ACC
  109.          RET
  110. ;*************************************以上是写指令子程序
  111. WRD:     PUSH ACC
  112.          CLR LCD_RS
  113.          SETB LCD_RW
  114. WRD1:    MOV LCD_SJ,#0FFH
  115.          SETB LCD_EN
  116.          MOV A,LCD_SJ
  117.          CLR LCD_EN
  118.          JB ACC.7,WRD1
  119.          SETB LCD_RS
  120.          CLR LCD_RW
  121.          MOV LCD_SJ,DAT
  122.          SETB LCD_EN
  123.          CLR LCD_EN
  124.          POP ACC
  125.          RET
  126. ;*************************************以上是写数据子程序
  127. DELAY:   MOV R7,#200         ;延迟39uS;17
  128.          DJNZ R7,$
  129.          RET                ;17*2*(12/11.0592)+2*(12/11.0592)≈39uS

  130. DELAY1:  MOV R4,#200        ;延迟1S,06D;08
  131. DELAY11: MOV R7,#0E2H
  132. DELAY41: MOV R6,#0FFH       ;07D
  133.          DJNZ R6,$
  134.          DJNZ R7,DELAY41
  135.          DJNZ R4,DELAY11

  136.          RET    ;255*2*226*8*(12/11.0592)+2*(12/11.0592)=1000459uS≈1S

  137. ;*************************************以上是延时子程序
  138. DAB2:                                ;画面数据表
  139. DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
  140. DB 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H
  141. DB 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H
  142. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  143. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  144. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  145. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 11H,0FFH, 80H, 40H, 08H, 30H, 10H, 20H, 00H
  146. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 68H, 3FH,0FFH, 08H, 30H, 11H,0F8H, 00H
  147. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 68H, 3FH,0FFH, 08H, 30H, 11H,0F8H, 00H
  148. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H,0FFH, 00H, 00H, 7FH,0FEH, 7DH, 08H, 00H
  149. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 11H, 6BH, 07H,0FCH, 16H, 30H, 2DH,0F8H, 00H
  150. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0DH,0FFH, 04H, 0CH, 16H, 30H, 2DH, 08H, 00H
  151. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 00H, 3FH,0FFH, 16H, 30H, 2DH,0F8H, 00H
  152. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 00H, 3FH,0FFH, 16H, 30H, 2DH,0F8H, 00H
  153. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH,0FFH, 30H, 01H, 66H,0FEH, 2DH, 26H, 00H
  154. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 1CH, 00H, 03H,0F0H, 76H, 82H, 2DH, 28H, 00H
  155. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0DH,0FFH, 82H, 11H, 08H, 82H, 11H, 10H, 00H
  156. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 8BH, 04H, 11H, 16H, 82H, 2DH, 28H, 00H
  157. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 8BH, 04H, 11H, 16H, 82H, 2DH, 28H, 00H
  158. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0DH, 18H,0B8H, 1FH, 60H,0FEH, 41H,0C6H, 00H
  159. DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  160. DB 00H, 07H, 8FH,0FFH, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  161. DB 00H, 08H, 70H, 40H,0EFH, 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  162. DB 00H, 08H, 70H, 40H,0EFH, 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  163. DB 00H, 10H, 00H, 80H, 10H, 60H, 00H, 0FH,0FFH, 30H, 0CH, 00H, 80H, 00H, 00H, 00H
  164. DB 00H, 20H, 18H, 38H, 20H, 60H, 00H, 00H, 60H, 08H, 0CH, 1FH,0FCH, 1CH, 00H, 00H
  165. DB 00H,0C0H, 64H, 45H, 00H, 60H, 00H, 03H,0FCH, 0BH,0FFH, 00H, 80H, 3EH, 00H, 00H
  166. DB 00H,0C1H, 00H, 01H, 00H, 10H, 00H, 00H, 80H, 00H, 0CH, 08H, 88H, 3EH, 00H, 00H
  167. DB 00H,0C1H, 00H, 01H, 00H, 10H, 00H, 00H, 80H, 00H, 0CH, 08H, 88H, 3EH, 00H, 00H
  168. DB 01H, 01H, 00H, 00H,0C0H, 10H, 00H, 1FH,0FFH,0BDH, 8CH, 06H,0B0H, 3EH, 00H, 00H
  169. DB 02H, 0EH, 18H, 1CH,0C0H, 10H, 00H, 01H, 00H, 04H, 4CH, 7FH,0FEH, 1CH, 00H, 00H
  170. DB 02H, 16H, 64H, 22H, 20H, 10H, 00H, 03H,0FCH, 04H, 4CH, 01H,0C0H, 1CH, 00H, 00H
  171. DB 02H, 16H, 64H, 22H, 20H, 10H, 00H, 03H,0FCH, 04H, 4CH, 01H,0C0H, 1CH, 00H, 00H
  172. DB 04H,0E8H, 83H, 41H, 1CH, 08H, 00H, 0DH, 04H, 04H, 0CH, 06H,0B0H, 00H, 00H, 00H
  173. DB 07H, 10H, 8FH, 47H, 03H, 88H, 00H, 11H,0FCH, 04H, 3CH, 08H, 88H, 1CH, 00H, 00H
  174. DB 00H, 20H, 6CH, 26H, 01H, 78H, 00H, 01H, 04H, 0AH, 00H, 70H, 86H, 1CH, 00H, 00H
  175. DB 00H,0C0H, 18H, 1CH, 00H, 80H, 00H, 01H,0FCH, 31H,0FFH, 00H, 80H, 00H, 00H, 00H
  176. DB 00H,0C0H, 18H, 1CH, 00H, 80H, 00H, 01H,0FCH, 31H,0FFH, 00H, 80H, 00H, 00H, 00H
  177. DB 00H,0C1H, 87H, 80H, 00H, 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  178. DB 01H, 06H, 78H, 3CH, 20H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  179. DB 01H, 08H, 07H,0C2H,0C0H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  180. DB 01H, 08H, 00H, 01H,0C0H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  181. DB 01H, 08H, 00H, 01H,0C0H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  182. DB 01H, 08H, 18H, 01H,0C0H, 60H, 00H, 00H, 00H,0F1H,0F3H, 87H,0C0H, 00H, 00H, 00H
  183. DB 00H,0C6H, 18H,0C2H, 20H, 80H, 00H, 00H, 03H, 0EH, 1CH, 78H, 70H, 00H, 00H, 00H
  184. DB 00H,0C1H, 00H,0C2H, 00H, 80H, 00H, 00H, 04H, 44H, 11H, 10H, 38H, 00H, 00H, 00H
  185. DB 00H, 26H,0E0H, 04H, 01H, 00H, 00H, 00H, 04H, 80H, 12H, 00H, 38H, 00H, 00H, 00H
  186. DB 00H, 26H,0E0H, 04H, 01H, 00H, 00H, 00H, 04H, 80H, 12H, 00H, 38H, 00H, 00H, 00H
  187. DB 00H, 11H, 18H, 38H, 03H, 00H, 00H, 00H, 04H, 80H, 12H, 00H, 38H, 00H, 00H, 00H
  188. DB 00H, 0EH, 87H,0C2H, 1CH, 00H, 00H, 00H, 04H, 00H, 10H, 00H, 38H, 00H, 00H, 00H
  189. DB 00H, 01H,0E0H, 04H,0E0H, 00H, 00H, 00H, 03H, 00H, 1CH, 00H, 70H, 00H, 00H, 00H
  190. DB 00H, 1EH, 18H, 3FH, 1EH, 00H, 00H, 00H, 00H, 80H, 32H, 00H,0C0H, 00H, 00H, 00H
  191. DB 00H, 1EH, 18H, 3FH, 1EH, 00H, 00H, 00H, 00H, 80H, 32H, 00H,0C0H, 00H, 00H, 00H
  192. DB 00H, 38H, 07H,0C0H, 0FH, 00H, 00H, 00H, 00H, 40H, 61H, 01H, 80H, 00H, 00H, 00H
  193. DB 00H,0E9H,0FFH,0FFH, 0DH, 80H, 00H, 00H, 00H, 31H,0C0H, 87H, 00H, 00H, 00H, 00H
  194. DB 01H,0E9H, 1BH,0B9H, 0DH,0E0H, 00H, 00H, 00H, 0BH, 80H, 6EH, 00H, 00H, 00H, 00H
  195. DB 03H,0C9H,0F0H, 1FH, 0CH,0F0H, 00H, 00H, 00H, 06H, 00H, 18H, 00H, 00H, 00H, 00H
  196. DB 03H,0C9H,0F0H, 1FH, 0CH,0F0H, 00H, 00H, 00H, 06H, 00H, 18H, 00H, 00H, 00H, 00H
  197. DB 07H, 06H,0E0H, 06H, 10H, 78H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  198. DB 07H,0C1H, 00H, 00H, 20H,0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  199. DB 07H,0E0H, 80H, 00H,0C1H,0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  200. DB 07H,0E0H, 80H, 00H,0C1H,0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
  201. DB 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H
  202. DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH


  203.         END
复制代码


回复

使用道具 举报

ID:36173 发表于 2014-12-27 22:48 | 显示全部楼层
好厉害哦,都是汇编
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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