⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12864.asm

📁 12864液晶驱动,这个是用C语言写的驱动程序,希望大家都有所帮助
💻 ASM
📖 第 1 页 / 共 4 页
字号:
             lcall     lcd_we_z
             sjmp      w_hzg
      w_hzf: lcall     lcd_we_y
      w_hzg: inc       w_code
             inc       column
             mov       a,column
             cjne      a,#40h,w_hzh
      w_hzh: jc        w_hzi
             mov       column,#0
             mov       a,a_page
             anl       a,#040h
             jnz       w_hzi
             mov       a,a_page
             setb      acc.6
             mov       a_page,a
             mov       com,column
             orl       com,#040h
             lcall     lcd_we_zl
      w_hzi: djnz      count,w_hze
             mov       a,a_page
             jnb       acc.7,w_hend
             mov       c,acc.5
             mov       acc.6,c
             anl       a,#07fh
             mov       a_page,a
             mov       count,#16
             anl       a,#07h
             mov       com,a
             inc       com
             orl       com,#0b8h
             lcall     lcd_we_zl
             mov       column,b
             sjmp      w_hzc
     w_hend: mov       c,acc.4
             mov       acc.7,c
             mov       a_page,a
             pop       b
             pop       dpl
             pop       dph
             ret

;画圆子程序
      w_cir: clr       a
             clr       radf.1         ;清除绘图标志
             mov       arcx1,a
             mov       arcy2,a
             mov       a,rad
             mov       arcy1,a
             mov       arcx2,a
       cir1: acall     amp
             acall     squ
             mov       a,arcx1
             cjne      a,arcx2,cir3
       cir2: acall     amp
             ret
       cir3: xch       a,arcx2
             mov       arcx1,a
             mov       a,arcy1
             xch       a,arcy2
             mov       arcy1,a
             cpl       radf.1
             acall     amp
             mov       a,arcx1
             xch       a,arcy1
             mov       arcx1,a
             acall     squ
             mov       a,arcx1
             xch       a,arcy1
             mov       arcx1,a
             cpl       radf.1
             cjne      a,arcx2,cir4
             ajmp      cir2
       cir4: xch       a,arcx2
             mov       arcx1,a
             mov       a,arcy1
             xch       a,arcy2
             mov       arcy1,a
             ajmp      cir1

        squ: mov       a,arcx1
             inc       a
             mov       b,a
             mul       ab
             mov       errl,a
             mov       errh,b
             mov       a,arcy1
             mov       b,a
             mul       ab
             add       a,errl
             mov       errl,a
             mov       a,b
             addc      a,errh
             mov       errh,a
             mov       a,rad
             mov       b,a
             mul       ab
             clr       c
             xch       a,errl
             subb      a,errl
             mov       errl,a
             mov       a,b
             xch       a,errh
             subb      a,errh
             mov       errh,a
             jc        squ1
             mov       a,errl
             subb      a,arcy1
             mov       errl,a
             mov       a,errh
             subb      a,#0
             mov       errh,a
             jc        squ1
             dec       arcy1
       squ1: inc       arcx1
             ret
        amp: mov       a,cirxl
             add       a,arcx1
             mov       xstal,a
             mov       a,ciryl
             add       a,arcy1
             mov       ystal,a
             jb        radf.1,amp1
             jb        radw.0,amp2
             ajmp      amp3
       amp1: jb        radw.1,amp2
             ajmp      amp3
       amp2: mov       column,xstal
             mov       line,ystal
             orl       line,#080h
             acall     w_dot
       amp3: mov       a,cirxl
             clr       c
             subb      a,arcx1
             mov       xstal,a
             jb        radf.1,amp4
             jb        radw.2,amp5
             ajmp      amp6
       amp4: jb        radw.3,amp5
             ajmp      amp6
       amp5: mov       column,xstal
             mov       line,ystal
             orl       line,#080h
             acall     w_dot
       amp6: mov       a,ciryl
             clr       c
             subb      a,arcy1
             mov       ystal,a
             jb        radf.1,amp7
             jb        radw.4,amp8
             ajmp      amp9
       amp7: jb        radw.5,amp8
             ajmp      amp9
       amp8: mov       column,xstal
             mov       line,ystal
             orl       line,#080h
             acall     w_dot
       amp9: mov       a,cirxl
             add       a,arcx1
             mov       xstal,a
             jb        radf.1,ampa
             jb        radw.6,ampb
             ajmp      ampc
       ampa: jb        radw.7,ampb
             sjmp      ampc
       ampb: mov       column,xstal
             mov       line,ystal
             orl       line,#080h
             acall     w_dot
       ampc: ret

;占用xstal,ystal,xendl,yendl,errl,d_xl,d_yl,column,line,a,c,com,dat
;占用11字节堆栈
;画直线子程序
     W_Line: mov      errl,#0
             mov      a,yendl
             clr      c
             subb     a,ystal
             mov      d_yl,a
             jnc      w_line1
    w_line0: mov      a,yendl
             xch      a,ystal
             mov      yendl,a
             mov      a,xendl
             xch      a,xstal
             mov      xendl,a
             sjmp     W_line
    W_line1: mov      Column,xstal
             mov      line,ystal
             orl      line,#080h
             acall    w_dot              ;调用绘点子程序
             mov      a,xendl
             clr      c
             subb     a,xstal
             mov      d_xl,a
             jc       W_line3
             mov      a,d_yl
             cjne     a,d_xl,W_line2
             ajmp     rate1
    W_line2: jnc      W_line21
             ajmp     rate1
   W_line21: ajmp     rate2
    W_line3: mov      a,xstal
             clr      c
             subb     a,xendl
             mov      d_xl,a
             cjne     a,d_yl,W_line4
    W_line4: jc       W_line5
             ajmp     rate3
    W_line5: ajmp     rate4
      rate1: mov      a,ystal
             cjne     a,yendl,rate10
             sjmp     rate11
     rate10: mov      a,errl        ;增加的
             jb       acc.7,rate12
             mov      a,ystal
             add      a,#1
             mov      ystal,a
     rate11: mov      a,xstal
             add      a,#1
             mov      xstal,a
             mov      a,errl
             add      a,d_yl
             mov      errl,a
             clr      c
             mov      a,errl
             subb     a,d_xl
             mov      errl,a
             sjmp     rate13
     rate12: mov      a,xstal
             add      a,#1
             mov      xstal,a
             mov      a,errl
             add      a,d_yl
             mov      errl,a
     rate13: mov      Column,xstal
             mov      line,ystal
             orl      line,#080h
             acall    W_dot              ;调用绘点子程序
             mov      a,xstal
             cjne     a,xendl,rate10
             ret
      rate2: mov     a,errl         ; 增加的
             jb       acc.7,rate21
             mov      a,ystal
             add      a,#1
             mov      ystal,a
             clr      c
             mov      a,errl
             subb     a,d_xl
             mov      errl,a
             sjmp     rate22
     rate21: mov      a,ystal
             add      a,#1
             mov      ystal,a
             mov      a,xstal
             add      a,#1
             mov      xstal,a
             mov      a,errl
             add      a,d_yl
             mov      errl,a
             clr      c
             mov      a,errl
             subb     a,d_xl
             mov      errl,a
     rate22: mov      Column,xstal
             mov      line,ystal
             orl      line,#080h
             acall    w_dot                 ;调用绘点子程序
             mov      a,ystal
             cjne     a,yendl,rate2
             ret
      rate3: mov      a,ystal
             cjne     a,yendl,rate30
             sjmp     rate31
     rate30: mov      a,errl               ;增加的
             jb       acc.7,rate32
             mov      a,ystal
             add      a,#1
             mov      ystal,a
     rate31: mov      a,xstal
             clr      c
             subb     a,#1
             mov      xstal,a
             mov      a,errl
             add      a,d_yl
             mov      errl,a
             clr      c
             mov      a,errl
             subb     a,d_xl
             mov      errl,a
             sjmp     rate33
     rate32: mov      a,xstal
             clr      c
             subb     a,#1
             mov      xstal,a
             mov      a,errl
             add      a,d_yl
             mov      errl,a
     rate33: mov      Column,xstal
             mov      line,ystal
             orl      line,#080h
             acall    W_dot                ;调用绘点子程序
             mov      a,xstal
             cjne     a,xendl,rate30
             ret
      rate4: mov      a,errl        ;增加的
             jb       acc.7,rate41
             mov      a,ystal
             add      a,#1
             mov      ystal,a
             clr      c
             mov      a,errl
             subb     a,d_xl
             mov      errl,a
             ajmp     rate42
     rate41: clr      c
             mov      a,xstal
             subb     a,#1
             mov      xstal,a
             mov      a,ystal
             add      a,#1
             mov      ystal,a
             mov      a,errl
             add      a,d_yl
             mov      errl,a
             clr      c
             mov      a,errl
             subb     a,d_xl
             mov      errl,a
     rate42: mov      Column,xstal
             mov      line,ystal
             orl      line,#080h
             acall    W_dot               ;调用绘点子程序
             mov      a,ystal
             cjne     a,yendl,rate4
             ret
;画点子程序
      W_dot: push     b
             mov      a,line           ;读行地址
             anl      a,#07fh          ;屏蔽点标志
             mov      b,#08h           ;计算页地址
             div      ab
             orl      a,#0b8h
             mov      com,a
             lcall    lcd_we_zl
             inc      b
             setb     c
             clr      a                ;设置点位置
     W_dot1: rlc      a
             djnz     b,W_dot1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -