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

📄 ledshow.lis

📁 飞思卡尔的电子钟和电子琴的课程设计,包括源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -