📄 lcd.lis
字号:
.module lcd.c
.area text(rom, con, rel)
0000 .dbfile C:\TDdownload\zxy\169demo\169LCD\lcd静态校验\lcd.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 13
0000 ; // **************************************************************
0000 ; // *** 广 州 天 河 双 龙 电 子 公 司 ***
0000 ; // *** http://www.sl.com.cn ***
0000 ; // *** 实验:lcd静态校验 ***
0000 ; // *** 作者:zxy@sl.com.cn ***
0000 ; // *** 2006年3月28日 ***
0000 ; // *** 目标MCU:MEGA169 晶振:内部(INT)8MHZ ***
0000 ; // **************************************************************
0000 ; //实验效果:LCD所有的段静态显示
0000 ; #include <iom169v.h>
0000 ; #include <macros.h>
0000 ; void port_init(void)
0000 ; {
0000 .dbline 14
0000 ; PORTA = 0x00;
0000 2224 clr R2
0002 22B8 out 0x2,R2
0004 .dbline 15
0004 ; DDRA = 0x00;
0004 21B8 out 0x1,R2
0006 .dbline 16
0006 ; PORTB = 0x00;
0006 25B8 out 0x5,R2
0008 .dbline 17
0008 ; DDRB = 0x00;
0008 24B8 out 0x4,R2
000A .dbline 18
000A ; PORTC = 0x00;
000A 28B8 out 0x8,R2
000C .dbline 19
000C ; DDRC = 0x00;
000C 27B8 out 0x7,R2
000E .dbline 20
000E ; PORTD = 0x00;
000E 2BB8 out 0xb,R2
0010 .dbline 21
0010 ; DDRD = 0x00;
0010 2AB8 out 0xa,R2
0012 .dbline 22
0012 ; PORTE = 0x00;
0012 2EB8 out 0xe,R2
0014 .dbline 23
0014 ; DDRE = 0x00;
0014 2DB8 out 0xd,R2
0016 .dbline 24
0016 ; PORTF = 0x00;
0016 21BA out 0x11,R2
0018 .dbline 25
0018 ; DDRF = 0x00;
0018 20BA out 0x10,R2
001A .dbline 26
001A ; PORTG = 0x00;
001A 24BA out 0x14,R2
001C .dbline 27
001C ; DDRG = 0x00;
001C 23BA out 0x13,R2
001E .dbline -2
001E L1:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e lcd_init _lcd_init fV
.even
0020 _lcd_init::
0020 .dbline -1
0020 .dbline 30
0020 ; }
0020 ; void lcd_init(void)
0020 ; {
0020 .dbline 32
0020 ;
0020 ; LCDCRA = (1<<LCDEN);
0020 80E8 ldi R24,128
0022 8093E400 sts 228,R24
0026 .dbline 35
0026 ; /* 晶体振荡器*/
0026 ; /* 1/3 偏置和1/4 占空比 */
0026 ; LCDCRB = (0<<LCDCS) | (1<<LCDMUX0)| (1<<LCDPM2)| (1<<LCDPM1)| (1<<LCDPM0);
0026 87E1 ldi R24,23
0028 8093E500 sts 229,R24
002C .dbline 38
002C ; /* 选择16 为预分频因子,7 为LCD 时钟分频数*/
002C ; /* 得到帧速率为 Hz */
002C ; LCDFRR = (1<<LCDPS2) |(1<<LCDPS1) |(0<<LCDPS0) |(1<<LCDCD2) | (1<<LCDCD1) | (0<<LCDCD0);
002C 86E6 ldi R24,102
002E 8093E600 sts 230,R24
0032 .dbline 40
0032 ; /* 设置输出电压为3.3 V */
0032 ; LCDCCR = (1<<LCDCC3) | (1<<LCDCC2) | (1<<LCDCC1) | (1<<LCDCC0);
0032 8FE0 ldi R24,15
0034 8093E700 sts 231,R24
0038 .dbline 43
0038 ; /* 使能LCD,缺省波形并禁止所有中断*/
0038 ;
0038 ; LCDDR0=0x00;
0038 2224 clr R2
003A 2092EC00 sts 236,R2
003E .dbline 44
003E ; LCDDR1=0x00;
003E 2092ED00 sts 237,R2
0042 .dbline 45
0042 ; LCDDR2=0x00;
0042 2092EE00 sts 238,R2
0046 .dbline 46
0046 ; LCDDR3=0x00;
0046 2092EF00 sts 239,R2
004A .dbline 47
004A ; LCDDR5=0x00;
004A 2092F100 sts 241,R2
004E .dbline 48
004E ; LCDDR6=0x00;
004E 2092F200 sts 242,R2
0052 .dbline 49
0052 ; LCDDR7=0x00;
0052 2092F300 sts 243,R2
0056 .dbline 50
0056 ; LCDDR8=0x00;
0056 2092F400 sts 244,R2
005A .dbline 51
005A ; LCDDR10=0x00;
005A 2092F600 sts 246,R2
005E .dbline 52
005E ; LCDDR11=0x00;
005E 2092F700 sts 247,R2
0062 .dbline 53
0062 ; LCDDR12=0x00;
0062 2092F800 sts 248,R2
0066 .dbline 54
0066 ; LCDDR13=0x00;
0066 2092F900 sts 249,R2
006A .dbline 55
006A ; LCDDR15=0x00;
006A 2092FB00 sts 251,R2
006E .dbline 56
006E ; LCDDR16=0x00;
006E 2092FC00 sts 252,R2
0072 .dbline 57
0072 ; LCDDR17=0x00;
0072 2092FD00 sts 253,R2
0076 .dbline 58
0076 ; LCDDR18=0x00;
0076 2092FE00 sts 254,R2
007A .dbline 59
007A ; LCDCRA=(1<<LCDEN);
007A 80E8 ldi R24,128
007C 8093E400 sts 228,R24
0080 .dbline -2
0080 L2:
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbend
0082 .dbfunc e main _main fV
.even
0082 _main::
0082 .dbline -1
0082 .dbline 63
0082 ; }
0082 ;
0082 ; void main(void)
0082 ; {
0082 .dbline 64
0082 ; port_init();
0082 BEDF xcall _port_init
0084 .dbline 65
0084 ; lcd_init();
0084 CDDF xcall _lcd_init
0086 28C0 xjmp L5
0088 L7:
0088 .dbline 67
0088 ; while(1)
0088 ; { while ( !(LCDCRA & (1<<LCDIF)) );
0088 L8:
0088 .dbline 67
0088 2090E400 lds R2,228
008C 24FE sbrs R2,4
008E FCCF rjmp L7
0090 X0:
0090 .dbline 68
0090 ; LCDCRA = (1<<LCDEN)|(1<<LCDIF);
0090 80E9 ldi R24,144
0092 8093E400 sts 228,R24
0096 .dbline 69
0096 ; LCDDR0=0xff;
0096 8FEF ldi R24,255
0098 8093EC00 sts 236,R24
009C .dbline 70
009C ; LCDDR1=0xff;
009C 8093ED00 sts 237,R24
00A0 .dbline 71
00A0 ; LCDDR2=0xff;
00A0 8093EE00 sts 238,R24
00A4 .dbline 72
00A4 ; LCDDR3=0xff;
00A4 8093EF00 sts 239,R24
00A8 .dbline 73
00A8 ; LCDDR5=0xff;
00A8 8093F100 sts 241,R24
00AC .dbline 74
00AC ; LCDDR6=0xff;
00AC 8093F200 sts 242,R24
00B0 .dbline 75
00B0 ; LCDDR7=0xff;
00B0 8093F300 sts 243,R24
00B4 .dbline 76
00B4 ; LCDDR8=0xff;
00B4 8093F400 sts 244,R24
00B8 .dbline 77
00B8 ; LCDDR10=0xff;
00B8 8093F600 sts 246,R24
00BC .dbline 78
00BC ; LCDDR11=0xff;
00BC 8093F700 sts 247,R24
00C0 .dbline 79
00C0 ; LCDDR12=0xff;
00C0 8093F800 sts 248,R24
00C4 .dbline 80
00C4 ; LCDDR13=0xff;
00C4 8093F900 sts 249,R24
00C8 .dbline 81
00C8 ; LCDDR15=0xff;
00C8 8093FB00 sts 251,R24
00CC .dbline 82
00CC ; LCDDR16=0xff;
00CC 8093FC00 sts 252,R24
00D0 .dbline 83
00D0 ; LCDDR17=0xff;
00D0 8093FD00 sts 253,R24
00D4 .dbline 84
00D4 ; LCDDR18=0xff;
00D4 8093FE00 sts 254,R24
00D8 .dbline 85
00D8 ; }
00D8 L5:
00D8 .dbline 66
00D8 D7CF xjmp L8
00DA X1:
00DA .dbline -2
00DA L3:
00DA .dbline 0 ; func end
00DA 0895 ret
00DC .dbend
00DC ;
00DC ; }
00DC ;
00DC ;
00DC ;
00DC ;
00DC ;
00DC ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -