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

📄 ht46r24.lst

📁 利用HOLTEK单片机开发的1602液晶驱动
💻 LST
📖 第 1 页 / 共 2 页
字号:
文件:HT46R24.c    盛群编译器版本 2.86 页次1



;  47: {

;  49: 	char example[]="For an example. - By xiaoqi\n";
  49  0000              rombank 0 L2
  49  0000              L2 .SECTION INPAGE'CODE'
  49  0000              l_2:
  49  0000  0086        MOV [06h],A
  49  0001              _2:
  49  0001  0946        RET A,70
  49  0002  096F        RET A,111
  49  0003  0972        RET A,114
  49  0004  0920        RET A,32
  49  0005  0961        RET A,97
  49  0006  096E        RET A,110
  49  0007  0920        RET A,32
  49  0008  0965        RET A,101
  49  0009  0978        RET A,120
  49  000A  0961        RET A,97
  49  000B  096D        RET A,109
  49  000C  0970        RET A,112
  49  000D  096C        RET A,108
  49  000E  0965        RET A,101
  49  000F  092E        RET A,46
  49  0010  0920        RET A,32
  49  0011  092D        RET A,45
  49  0012  0920        RET A,32
  49  0013  0942        RET A,66
  49  0014  0979        RET A,121
  49  0015  0920        RET A,32
  49  0016  0978        RET A,120
  49  0017  0969        RET A,105
  49  0018  0961        RET A,97
  49  0019  096F        RET A,111
  49  001A  0971        RET A,113
  49  001B  0969        RET A,105
  49  001C  090A        RET A,10
  49  001D  0900        RET A,0
  49  001E              __acsr EQU [027H]
  49  001E              __adcr EQU [026H]
  49  001E              __adrh EQU [025H]
  49  001E              __adrl EQU [024H]
  49  001E              __hdr EQU [023H]
  49  001E              __hsr EQU [022H]
  49  001E              __hcr EQU [021H]
  49  001E              __hadr EQU [020H]
  49  001E              __pwm3 EQU [01dH]
  49  001E              __pwm2 EQU [01cH]
  49  001E              __pwm1 EQU [01bH]
  49  001E              __pwm0 EQU [01aH]
  49  001E              __pfc EQU [029H]
  49  001E              __pf EQU [028H]
  49  001E              __pdc EQU [019H]
  49  001E              __pd EQU [018H]
  49  001E              __pcc EQU [017H]
  49  001E              __pc EQU [016H]
  49  001E              __pbc EQU [015H]
  49  001E              __pb EQU [014H]
文件:HT46R24.c    盛群编译器版本 2.86 页次2 

  49  001E              __pac EQU [013H]
文件:HT46R24.C    盛群编译器版本 2.86 页次2

  49  001E              __pa EQU [012H]
  49  001E              __tmr1c EQU [011H]
  49  001E              __tmr1l EQU [010H]
  49  001E              __tmr1h EQU [0fH]
  49  001E              __tmr0c EQU [0eH]
  49  001E              __tmr0l EQU [0dH]
  49  001E              __tmr0h EQU [0cH]
  49  001E              __intc1 EQU [01eH]
  49  001E              __intc0 EQU [0bH]
  49  001E              __status EQU [0aH]
  49  001E              __tblh EQU [08H]
  49  001E              __tblp EQU [07H]
  49  001E              __pcl EQU [06H]
  49  001E              __acc EQU [05H]
  49  001E              __bp EQU [04H]
  49  001E              __mp1 EQU [03H]
  49  001E              __iar1 EQU [02H]
  49  001E              __mp0 EQU [01H]
  49  001E              __iar0 EQU [00H]
  49  0000              @MAIN .SECTION 'CODE'
  49  0000              _main PROC
  49  0000              begin:
  49  0000  0F1D        MOV A,29
  49  0001  0080     E  MOV RH,A
  49  0002  0F00     R  MOV A,OFFSET CR2
  49  0003  0081        MOV [01H],A
  49  0004  0F01        MOV A,1
  49  0005  0080     E  MOV T2,A
  49  0006              ASB8:
  49  0006  0700     E  MOV A,T2
  49  0007  0B00     R  ADD A,OFFSET l_2
  49  0008  2000     R  CALL l_2
  49  0009  0080        MOV [00H],A
  49  000A  1481        INC [01H]
  49  000B  1480     E  INC T2
  49  000C  1780     E  SDZ RH
  49  000D  2800     R  JMP ASB8

;  51: 	Delay400Ms();
  51  000E  2000     R  CALL _Delay400Ms

;  53: 	LcdReset();
  53  000F  2000     R  CALL _LcdReset

;  54: 	temp = 32;
  54  0010  0F20        MOV A,020h
  54  0011  0080     R  MOV CR1,A

;  55: 	ePutstr(0,0,example); // 上面一行显示一个预定字符串
  55  0012  0F00        MOV A,00h
  55  0013  0080     R  MOV ePutstr0,A
  55  0014  0F00        MOV A,00h
  55  0015  0080     R  MOV ePutstr1,A
  55  0016  0F00     R  MOV A,OFFSET CR2
  55  0017  0080     R  MOV ePutstr2,A
  55  0018  1F00     R  CLR ePutstr2[1]
  55  0019  2000     R  CALL _ePutstr
文件:HT46R24.c    盛群编译器版本 2.86 页次3 


;  57: 	Delay400Ms();
  57  001A  2000     R  CALL _Delay400Ms

;  58: 	Delay400Ms();
  58  001B  2000     R  CALL _Delay400Ms

;  59: 	Delay400Ms();
文件:HT46R24.C    盛群编译器版本 2.86 页次3

  59  001C  2000     R  CALL _Delay400Ms

;  60: 	Delay400Ms();
  60  001D  2000     R  CALL _Delay400Ms

;  61: 	Delay400Ms();
  61  001E  2000     R  CALL _Delay400Ms

;  62: 	Delay400Ms();
  62  001F  2000     R  CALL _Delay400Ms

;  63: 	Delay400Ms();
  63  0020  2000     R  CALL _Delay400Ms

;  64: 	Delay400Ms();
  64  0021  2000     R  CALL _Delay400Ms
  64  0022  2800     R  JMP L4
  64  0023              L3:

;  68: 		temp &= 0x7f; // 只显示ASCII字符
  68  0023  3400     R  CLR CR1.7

;  69: 		if (temp<32)temp=32; // 屏蔽控制字符,不予显示
  69  0024  0700     R  MOV A,CR1
  69  0025  0A20        SUB A,020h
  69  0026  3C0A        SZ [0ah].0
  69  0027  2800     R  JMP L6
  69  0028  0F20        MOV A,020h
  69  0029  0080     R  MOV CR1,A
  69  002A              L6:

;  70: 		Display( temp++ );
  70  002A  0700     R  MOV A,CR1
  70  002B  0080     R  MOV b0_1,A
  70  002C  1480     R  INC CR1
  70  002D  0700     R  MOV A,b0_1
  70  002E  0080     R  MOV Display0,A
  70  002F  2000     R  CALL _Display

;  71: 		Delay400Ms();
  71  0030  2000     R  CALL _Delay400Ms
  71  0031              L4:

;  66: 	while(1)
  66  0031  2800     R  JMP L3
  66  0032              L1:

;  73: }
  73  0032  2800     R  JMP $
  73  0000  00          LOCAL b0_1 DB ?
文件:HT46R24.c    盛群编译器版本 2.86 页次4 


;  48: 	Uchar temp;
  48  0001  00          LOCAL CR1 DB ? ; temp

;  49: 	char example[]="For an example. - By xiaoqi\n";
  49  0002  001D[       LOCAL CR2 DB 29 DUP (?) ; example
            00
            ]
  49  0033              _main ENDP

;  79: {
  79  0000              @ePutstr .SECTION 'CODE'
  79  0000              PUBLIC _ePutstr
  79  0000              _ePutstr PROC

;  78: void ePutstr(Uchar x,Uchar y, Uchar  *ptr)
  78  0000              PUBLIC ePutstr0
  78  0000  00          LOCAL ePutstr0 DB ? ; x
文件:HT46R24.C    盛群编译器版本 2.86 页次4

  78  0000              PUBLIC ePutstr1
  78  0001  00          LOCAL ePutstr1 DB ? ; y
  78  0000              PUBLIC ePutstr2
  78  0002  0002[       LOCAL ePutstr2 DB 2 DUP (?) ; ptr
            00
            ]

;  80: 	Uchar i,l=0;
  80  0000  1F00     R  CLR CR6
  80  0001  2800     R  JMP L11
  80  0002              L10:

;  81: 	while (ptr[l] >31){l++;};
  81  0002  1480     R  INC CR6
  81  0003              L11:
  81  0003  0700     R  MOV A,CR6
  81  0004  0300     R  ADD A,ePutstr2
  81  0005  0080     R  MOV b0_2,A
  81  0006  0700     R  MOV A,ePutstr2[1]
  81  0007  0080     R  MOV b0_2[1],A
  81  0008  0700     R  MOV A,b0_2[1]
  81  0009  0084        MOV [04H],A
  81  000A  0700     R  MOV A,b0_2
  81  000B  0083        MOV [03H],A
  81  000C  0702        MOV A,[02H]
  81  000D  0080     R  MOV b0_2,A
  81  000E  0F1F        MOV A,01fh
  81  000F  0200     R  SUB A,b0_2
  81  0010  380A        SNZ [0ah].0
  81  0011  2800     R  JMP L10

;  82: 	for (i=0;i<l;i++) 
  82  0012  1F00     R  CLR CR5
  82  0013  2800     R  JMP L16
  82  0014              L13:

;  84: 		DispOneChar(x++,y,ptr[i]);
  84  0014  0700     R  MOV A,ePutstr0
  84  0015  0080     R  MOV b0_2,A
  84  0016  1480     R  INC ePutstr0
文件:HT46R24.c    盛群编译器版本 2.86 页次5 

  84  0017  0700     R  MOV A,b0_2
  84  0018  0080     R  MOV DispOneChar0,A
  84  0019  0700     R  MOV A,ePutstr1
  84  001A  0080     R  MOV DispOneChar1,A
  84  001B  0700     R  MOV A,CR5
  84  001C  0300     R  ADD A,ePutstr2
  84  001D  0080     R  MOV b0_2,A
  84  001E  0700     R  MOV A,ePutstr2[1]
  84  001F  0080     R  MOV b0_2[1],A
  84  0020  0700     R  MOV A,b0_2[1]
  84  0021  0084        MOV [04H],A
  84  0022  0700     R  MOV A,b0_2
文件:HT46R24.C    盛群编译器版本 2.86 页次5

  84  0023  0083        MOV [03H],A
  84  0024  0702        MOV A,[02H]
  84  0025  0080     R  MOV b0_2,A
  84  0026  0700     R  MOV A,b0_2
  84  0027  0080     R  MOV DispOneChar2,A
  84  0028  2000     R  CALL _DispOneChar

;  85: 		if ( x == 8 )
  85  0029  0700     R  MOV A,ePutstr0
  85  002A  0C08        XOR A,08h
  85  002B  390A        SNZ [0ah].2
  85  002C  2800     R  JMP L17

;  87: 			x = 0; y ^= 1;
  87  002D  1F00     R  CLR ePutstr0
  87  002E  0F01        MOV A,01h
  87  002F  0480     R  XORM A,ePutstr1
  87  0030              L17:
  87  0030              L14:

;  82: 	for (i=0;i<l;i++) 
  82  0030  1480     R  INC CR5
  82  0031              L16:
  82  0031  0700     R  MOV A,CR5
  82  0032  0200     R  SUB A,CR6
  82  0033  380A        SNZ [0ah].0
  82  0034  2800     R  JMP L13
  82  0035              L9:
  82  0035  0003        RET
  82  0004  0002[       LOCAL b0_2 DB 2 DUP(?)
            00
            ]

;  80: 	Uchar i,l=0;
  80  0006  00          LOCAL CR5 DB ? ; i
  80  0007  00          LOCAL CR6 DB ? ; l
  80  0036              _ePutstr ENDP

;  96: {
  96  0000              @Display .SECTION 'CODE'
  96  0000              PUBLIC _Display
  96  0000              _Display PROC

;  95: void Display( Uchar dd ) 
  95  0000              PUBLIC Display0
  95  0000  00          LOCAL Display0 DB ? ; dd
文件:HT46R24.c    盛群编译器版本 2.86 页次6 


; 100: 	for (i=0;i<8;i++)
 100  0000  1F00     R  CLR CR8
 100  0001  2800     R  JMP L23
 100  0002              L20:

; 102: 		DispOneChar(i,1,dd++);
 102  0002  0700     R  MOV A,CR8
 102  0003  0080     R  MOV DispOneChar0,A
 102  0004  0F01        MOV A,01h
文件:HT46R24.C    盛群编译器版本 2.86 页次6

 102  0005  0080     R  MOV DispOneChar1,A
 102  0006  0700     R  MOV A,Display0
 102  0007  0080     R  MOV b0_3,A
 102  0008  1480     R  INC Display0
 102  0009  0700     R  MOV A,b0_3
 102  000A  0080     R  MOV DispOneChar2,A
 102  000B  2000     R  CALL _DispOneChar

; 103: 		dd &= 0x7f;
 103  000C  3400     R  CLR Display0.7

; 104: 		if (dd<32) dd=32;
 104  000D  0700     R  MOV A,Display0
 104  000E  0A20        SUB A,020h
 104  000F  3C0A        SZ [0ah].0
 104  0010  2800     R  JMP L24
 104  0011  0F20        MOV A,020h
 104  0012  0080     R  MOV Display0,A
 104  0013              L24:
 104  0013              L21:

; 100: 	for (i=0;i<8;i++)
 100  0013  1480     R  INC CR8
 100  0014              L23:
 100  0014  0700     R  MOV A,CR8
 100  0015  0A08        SUB A,08h
 100  0016  380A        SNZ [0ah].0
 100  0017  2800     R  JMP L20
 100  0018              L19:
 100  0018  0003        RET
 100  0001  00          LOCAL b0_3 DB ?

;  98: 	Uchar i;
  98  0002  00          LOCAL CR8 DB ? ; i
  98  0019              _Display ENDP

; 112: {
 112  0000              @LocateXY .SECTION 'CODE'
 112  0000              PUBLIC _LocateXY
 112  0000              _LocateXY PROC

; 111: void LocateXY( char posx,char posy) 
 111  0000              PUBLIC LocateXY0
 111  0000  00          LOCAL LocateXY0 DB ? ; posx
 111  0000              PUBLIC LocateXY1
 111  0001  00          LOCAL LocateXY1 DB ? ; posy

; 116: 	temp = posx & 0xf;
文件:HT46R24.c    盛群编译器版本 2.86 页次7 

 116  0000  0700     R  MOV A,LocateXY0
 116  0001  0E0F        AND A,0fh
 116  0002  0080     R  MOV b0_4,A
 116  0003  0700     R  MOV A,b0_4
 116  0004  0080     R  MOV CR11,A

; 117: 	posy &= 0x1;
 117  0005  0F01        MOV A,01h
 117  0006  0680     R  ANDM A,LocateXY1

; 118: 	if ( posy )temp |= 0x40;
 118  0007  1080     R  SZ LocateXY1
文件:HT46R24.C    盛群编译器版本 2.86 页次7

 118  0008  2800     R  JMP L29
 118  0009  2800     R  JMP L27
 118  000A              L29:
 118  000A  3000     R  SET CR11.6
 118  000B              L27:

; 119: 	temp |= 0x80;
 119  000B  3000     R  SET CR11.7

; 120: 	LcdWriteCommand(temp,0);
 120  000C  0700     R  MOV A,CR11
 120  000D  0080     R  MOV LcdWriteCommand0,A
 120  000E  0F00        MOV A,00h

⌨️ 快捷键说明

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