📄 ledshow.lis
字号:
00CD 25FA blo L17
00CF ; LcdCtrl|=(1<<LcdE); //E=1
00CF 1402 bset #2,0x2
00D1 ; LcdCtrl|=1<<LcdRS; //RS、R/W=10,写数据到DDRAM中
00D1 1002 bset #0,0x2
00D3 ; LcdCtrl&=~(1<<LcdRW);
00D3 1302 bclr #1,0x2
00D5 ; Lcd_Command(str);
00D5 E603 lda 3,X
00D7 87 psha
00D8 CD0142 jsr _Lcd_Command
00DB A701 ais #1
00DD 95 tsx
00DE ;
00DE ; LcdCtrl|=(1<<LcdE); //E=1
00DE 1402 bset #2,0x2
00E0 ; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
00E0 1102 bclr #0,0x2
00E2 ; LcdCtrl&=~(1<<LcdRW);
00E2 1302 bclr #1,0x2
00E4 ; Lcd_Command(AC);
00E4 E604 lda 4,X
00E6 87 psha
00E7 CD0142 jsr _Lcd_Command
00EA A701 ais #1
00EC 95 tsx
00ED L12:
00ED A701 ais #1
00EF .dbline 0 ; func end
00EF 81 rts
00F0 ; i -> 0,X
00F0 _LcdInit::
00F0 A7FF ais #-1
00F2 95 tsx
00F3 ;
00F3 ; }
00F3 ; /*LcdInit:时间显示时初始化Lcd------------------------------------*
00F3 ; *功 能:初始化Lcd(HD44780),设置显示方式,清屏,AC自动+1 *
00F3 ; *参 数:无 *
00F3 ; *返 回:无 *
00F3 ; *-----------------------------------------------------*/
00F3 ; void LcdInit(void)
00F3 ; {
00F3 ; unsigned char i;
00F3 ; LcdData_D=0b11111111; //数据口为输出
00F3 A6FF lda #-1
00F5 B705 sta 0x5
00F7 ; LcdCtrl_D|=(1<<LcdE); //控制口低三位为输出
00F7 1406 bset #2,0x6
00F9 ; LcdCtrl_D|=(1<<LcdRS);
00F9 1006 bset #0,0x6
00FB ; LcdCtrl_D|=(1<<LcdRW);
00FB 1206 bset #1,0x6
00FD ; LcdCtrl|=(1<<LcdE); //E=1
00FD 1402 bset #2,0x2
00FF ; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
00FF 1102 bclr #0,0x2
0101 ; LcdCtrl&=~(1<<LcdRW);
0101 1302 bclr #1,0x2
0103 ; Lcd_Command(0b00111000); //8位数据接口,2行,5*7点阵
0103 A638 lda #56
0105 87 psha
0106 CD0142 jsr _Lcd_Command
0109 A701 ais #1
010B ; Lcd_Command(0b00001000); //关显示,关光标显示,不闪烁
010B A608 lda #8
010D 87 psha
010E CD0142 jsr _Lcd_Command
0111 A701 ais #1
0113 ; Lcd_Command(0b00000001); //清屏
0113 A601 lda #1
0115 87 psha
0116 CD0142 jsr _Lcd_Command
0119 A701 ais #1
011B 95 tsx
011C 7F clr ,X
011D 2001 bra L25
011F L22:
011F L23:
011F 7C inc ,X
0120 L25:
0120 ; for(i=0;i<250;i++); //延时>1.6ms
0120 F6 lda ,X
0121 A1FA cmp #-6
0123 25FA blo L22
0125 7F clr ,X
0126 2001 bra L29
0128 L26:
0128 L27:
0128 7C inc ,X
0129 L29:
0129 ; for(i=0;i<250;i++);
0129 F6 lda ,X
012A A1FA cmp #-6
012C 25FA blo L26
012E ; Lcd_Command(0b00010100); //光标右移一个字符位,AC自
012E A614 lda #20
0130 87 psha
0131 CD0142 jsr _Lcd_Command
0134 A701 ais #1
0136 ; // 动加1
0136 ; Lcd_Command(0b00001100); //开显示,关光标显示,不闪烁
0136 A60C lda #12
0138 87 psha
0139 CD0142 jsr _Lcd_Command
013C A701 ais #1
013E 95 tsx
013F L21:
013F A701 ais #1
0141 .dbline 0 ; func end
0141 81 rts
0142 ; i -> 0,X
0142 ; cmd -> 3,X
0142 _Lcd_Command::
0142 A7FF ais #-1
0144 95 tsx
0145 ; }
0145 ;
0145 ;
0145 ; /*LcdInit:设时间时初始化Lcd------------------------------------*
0145 ; *功 能:初始化Lcd(HD44780),设置显示方式,清屏,AC自动+1 *
0145 ; *参 数:无 *
0145 ; *返 回:无 *
0145 ; *-----------------------------------------------------*/
0145 ;
0145 ; /*Lcd_Command:执行给定的cmd命令------------------------*
0145 ; *功 能:执行给定的cmd命令,且延时 *
0145 ; *参 数:cmd:待执行的命令 *
0145 ; *返 回:无 *
0145 ; *-----------------------------------------------------*/
0145 ; void Lcd_Command(unsigned char cmd)
0145 ; {
0145 7F clr ,X
0146 2001 bra L34
0148 L31:
0148 L32:
0148 7C inc ,X
0149 L34:
0149 ; unsigned char i;
0149 ; for (i=0;i<20;i++); //等待>40us
0149 F6 lda ,X
014A A114 cmp #20
014C 25FA blo L31
014E ; LcdData=cmd; //把指令码送到Lcd数据传送口
014E E603 lda 3,X
0150 B701 sta 0x1
0152 ; LcdCtrl|=(1<<LcdE); //Lcd开始接收数据
0152 1402 bset #2,0x2
0154 ; asm("NOP");
0154 9D NOP
0155 ; asm("NOP");
0155 9D NOP
0156 ; asm("NOP");
0156 9D NOP
0157 ; LcdCtrl&=~(1<<LcdE); //Lcd结束接收数据
0157 1502 bclr #2,0x2
0159 7F clr ,X
015A 2001 bra L38
015C L35:
015C L36:
015C 7C inc ,X
015D L38:
015D ; for (i=0;i<20;i++); //等待>40us
015D F6 lda ,X
015E A114 cmp #20
0160 25FA blo L35
0162 L30:
0162 A701 ais #1
0164 .dbline 0 ; func end
0164 81 rts
0165 _shilf::
0165 ; }
0165 ;
0165 ; void shilf(void){
0165 ; LcdCtrl|=(1<<LcdE); //E=1
0165 1402 bset #2,0x2
0167 ; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
0167 1102 bclr #0,0x2
0169 ; LcdCtrl&=~(1<<LcdRW);
0169 1302 bclr #1,0x2
016B ; Lcd_Command(0b00010000); //开显示,光标显示,闪烁
016B A610 lda #16
016D 87 psha
016E CD0142 jsr _Lcd_Command
0171 A701 ais #1
0173 95 tsx
0174 L39:
0174 .dbline 0 ; func end
0174 81 rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -