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

📄 project.lst

📁 AVR单片机 C语言程序设计经典实用
💻 LST
📖 第 1 页 / 共 5 页
字号:
(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 + -