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

📄 lcd.lst

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



;  40: {

;  41: 	Uchar cdle_net[] = {"www.cdle.net"};
  41  0000              rombank 0 L2
  41  0000              L2 .SECTION INPAGE'CODE'
  41  0000              l_2:
  41  0000  0086        MOV [06h],A
  41  0001              _2:
  41  0001  0977        RET A,119
  41  0002  0977        RET A,119
  41  0003  0977        RET A,119
  41  0004  092E        RET A,46
  41  0005  0963        RET A,99
  41  0006  0964        RET A,100
  41  0007  096C        RET A,108
  41  0008  0965        RET A,101
  41  0009  092E        RET A,46
  41  000A  096E        RET A,110
  41  000B  0965        RET A,101
  41  000C  0974        RET A,116
  41  000D  0900        RET A,0

;  42: 	Uchar email[] = {"pnzwzw@cdle.net"};
  42  000E              rombank 0 L3
  42  0000              L3 .SECTION INPAGE'CODE'
  42  0000              l_3:
  42  0000  0086        MOV [06h],A
  42  0001              _3:
  42  0001  0970        RET A,112
  42  0002  096E        RET A,110
  42  0003  097A        RET A,122
  42  0004  0977        RET A,119
  42  0005  097A        RET A,122
  42  0006  0977        RET A,119
  42  0007  0940        RET A,64
  42  0008  0963        RET A,99
  42  0009  0964        RET A,100
  42  000A  096C        RET A,108
  42  000B  0965        RET A,101
  42  000C  092E        RET A,46
  42  000D  096E        RET A,110
  42  000E  0965        RET A,101
  42  000F  0974        RET A,116
  42  0010  0900        RET A,0
  42  0011              __acsr EQU [027H]
  42  0011              __adcr EQU [026H]
  42  0011              __adrh EQU [025H]
  42  0011              __adrl EQU [024H]
  42  0011              __hdr EQU [023H]
  42  0011              __hsr EQU [022H]
  42  0011              __hcr EQU [021H]
  42  0011              __hadr EQU [020H]
  42  0011              __pwm3 EQU [01dH]
  42  0011              __pwm2 EQU [01cH]
  42  0011              __pwm1 EQU [01bH]
  42  0011              __pwm0 EQU [01aH]
  42  0011              __pfc EQU [029H]
文件:LCD.c        盛群编译器版本 2.86 页次2 

  42  0011              __pf EQU [028H]
  42  0011              __pdc EQU [019H]
文件:LCD.C        盛群编译器版本 2.86 页次2

  42  0011              __pd EQU [018H]
  42  0011              __pcc EQU [017H]
  42  0011              __pc EQU [016H]
  42  0011              __pbc EQU [015H]
  42  0011              __pb EQU [014H]
  42  0011              __pac EQU [013H]
  42  0011              __pa EQU [012H]
  42  0011              __tmr1c EQU [011H]
  42  0011              __tmr1l EQU [010H]
  42  0011              __tmr1h EQU [0fH]
  42  0011              __tmr0c EQU [0eH]
  42  0011              __tmr0l EQU [0dH]
  42  0011              __tmr0h EQU [0cH]
  42  0011              __intc1 EQU [01eH]
  42  0011              __intc0 EQU [0bH]
  42  0011              __status EQU [0aH]
  42  0011              __tblh EQU [08H]
  42  0011              __tblp EQU [07H]
  42  0011              __pcl EQU [06H]
  42  0011              __acc EQU [05H]
  42  0011              __bp EQU [04H]
  42  0011              __mp1 EQU [03H]
  42  0011              __iar1 EQU [02H]
  42  0011              __mp0 EQU [01H]
  42  0011              __iar0 EQU [00H]
  42  0000              @MAIN .SECTION 'CODE'
  42  0000              _main PROC
  42  0000              begin:

;  41: 	Uchar cdle_net[] = {"www.cdle.net"};
  41  0000  0F0D        MOV A,13
  41  0001  0080     E  MOV RH,A
  41  0002  0F00     R  MOV A,OFFSET CR3
  41  0003  0081        MOV [01H],A
  41  0004  0F01        MOV A,1
  41  0005  0080     E  MOV T2,A
  41  0006              ASB13:
  41  0006  0700     E  MOV A,T2
  41  0007  0B00     R  ADD A,OFFSET l_2
  41  0008  2000     R  CALL l_2
  41  0009  0080        MOV [00H],A
  41  000A  1481        INC [01H]
  41  000B  1480     E  INC T2
  41  000C  1780     E  SDZ RH
  41  000D  2800     R  JMP ASB13

;  42: 	Uchar email[] = {"pnzwzw@cdle.net"};
  42  000E  0F10        MOV A,16
  42  000F  0080     E  MOV RH,A
  42  0010  0F00     R  MOV A,OFFSET CR4
  42  0011  0081        MOV [01H],A
  42  0012  0F01        MOV A,1
  42  0013  0080     E  MOV T2,A
  42  0014              ASB14:
  42  0014  0700     E  MOV A,T2
  42  0015  0B00     R  ADD A,OFFSET l_3
文件:LCD.c        盛群编译器版本 2.86 页次3 

  42  0016  2000     R  CALL l_3
  42  0017  0080        MOV [00H],A
  42  0018  1481        INC [01H]
  42  0019  1480     E  INC T2
  42  001A  1780     E  SDZ RH
文件:LCD.C        盛群编译器版本 2.86 页次3

  42  001B  2800     R  JMP ASB14

;  45: 	_pac=0;
  45  001C  1F13        CLR __pac

;  46: 	temp=32;
  46  001D  0F20        MOV A,020h
  46  001E  0080     R  MOV CR1,A

;  47: 	Delay400Ms();	//启动等待,等LCM讲入工作状态
  47  001F  2000     R  CALL _Delay400Ms

;  48: 	LCMInit();		//LCM初始化
  48  0020  2000     R  CALL _LCMInit

;  49: 	Delay5Ms();		//延时片刻(可不要)
  49  0021  2000     R  CALL _Delay5Ms

;  51: 	for(i=0;i<5;i++) Delay400Ms();
  51  0022  1F00     R  CLR CR2
  51  0023              L4:
  51  0023  2000     R  CALL _Delay400Ms
  51  0024              L5:
  51  0024  1480     R  INC CR2
  51  0025  0F80        MOV A,80h
  51  0026  0400     R  XOR A,CR2
  51  0027  0A85        SUB A,085h
  51  0028  380A        SNZ [0ah].0
  51  0029  2800     R  JMP L4

;  52: 	DisplayListChar(0, 0, cdle_net);
  52  002A  0F00        MOV A,00h
  52  002B  0080     R  MOV DisplayListChar0,A
  52  002C  0F00        MOV A,00h
  52  002D  0080     R  MOV DisplayListChar1,A
  52  002E  0F00     R  MOV A,OFFSET CR3
  52  002F  0080     R  MOV DisplayListChar2,A
  52  0030  1F00     R  CLR DisplayListChar2[1]
  52  0031  2000     R  CALL _DisplayListChar

;  53: 	DisplayListChar(0, 1, email);
  53  0032  0F00        MOV A,00h
  53  0033  0080     R  MOV DisplayListChar0,A
  53  0034  0F01        MOV A,01h
  53  0035  0080     R  MOV DisplayListChar1,A
  53  0036  0F00     R  MOV A,OFFSET CR4
  53  0037  0080     R  MOV DisplayListChar2,A
  53  0038  1F00     R  CLR DisplayListChar2[1]
  53  0039  2000     R  CALL _DisplayListChar

;  54: 	ReadDataLCM();	//测试用句无意义
  54  003A  2000     R  CALL _ReadDataLCM
  54  003B  2800     R  JMP L9
文件:LCD.c        盛群编译器版本 2.86 页次4 

  54  003C              L8:

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

;  59: 		if (temp<32)temp=32; // 屏蔽控制字符,不予显示
  59  003D  0700     R  MOV A,CR1
  59  003E  0A20        SUB A,020h
  59  003F  3C0A        SZ [0ah].0
  59  0040  2800     R  JMP L11
  59  0041  0F20        MOV A,020h
  59  0042  0080     R  MOV CR1,A
文件:LCD.C        盛群编译器版本 2.86 页次4

  59  0043              L11:

;  60: 		Display( temp++ );
  60  0043  0700     R  MOV A,CR1
  60  0044  0080     R  MOV b0_1,A
  60  0045  1480     R  INC CR1
  60  0046  0700     R  MOV A,b0_1
  60  0047  0080     R  MOV Display0,A
  60  0048  2000     R  CALL _Display

;  61: 		Delay400Ms();
  61  0049  2000     R  CALL _Delay400Ms
  61  004A              L9:

;  56: 	while(1)
  56  004A  2800     R  JMP L8
  56  004B              L1:

;  63: }
  63  004B  2800     R  JMP $
  63  0000  00          LOCAL b0_1 DB ?

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

;  44: 	int i;
  44  0002  00          LOCAL CR2 DB ? ; i

;  41: 	Uchar cdle_net[] = {"www.cdle.net"};
  41  0003  000D[       LOCAL CR3 DB 13 DUP (?) ; cdle_net
            00
            ]

;  42: 	Uchar email[] = {"pnzwzw@cdle.net"};
  42  0010  0010[       LOCAL CR4 DB 16 DUP (?) ; email
            00
            ]
  42  004C              _main ENDP

;  67: {
  67  0000              @WriteDataLCM .SECTION 'CODE'
  67  0000              PUBLIC _WriteDataLCM
  67  0000              _WriteDataLCM PROC

;  66: void WriteDataLCM(Uchar WDLCM)	
  66  0000              PUBLIC WriteDataLCM0
文件:LCD.c        盛群编译器版本 2.86 页次5 

  66  0000  00          LOCAL WriteDataLCM0 DB ? ; WDLCM

;  68: 	ReadStatusLCM();	//检测忙
  68  0000  2000     R  CALL _ReadStatusLCM

;  69: 	_pbc=0;
  69  0001  1F15        CLR __pbc

;  70: 	_pb = WDLCM;
  70  0002  0700     R  MOV A,WriteDataLCM0
  70  0003  0094        MOV __pb,A

;  71: 	LCM_RS = 1;
  71  0004  3012        SET [012H].0

;  72: 	LCM_RW = 0;
  72  0005  3492        CLR [012H].1

;  73: 	LCM_E = 0;		//若晶振速度太高可以在这后加小的延时
  73  0006  3512        CLR [012H].2

;  75: 	LCM_E = 1;
  75  0007  3112        SET [012H].2
文件:LCD.C        盛群编译器版本 2.86 页次5

  75  0008              L15:
  75  0008  0003        RET
  75  0001  00          LOCAL b0_2 DB ?
  75  0009              _WriteDataLCM ENDP

;  80: {
  80  0000              @WriteCommandLCM .SECTION 'CODE'
  80  0000              PUBLIC _WriteCommandLCM
  80  0000              _WriteCommandLCM PROC

;  79: void WriteCommandLCM(Uchar WCLCM, Uchar BusyC) //BusyC为0时忽略忙检测
  79  0000              PUBLIC WriteCommandLCM0
  79  0000  00          LOCAL WriteCommandLCM0 DB ? ; WCLCM
  79  0000              PUBLIC WriteCommandLCM1
  79  0001  00          LOCAL WriteCommandLCM1 DB ? ; BusyC

;  81: 	if (BusyC) ReadStatusLCM(); //根据需要检测忙
  81  0000  1080     R  SZ WriteCommandLCM1
  81  0001  2800     R  JMP L19
  81  0002  2800     R  JMP L17
  81  0003              L19:
  81  0003  2000     R  CALL _ReadStatusLCM
  81  0004              L17:

;  82: 	_pbc=0;
  82  0004  1F15        CLR __pbc

;  83: 	_pb = WCLCM;
  83  0005  0700     R  MOV A,WriteCommandLCM0
  83  0006  0094        MOV __pb,A

;  84: 	LCM_RS = 0;
  84  0007  3412        CLR [012H].0

;  85: 	LCM_RW = 0; 
文件:LCD.c        盛群编译器版本 2.86 页次6 

  85  0008  3492        CLR [012H].1

;  86: 	LCM_E = 0;
  86  0009  3512        CLR [012H].2

;  88: 	LCM_E = 1; 
  88  000A  3112        SET [012H].2
  88  000B              L16:
  88  000B  0003        RET
  88  0002  00          LOCAL b0_3 DB ?
  88  000C              _WriteCommandLCM ENDP

;  93: {
  93  0000              @ReadDataLCM .SECTION 'CODE'
  93  0000              PUBLIC _ReadDataLCM
  93  0000              _ReadDataLCM PROC

;  94: 	_pbc=0xff;
  94  0000  1F95        SET __pbc

;  95: 	LCM_RS = 1; 
  95  0001  3012        SET [012H].0

;  96: 	LCM_RW = 1;
  96  0002  3092        SET [012H].1

;  97: 	LCM_E = 0;
  97  0003  3512        CLR [012H].2

;  99: 	LCM_E = 1;
  99  0004  3112        SET [012H].2

; 100: 	return(_pb);
 100  0005  0714        MOV A,__pb
文件:LCD.C        盛群编译器版本 2.86 页次6

 100  0006              L20:
 100  0006  0003        RET
 100  0007              _ReadDataLCM ENDP

; 105: {
 105  0000              @ReadStatusLCM .SECTION 'CODE'
 105  0000              PUBLIC _ReadStatusLCM
 105  0000              _ReadStatusLCM PROC

; 106: 	_pbc = 0xff; 
 106  0000  1F95        SET __pbc

; 107: 	LCM_RS = 0;
 107  0001  3412        CLR [012H].0

; 108: 	LCM_RW = 1;
 108  0002  3092        SET [012H].1

; 109: 	LCM_E = 0;
 109  0003  3512        CLR [012H].2

⌨️ 快捷键说明

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