📄 lcd.lst
字号:
__start:
__text_start:
2E EFCF LDI R28,0xFF
2F E0D4 LDI R29,4
30 BFCD OUT 0x3D,R28
31 BFDE OUT 0x3E,R29
32 51C0 SUBI R28,0x10
33 40D0 SBCI R29,0
34 EA0A LDI R16,0xAA
35 8308 STD Y+0,R16
36 2400 CLR R0
37 E0E0 LDI R30,0
38 E0F1 LDI R31,1
39 E011 LDI R17,1
3A 30E0 CPI R30,0
3B 07F1 CPC R31,R17
3C F011 BEQ 0x003F
3D 9201 ST R0,Z+
3E CFFB RJMP 0x003A
3F 8300 STD Z+0,R16
40 E5EC LDI R30,0x5C
41 E0F0 LDI R31,0
42 E0A0 LDI R26,0
43 E0B1 LDI R27,1
44 E010 LDI R17,0
45 35EC CPI R30,0x5C
46 07F1 CPC R31,R17
47 F021 BEQ 0x004C
48 95C8 LPM
49 9631 ADIW R30,1
4A 920D ST R0,X+
4B CFF9 RJMP 0x0045
4C 940E 0090 CALL _main
_exit:
4E CFFF RJMP _exit
FILE: C:\TDdownload\zxy\169demo\169LCD\lcd静态校验\lcd.c
(0001) // **************************************************************
(0002) // *** 广 州 天 河 双 龙 电 子 公 司 ***
(0003) // *** http://www.sl.com.cn ***
(0004) // *** 实验:lcd静态校验 ***
(0005) // *** 作者:zxy@sl.com.cn ***
(0006) // *** 2006年3月28日 ***
(0007) // *** 目标MCU:MEGA169 晶振:内部(INT)8MHZ ***
(0008) // **************************************************************
(0009) //实验效果:LCD所有的段静态显示
(0010) #include <iom169v.h>
(0011) #include <macros.h>
(0012) void port_init(void)
(0013) {
(0014) PORTA = 0x00;
_port_init:
4F 2422 CLR R2
50 B822 OUT 0x02,R2
(0015) DDRA = 0x00;
51 B821 OUT 0x01,R2
(0016) PORTB = 0x00;
52 B825 OUT 0x05,R2
(0017) DDRB = 0x00;
53 B824 OUT 0x04,R2
(0018) PORTC = 0x00;
54 B828 OUT 0x08,R2
(0019) DDRC = 0x00;
55 B827 OUT 0x07,R2
(0020) PORTD = 0x00;
56 B82B OUT 0x0B,R2
(0021) DDRD = 0x00;
57 B82A OUT 0x0A,R2
(0022) PORTE = 0x00;
58 B82E OUT 0x0E,R2
(0023) DDRE = 0x00;
59 B82D OUT 0x0D,R2
(0024) PORTF = 0x00;
5A BA21 OUT 0x11,R2
(0025) DDRF = 0x00;
5B BA20 OUT 0x10,R2
(0026) PORTG = 0x00;
5C BA24 OUT 0x14,R2
(0027) DDRG = 0x00;
5D BA23 OUT 0x13,R2
5E 9508 RET
(0028) }
(0029) void lcd_init(void)
(0030) {
(0031)
(0032) LCDCRA = (1<<LCDEN);
_lcd_init:
5F E880 LDI R24,0x80
60 9380 00E4 STS 0x00E4,R24
(0033) /* 晶体振荡器*/
(0034) /* 1/3 偏置和1/4 占空比 */
(0035) LCDCRB = (0<<LCDCS) | (1<<LCDMUX0)| (1<<LCDPM2)| (1<<LCDPM1)| (1<<LCDPM0);
62 E187 LDI R24,0x17
63 9380 00E5 STS 0x00E5,R24
(0036) /* 选择16 为预分频因子,7 为LCD 时钟分频数*/
(0037) /* 得到帧速率为 Hz */
(0038) LCDFRR = (1<<LCDPS2) |(1<<LCDPS1) |(0<<LCDPS0) |(1<<LCDCD2) | (1<<LCDCD1) | (0<<LCDCD0);
65 E686 LDI R24,0x66
66 9380 00E6 STS 0x00E6,R24
(0039) /* 设置输出电压为3.3 V */
(0040) LCDCCR = (1<<LCDCC3) | (1<<LCDCC2) | (1<<LCDCC1) | (1<<LCDCC0);
68 E08F LDI R24,0xF
69 9380 00E7 STS 0x00E7,R24
(0041) /* 使能LCD,缺省波形并禁止所有中断*/
(0042)
(0043) LCDDR0=0x00;
6B 2422 CLR R2
6C 9220 00EC STS 0x00EC,R2
(0044) LCDDR1=0x00;
6E 9220 00ED STS 0x00ED,R2
(0045) LCDDR2=0x00;
70 9220 00EE STS 0x00EE,R2
(0046) LCDDR3=0x00;
72 9220 00EF STS 0x00EF,R2
(0047) LCDDR5=0x00;
74 9220 00F1 STS 0x00F1,R2
(0048) LCDDR6=0x00;
76 9220 00F2 STS 0x00F2,R2
(0049) LCDDR7=0x00;
78 9220 00F3 STS 0x00F3,R2
(0050) LCDDR8=0x00;
7A 9220 00F4 STS 0x00F4,R2
(0051) LCDDR10=0x00;
7C 9220 00F6 STS 0x00F6,R2
(0052) LCDDR11=0x00;
7E 9220 00F7 STS 0x00F7,R2
(0053) LCDDR12=0x00;
80 9220 00F8 STS 0x00F8,R2
(0054) LCDDR13=0x00;
82 9220 00F9 STS 0x00F9,R2
(0055) LCDDR15=0x00;
84 9220 00FB STS 0x00FB,R2
(0056) LCDDR16=0x00;
86 9220 00FC STS 0x00FC,R2
(0057) LCDDR17=0x00;
88 9220 00FD STS 0x00FD,R2
(0058) LCDDR18=0x00;
8A 9220 00FE STS 0x00FE,R2
(0059) LCDCRA=(1<<LCDEN);
8C E880 LDI R24,0x80
8D 9380 00E4 STS 0x00E4,R24
8F 9508 RET
(0060) }
(0061)
(0062) void main(void)
(0063) {
(0064) port_init();
_main:
90 DFBE RCALL _port_init
(0065) lcd_init();
91 DFCD RCALL _lcd_init
92 C028 RJMP 0x00BB
(0066) while(1)
(0067) { while ( !(LCDCRA & (1<<LCDIF)) );
93 9020 00E4 LDS R2,0x00E4
95 FE24 SBRS R2,4
96 CFFC RJMP 0x0093
(0068) LCDCRA = (1<<LCDEN)|(1<<LCDIF);
97 E980 LDI R24,0x90
98 9380 00E4 STS 0x00E4,R24
(0069) LCDDR0=0xff;
9A EF8F LDI R24,0xFF
9B 9380 00EC STS 0x00EC,R24
(0070) LCDDR1=0xff;
9D 9380 00ED STS 0x00ED,R24
(0071) LCDDR2=0xff;
9F 9380 00EE STS 0x00EE,R24
(0072) LCDDR3=0xff;
A1 9380 00EF STS 0x00EF,R24
(0073) LCDDR5=0xff;
A3 9380 00F1 STS 0x00F1,R24
(0074) LCDDR6=0xff;
A5 9380 00F2 STS 0x00F2,R24
(0075) LCDDR7=0xff;
A7 9380 00F3 STS 0x00F3,R24
(0076) LCDDR8=0xff;
A9 9380 00F4 STS 0x00F4,R24
(0077) LCDDR10=0xff;
AB 9380 00F6 STS 0x00F6,R24
(0078) LCDDR11=0xff;
AD 9380 00F7 STS 0x00F7,R24
(0079) LCDDR12=0xff;
AF 9380 00F8 STS 0x00F8,R24
(0080) LCDDR13=0xff;
B1 9380 00F9 STS 0x00F9,R24
(0081) LCDDR15=0xff;
B3 9380 00FB STS 0x00FB,R24
(0082) LCDDR16=0xff;
B5 9380 00FC STS 0x00FC,R24
(0083) LCDDR17=0xff;
B7 9380 00FD STS 0x00FD,R24
(0084) LCDDR18=0xff;
FILE: <library>
B9 9380 00FE STS 0x00FE,R24
BB CFD7 RJMP 0x0093
BC 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -