📄 project.lst
字号:
(0422) '&',eChar_26,
(0423) 0x27,eChar_27,
(0424) '(',eChar_28,
(0425) ')',eChar_29,
(0426) '*',eChar_2A,
(0427) '+',eChar_2B,
(0428) ',',eChar_2C,
(0429) '-',eChar_2D,
(0430) '.',eChar_2E,
(0431) '/',eChar_2F,
(0432)
(0433) '0',eChar_30,
(0434) '1',eChar_31,
(0435) '2',eChar_32,
(0436) '3',eChar_33,
(0437) '4',eChar_34,
(0438) '5',eChar_35,
(0439) '6',eChar_36,
(0440) '7',eChar_37,
(0441) '8',eChar_38,
(0442) '9',eChar_39,
(0443)
(0444) ':',eChar_3A,
(0445) ';',eChar_3B,
(0446) '<',eChar_3C,
(0447) '=',eChar_3D,
(0448) '>',eChar_3E,
(0449) '?',eChar_3F,
(0450) '@',eChar_40,
(0451)
(0452) 'A',eChar_41,
(0453) 'B',eChar_42,
(0454) 'C',eChar_43,
(0455) 'D',eChar_44,
(0456) 'E',eChar_45,
(0457) 'F',eChar_46,
(0458) 'G',eChar_47,
(0459) 'H',eChar_48,
(0460) 'I',eChar_49,
(0461) 'J',eChar_4A,
(0462) 'K',eChar_4B,
(0463) 'L',eChar_4C,
(0464) 'M',eChar_4D,
(0465) 'N',eChar_4E,
(0466) 'O',eChar_4F,
(0467) 'P',eChar_50,
(0468) 'Q',eChar_51,
(0469) 'R',eChar_52,
(0470) 'S',eChar_53,
(0471) 'T',eChar_54,
(0472) 'U',eChar_55,
(0473) 'V',eChar_56,
(0474) 'W',eChar_57,
(0475) 'X',eChar_58,
(0476) 'Y',eChar_59,
(0477) 'Z',eChar_5A,
(0478)
(0479) '[',eChar_5B,
(0480) 0x5C,eChar_5C,
(0481) ']',eChar_5D,
(0482) '^',eChar_5E,
(0483) '_',eChar_5F,
(0484) 0x60,eChar_60,
(0485)
(0486) 'a',eChar_61,
(0487) 'b',eChar_62,
(0488) 'c',eChar_63,
(0489) 'd',eChar_64,
(0490) 'e',eChar_65,
(0491) 'f',eChar_66,
(0492) 'g',eChar_67,
(0493) 'h',eChar_68,
(0494) 'i',eChar_69,
(0495) 'j',eChar_6A,
(0496) 'k',eChar_6B,
(0497) 'l',eChar_6C,
(0498) 'm',eChar_6D,
(0499) 'n',eChar_6E,
(0500) 'o',eChar_6F,
(0501) 'p',eChar_70,
(0502) 'q',eChar_71,
(0503) 'r',eChar_72,
(0504) 's',eChar_73,
(0505) 't',eChar_74,
(0506) 'u',eChar_75,
(0507) 'v',eChar_76,
(0508) 'w',eChar_77,
(0509) 'x',eChar_78,
(0510) 'y',eChar_79,
(0511) 'z',eChar_7A,
(0512) 0xDD,eChar_DD,
(0513) 0xB0B4,cChar_B0B4,
(0514) 0xB2E2,cChar_B2E2,
(0515) 0xB3F5,cChar_B3F5,
(0516) 0xB4FD,cChar_B4FD,
(0517) 0xB5C8,cChar_B5C8,
(0518) 0xB7E4,cChar_B7E4,
(0519) 0xBBAF,cChar_BBAF,
(0520) 0xBCCC,cChar_BCCC,
(0521) 0xBCFC,cChar_BCFC,
(0522) 0xC3F9,cChar_C3F9,
(0523) 0xC6F7,cChar_C6F7,
(0524) 0xC7EB,cChar_C7EB,
(0525) 0xC8CE,cChar_C8CE,
(0526) 0xCABC,cChar_CABC,
(0527) 0xCAD4,cChar_CAD4,
(0528) 0xCEDE,cChar_CEDE,
(0529) 0xD0A7,cChar_D0A7,
(0530) 0xD0F8,cChar_D0F8,
(0531) 0xD2E2,cChar_D2E2,
(0532) 0xD6D0,cChar_D6D0,
(0533) 0xFFFF,0
(0534) };
(0535)
(0536) //display structure for Frame0
(0537) const struct LCDString Frame0[4] =
(0538) {
(0539) 0,0," ATmega16 GUI ",
(0540) 0,1," 初始化中,请等待",
(0541) 0,2," ",
(0542) 0,3," "
(0543) };
(0544)
(0545) //display structure for Frame1
(0546) const struct LCDString Frame1[4] =
(0547) {
(0548) 0,0," ATmega16 GUI ",
(0549) 0,1," LED测试 ",
(0550) 0,2," 蜂鸣器测试 ",
(0551) 0,3," "
(0552) };
(0553)
(0554) //display structure for Frame2
(0555) const struct LCDString Frame2[4] =
(0556) {
(0557) 0,0," ATmega16 GUI ",
(0558) 0,1," 无效按键,按任 ",
(0559) 0,2,"意键继续... ",
(0560) 0,3," ",
(0561) };
(0562)
(0563) //display structure for Frame3
(0564) const struct LCDString Frame3[4] =
(0565) {
(0566) 0,0," ATmega16 GUI ",
(0567) 0,1," LED测试 ",
(0568) 0,2," ENTER = START ",
(0569) 0,3," ESC = CANCEL "
(0570) };
(0571)
(0572) //display structure for Frame4
(0573) const struct LCDString Frame4[4] =
(0574) {
(0575) 0,0," ATmega16 GUI ",
(0576) 0,1," 蜂鸣器测试 ",
(0577) 0,2," ENTER = START ",
(0578) 0,3," ESC = CANCEL "
(0579) };
(0580)
(0581) //******************************************************************************
(0582) // Function : LCD_Window0_Process
(0583) // Input : none
(0584) // Output : none
(0585) // Description : Self Test and Progress Bar Process
(0586) //******************************************************************************
(0587) void LCD_Window0_Process(void)
(0588) {
(0589) static INT8U bCount = 0;
(0590) if(bWindowIndexPre != bWindowIndex)
091A 90200107 LDS R2,0x107
091C 90300108 LDS R3,0x108
091E 1432 CP R3,R2
091F F409 BNE 0x0921
0920 C03B RJMP 0x095C
(0591) {
(0592) Win_Show_Screen(Frame0);
0921 E206 LDI R16,0x26
0922 E012 LDI R17,2
0923 D20B RCALL _Win_Show_Screen
(0593) LCD_Show_Time();
0924 D2F2 RCALL _LCD_Show_Time
(0594) }
0925 C036 RJMP 0x095C
(0595) while(1)
(0596) {
(0597) if(OS_Task_Switch(cPrioLCD) == true)
0926 2700 CLR R16
0927 940E06FE CALL _OS_Task_Switch
0929 3001 CPI R16,1
092A E0E0 LDI R30,0
092B 071E CPC R17,R30
092C F409 BNE 0x092E
(0598) {
(0599) return;
092D C02F RJMP 0x095D
(0600) }
(0601) wLCD_Event = OS_Event_Pend(cPrioLCD);
092E 2700 CLR R16
092F 940E06B0 CALL _OS_Event_Pend
0931 93100137 STS _wLCD_Event+1,R17
0933 93000136 STS _wLCD_Event,R16
(0602) if(wLCD_Event == 0)
0935 3000 CPI R16,0
0936 0701 CPC R16,R17
0937 F409 BNE 0x0939
(0603) {
(0604) return;
0938 C024 RJMP 0x095D
(0605) }
(0606) if(wLCD_Event & (1 << eLCDTimer))
0939 90200136 LDS R2,_wLCD_Event
093B 90300137 LDS R3,_wLCD_Event+1
093D FE20 SBRS R2,0
093E C01D RJMP 0x095C
(0607) {
(0608) bWindowIndexPre = 0;
093F 2422 CLR R2
0940 92200108 STS 0x108,R2
(0609) LCD_Show_Time();
0942 D2D4 RCALL _LCD_Show_Time
(0610) LCD_Write_Char(2,bCount,eChar_DD);
0943 E785 LDI R24,0x75
0944 E096 LDI R25,6
0945 8399 STD Y+1,R25
0946 8388 STD Y+0,R24
0947 91200060 LDS R18,0x60
0949 E002 LDI R16,2
094A DF1C RCALL _LCD_Write_Char
(0611) if(bCount++ >= 16)
094B 90200060 LDS R2,0x60
094D 2433 CLR R3
094E 2D82 MOV R24,R2
094F 5F8F SUBI R24,0xFF
0950 93800060 STS 0x60,R24
0952 2D82 MOV R24,R2
0953 3180 CPI R24,0x10
0954 F038 BCS 0x095C
(0612) {
(0613) bCount = 0;
0955 2422 CLR R2
0956 92200060 STS 0x60,R2
(0614) bWindowIndex = 1; //Select Test Window
0958 E081 LDI R24,1
0959 93800107 STS 0x107,R24
(0615) return;
095B C001 RJMP 0x095D
095C CFC9 RJMP 0x0926
(0616) }
(0617) }
(0618) }
(0619) }
095D 9622 ADIW R28,2
095E 9508 RET
_LCD_Window1_Process:
095F 9722 SBIW R28,2
(0620)
(0621) //******************************************************************************
(0622) // Function : LCD_Window1_Process
(0623) // Input : none
(0624) // Output : none
(0625) // Description : Window Process for Invalid Key
(0626) //******************************************************************************
(0627) void LCD_Window1_Process(void)
(0628) {
(0629) static INT8U bIndex = 0;
(0630) if(bWindowIndexPre != bWindowIndex)
0960 90200107 LDS R2,0x107
0962 90300108 LDS R3,0x108
0964 1432 CP R3,R2
0965 F409 BNE 0x0967
0966 C086 RJMP 0x09ED
(0631) {
(0632) Win_Show_Screen(Frame1);
0967 E306 LDI R16,0x36
0968 E012 LDI R17,2
0969 D1C5 RCALL _Win_Show_Screen
(0633) LCD_Write_Char(1,1,eChar_10); //Display Cursor
096A E685 LDI R24,0x65
096B E096 LDI R25,6
096C 8399 STD Y+1,R25
096D 8388 STD Y+0,R24
096E E021 LDI R18,1
096F E001 LDI R16,1
0970 DEF6 RCALL _LCD_Write_Char
(0634) LCD_Show_Time();
0971 D2A5 RCALL _LCD_Show_Time
(0635) }
0972 C07A RJMP 0x09ED
(0636) while(1)
(0637) {
(0638) if(OS_Task_Switch(cPrioLCD) == true)
0973 2700 CLR R16
0974 940E06FE CALL _OS_Task_Switch
0976 3001 CPI R16,1
0977 E0E0 LDI R30,0
0978 071E CPC R17,R30
0979 F409 BNE 0x097B
(0639) {
(0640) return;
097A C073 RJMP 0x09EE
(0641) }
(0642) wLCD_Event = OS_Event_Pend(cPrioLCD);
097B 2700 CLR R16
097C 940E06B0 CALL _OS_Event_Pend
097E 93100137 STS _wLCD_Event+1,R17
0980 93000136 STS _wLCD_Event,R16
(0643) if(wLCD_Event == 0)
0982 3000 CPI R16,0
0983 0701 CPC R16,R17
0984 F409 BNE 0x0986
(0644) {
(0645) return;
0985 C068 RJMP 0x09EE
(0646) }
(0647) if(wLCD_Event & (1 << eLCDTimer))
0986 90200136 LDS R2,_wLCD_Event
0988 90300137 LDS R3,_wLCD_Event+1
098A FE20 SBRS R2,0
098B C005 RJMP 0x0991
(0648) {
(0649) bWindowIndexPre = bWindowIndex;
098C 90200107 LDS R2,0x107
098E 92200108 STS 0x108,R2
(0650) LCD_Show_Time();
0990 D286 RCALL _LCD_Show_Time
(0651) }
(0652) if(wLCD_Event & (1 << eLCDKeyEnter))
0991 90200136 LDS R2,_wLCD_Event
0993 90300137 LDS R3,_wLCD_Event+1
0995 FE24 SBRS R2,4
0996 C013 RJMP 0x09AA
(0653) {
(0654) if(bIndex == 0)
0997 90200061 LDS R2,0x61
0999 2022 TST R2
099A F421 BNE 0x099F
(0655) {
(0656) bWindowIndex = 3; //LED Test Window
099B E083 LDI R24,3
099C 93800107 STS 0x107,R24
(0657) }
099E C007 RJMP 0x09A6
(0658) else if(bIndex == 1)
099F 91800061 LDS R24,0x61
09A1 3081 CPI R24,1
09A2 F419 BNE 0x09A6
(0659) {
(0660) bWindowIndex = 4; //BUZZER Test Window
09A3 E084 LDI R24,4
09A4 93800107 STS 0x107,R24
(0661) }
(0662) bIndex = 0;
09A6 2422 CLR R2
09A7 92200061 STS 0x61,R2
(0663) return;
09A9 C044 RJMP 0x09EE
(0664) }
(0665) if(wLCD_Event & (1 << eLCDKeyEsc))
09AA 90200136 LDS R2,_wLCD_Event
09AC 90300137 LDS R3,_wLCD_Event+1
09AE FE21 SBRS R2,1
09AF C007 RJMP 0x09B7
(0666) {
(0667) bWindowIndex = 2; //无效按键页面
09B0 E082 LDI R24,2
09B1 93800107 STS 0x107,R24
(0668) bIndex = 0;
09B3 2422 CLR R2
09B4 92200061 STS 0x61,R2
(0669) return;
09B6 C037 RJMP 0x09EE
(0670) }
(0671) if(wLCD_Event & (1 << eLCDKeyUp))
09B7 90200136 LDS R2,_wLCD_Event
09B9 90300137 LDS R3,_wLCD_Event+1
09BB FE22 SBRS R2,2
09BC C015 RJMP 0x09D2
(0672) {
(0673) if(bIndex == 1)
09BD 91800061 LDS R24,0x61
09BF 3081 CPI R24,1
09C0 F489 BNE 0x09D2
(0674) {
(0675) bIndex = 0;
09C1 2422 CLR R2
09C2 92200061 STS 0x61,R2
(0676) LCD_Write_Char(1,1,eChar_10);//显示光标
09C4 E685 LDI R24,0x65
09C5 E096 LDI R25,6
09C6 8399 STD Y+1,R25
09C7 8388 STD Y+0,R24
09C8 E021 LDI R18,1
09C9 E001 LDI R16,1
09CA DE9C RCALL _LCD_Write_Char
(0677) LCD_Write_Char(2,1,eChar_20);//清除光标
09CB E885 LDI R24,0x85
09CC E096 LDI R25,6
09CD 8399 STD Y+1,R25
09CE 8388 STD Y+0,R24
09CF E021 LDI R18,1
09D0 E002 LDI R16,2
09D1 DE95 RCALL _LCD_Write_Char
(0678) }
(0679) }
(0680) if(wLCD_Event & (1 << eLCDKeyDown))
09D2 902
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -