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

📄 test.lst

📁 mage16,LCM1604驱动8线,调试成功
💻 LST
📖 第 1 页 / 共 2 页
字号:
__text_start:
__start:
    0045 E5CF      LDI	R28,0x5F
    0046 E0D4      LDI	R29,4
    0047 BFCD      OUT	0x3D,R28
    0048 BFDE      OUT	0x3E,R29
    0049 51C0      SUBI	R28,0x10
    004A 40D0      SBCI	R29,0
    004B EA0A      LDI	R16,0xAA
    004C 8308      STD	Y+0,R16
    004D 2400      CLR	R0
    004E E9E5      LDI	R30,0x95
    004F E0F0      LDI	R31,0
    0050 E010      LDI	R17,0
    0051 39E5      CPI	R30,0x95
    0052 07F1      CPC	R31,R17
    0053 F011      BEQ	0x0056
    0054 9201      ST	R0,Z+
    0055 CFFB      RJMP	0x0051
    0056 8300      STD	Z+0,R16
    0057 E5E4      LDI	R30,0x54
    0058 E0F0      LDI	R31,0
    0059 E6A0      LDI	R26,0x60
    005A E0B0      LDI	R27,0
    005B E010      LDI	R17,0
    005C 38E9      CPI	R30,0x89
    005D 07F1      CPC	R31,R17
    005E F021      BEQ	0x0063
    005F 95C8      LPM
    0060 9631      ADIW	R30,1
    0061 920D      ST	R0,X+
    0062 CFF9      RJMP	0x005C
    0063 940E0066  CALL	_main
_exit:
    0065 CFFF      RJMP	_exit
_main:
    0066 9722      SBIW	R28,2
FILE: G:\lcd1604\avr16-1020-2\main.c
(0001) /*--------------------------------------------------*/
(0002) /*             AVR-ARM开发网论坛                    */
(0003) /*           http://www.avrarm.com                  */
(0004) /*            AVR生成代码测试程序                   */
(0005) /*--------------------------------------------------*/
(0006) /*     程序由AVR辅助开发工具V2.0.1自动生成          */
(0007) /*     AVR系统的处理器为:   ATMega16               */
(0008) /*     AVR系统的晶振频率:   8.0000 Mhz             */
(0009) /*--------------------------------------------------*/
(0010) 
(0011) #include <iom16v.h>
(0012) #include <macros.h>
(0013) #include "lcd.h"
(0014) #include "delay.h"
(0015) 
(0016) //-----------------------------------------------------------
(0017) //主函数
(0018) //-----------------------------------------------------------
(0019) void main(void)
(0020) {
(0021) 
(0022)    LCD16xx_init();
    0067 940E010C  CALL	_LCD16xx_init
(0023)    LCD16xx_clr();                     //显示清屏
    0069 940E012C  CALL	_LCD16xx_clr
(0024)    delay_nms(10); 
    006B E00A      LDI	R16,0xA
    006C E010      LDI	R17,0
    006D 940E00FD  CALL	_delay_nms
(0025)    LCD16xx_write_string(2,0,"Welcome to");
    006F E88A      LDI	R24,0x8A
    0070 E090      LDI	R25,0
    0071 8399      STD	Y+1,R25
    0072 8388      STD	Y+0,R24
    0073 2722      CLR	R18
    0074 E002      LDI	R16,2
    0075 940E0177  CALL	_LCD16xx_write_string
(0026)    LCD16xx_write_string(2,1,"www.avrarm.com!");
    0077 E78A      LDI	R24,0x7A
    0078 E090      LDI	R25,0
    0079 8399      STD	Y+1,R25
    007A 8388      STD	Y+0,R24
    007B E021      LDI	R18,1
    007C E002      LDI	R16,2
    007D 940E0177  CALL	_LCD16xx_write_string
(0027)    LCD16xx_write_string(2,2,"By Peter");
    007F E781      LDI	R24,0x71
    0080 E090      LDI	R25,0
    0081 8399      STD	Y+1,R25
    0082 8388      STD	Y+0,R24
    0083 E022      LDI	R18,2
    0084 E002      LDI	R16,2
    0085 940E0177  CALL	_LCD16xx_write_string
(0028)    LCD16xx_write_string(2,3,"2006.09.06");
    0087 E686      LDI	R24,0x66
    0088 E090      LDI	R25,0
    0089 8399      STD	Y+1,R25
    008A 8388      STD	Y+0,R24
    008B E023      LDI	R18,3
    008C E002      LDI	R16,2
    008D 940E0177  CALL	_LCD16xx_write_string
(0029)    delay_nms(1500);
    008F ED0C      LDI	R16,0xDC
    0090 E015      LDI	R17,5
    0091 940E00FD  CALL	_delay_nms
(0030)    LCD16xx_clr();                     //显示清屏
    0093 940E012C  CALL	_LCD16xx_clr
(0031)    delay_nms(1);
    0095 E001      LDI	R16,1
    0096 E010      LDI	R17,0
    0097 940E00FD  CALL	_delay_nms
    0099 C04A      RJMP	0x00E4
(0032) 
(0033)    while(1)
(0034)    {  LCD16xx_write_string(0,0,"PETER");
    009A E680      LDI	R24,0x60
    009B E090      LDI	R25,0
    009C 8399      STD	Y+1,R25
    009D 8388      STD	Y+0,R24
    009E 2722      CLR	R18
    009F 2700      CLR	R16
    00A0 940E0177  CALL	_LCD16xx_write_string
(0035)       LCD16xx_write_string(4,1,"PETER");
    00A2 E680      LDI	R24,0x60
    00A3 E090      LDI	R25,0
    00A4 8399      STD	Y+1,R25
    00A5 8388      STD	Y+0,R24
    00A6 E021      LDI	R18,1
    00A7 E004      LDI	R16,4
    00A8 940E0177  CALL	_LCD16xx_write_string
(0036)       LCD16xx_write_string(8,2,"PETER");
    00AA E680      LDI	R24,0x60
    00AB E090      LDI	R25,0
    00AC 8399      STD	Y+1,R25
    00AD 8388      STD	Y+0,R24
    00AE E022      LDI	R18,2
    00AF E008      LDI	R16,0x8
    00B0 940E0177  CALL	_LCD16xx_write_string
(0037)       LCD16xx_write_string(12,3,"PETER");
    00B2 E680      LDI	R24,0x60
    00B3 E090      LDI	R25,0
    00B4 8399      STD	Y+1,R25
    00B5 8388      STD	Y+0,R24
    00B6 E023      LDI	R18,3
    00B7 E00C      LDI	R16,0xC
    00B8 940E0177  CALL	_LCD16xx_write_string
(0038) 	  LCD16xx_write_string(0,3,"PETER");
    00BA E680      LDI	R24,0x60
    00BB E090      LDI	R25,0
    00BC 8399      STD	Y+1,R25
    00BD 8388      STD	Y+0,R24
    00BE E023      LDI	R18,3
    00BF 2700      CLR	R16
    00C0 940E0177  CALL	_LCD16xx_write_string
(0039)       LCD16xx_write_string(4,2,"PETER");
    00C2 E680      LDI	R24,0x60
    00C3 E090      LDI	R25,0
    00C4 8399      STD	Y+1,R25
    00C5 8388      STD	Y+0,R24
    00C6 E022      LDI	R18,2
    00C7 E004      LDI	R16,4
    00C8 940E0177  CALL	_LCD16xx_write_string
(0040)       LCD16xx_write_string(8,1,"PETER");
    00CA E680      LDI	R24,0x60
    00CB E090      LDI	R25,0
    00CC 8399      STD	Y+1,R25
    00CD 8388      STD	Y+0,R24
    00CE E021      LDI	R18,1
    00CF E008      LDI	R16,0x8
    00D0 940E0177  CALL	_LCD16xx_write_string
(0041)       LCD16xx_write_string(12,0,"PETER");
    00D2 E680      LDI	R24,0x60
    00D3 E090      LDI	R25,0
    00D4 8399      STD	Y+1,R25
    00D5 8388      STD	Y+0,R24
    00D6 2722      CLR	R18
    00D7 E00C      LDI	R16,0xC
    00D8 940E0177  CALL	_LCD16xx_write_string
(0042)       delay_nms(1500);
    00DA ED0C      LDI	R16,0xDC
    00DB E015      LDI	R17,5
    00DC 940E00FD  CALL	_delay_nms
(0043)       LCD16xx_clr();                     //显示清屏
    00DE 940E012C  CALL	_LCD16xx_clr
(0044)       delay_nms(1000);
    00E0 EE08      LDI	R16,0xE8
    00E1 E013      LDI	R17,3
    00E2 940E00FD  CALL	_delay_nms
    00E4 CFB5      RJMP	0x009A
    00E5 9622      ADIW	R28,2
    00E6 9508      RET
FILE: G:\lcd1604\avr16-1020-2\delay.c
(0001) /*--------------------------------------------------*/
(0002) /*             AVR-ARM开发网论坛                    */
(0003) /*           http://www.avrarm.com                  */
(0004) /*            AVR生成代码测试程序                   */
(0005) /*--------------------------------------------------*/
(0006) /*     程序由AVR辅助开发工具V2.0.1自动生成          */
(0007) /*     AVR系统的处理器为:   ATMega16               */
(0008) /*     AVR系统的晶振频率:   8.0000 Mhz             */
(0009) /*--------------------------------------------------*/
(0010) 
(0011) #include <iom16v.h>
(0012) #include "delay.h"
(0013) 
(0014) /*-----------------------------------------------------------------------
(0015) delay_us	   :1us延时函数
(0016) -----------------------------------------------------------------------*/
(0017) void delay_us(void)
(0018) {
(0019)    unsigned char t=2;
_delay_us:
  t                    --> R16
    00E7 E002      LDI	R16,2
(0020)    t--;
    00E8 950A      DEC	R16
    00E9 9508      RET
_delay_nus:
  t                    --> R20
    00EA 940E019C  CALL	push_gset1
    00EC 01A8      MOVW	R20,R16
(0021) }
(0022) 
(0023) /*-----------------------------------------------------------------------
(0024) delay_nus          :长延时函数
(0025) 
(0026) 输入参数: t        :延时时间 us
(0027) -----------------------------------------------------------------------*/
(0028) void delay_nus(unsigned int t)
(0029) {
    00ED C001      RJMP	0x00EF
(0030)     while (t--)
(0031)        delay_us();
    00EE DFF8      RCALL	_delay_us
    00EF 011A      MOVW	R2,R20
    00F0 5041      SUBI	R20,1
    00F1 4050      SBCI	R21,0
    00F2 2022      TST	R2
    00F3 F7D1      BNE	0x00EE
    00F4 2033      TST	R3
    00F5 F7C1      BNE	0x00EE
    00F6 940E019F  CALL	pop_gset1
    00F8 9508      RET
(0032) }
(0033) 
(0034) /*-----------------------------------------------------------------------
(0035) delay_ms	   :1ms延时函数
(0036) -----------------------------------------------------------------------*/
(0037) void delay_ms(void)
(0038) {
(0039)    delay_nus(1000);
_delay_ms:
    00F9 EE08      LDI	R16,0xE8
    00FA E013      LDI	R17,3
    00FB DFEE      RCALL	_delay_nus
    00FC 9508      RET
_delay_nms:
  t                    --> R20
    00FD 940E019C  CALL	push_gset1
    00FF 01A8      MOVW	R20,R16
(0040) }
(0041) 
(0042) /*-----------------------------------------------------------------------
(0043) delay_nms          :长延时函数
(0044) 
(0045) 输入参数: t        :延时时间 ms
(0046) -----------------------------------------------------------------------*/
(0047) void delay_nms(unsigned int t)
(0048) {
    0100 C001      RJMP	0x0102
(0049)     while (t--)
(0050)        delay_ms();
    0101 DFF7      RCALL	_delay_ms
    0102 011A      MOVW	R2,R20
    0103 5041      SUBI	R20,1
    0104 4050      SBCI	R21,0
    0105 2022      TST	R2
    0106 F7D1      BNE	0x0101
    0107 2033      TST	R3
    0108 F7C1      BNE	0x0101
    0109 940E019F  CALL	pop_gset1
    010B 9508      RET
FILE: G:\lcd1604\avr16-1020-2\lcd.c
(0001) /*--------------------------------------------------*/
(0002) /*             AVR-ARM开发网论坛                    */
(0003) /*           http://www.avrarm.com                  */
(0004) /*            AVR生成代码测试程序                   */
(0005) /*--------------------------------------------------*/
(0006) /*     程序由AVR辅助开发工具V2.0.1自动生成          */
(0007) /*     AVR系统的处理器为:   ATMega16               */
(0008) /*     AVR系统的晶振频率:   8.0000 Mhz             */
(0009) /*--------------------------------------------------*/
(0010) 
(0011) #include <iom16v.h>
(0012) #include <macros.h>
(0013) #include "lcd.h"
(0014) #include "delay.h"
(0015) 
(0016) /**********************************************************
(0017) 光标命令
(0018) LCD16xx_write_char(1,0x0e);    //光标开
(0019) LCD16xx_write_char(1,0x0d);    //光标所在字符闪烁
(0020) LCD16xx_write_char(1,0x0c);    //光标关
(0021) **********************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -