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

📄 lcd.lst

📁 AtMega169芯片对LCD进行测试的C程序
💻 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 + -