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

📄 linkkey.lst

📁 ATmega16应用例子
💻 LST
📖 第 1 页 / 共 3 页
字号:
(0086) //#define UART_RCV_ON()		UCR |=  0x10
(0087) //#define UART_RCV_OFF()	UCR &= ~0x10
(0088) 
(0089) /*--------------------------------------------------------------------
(0090) 函数全称:50us 延时
(0091) 函数功能:当然是 50us延时 啦
(0092) 注意事项:基于7.3728M晶振,稍微有点误差
(0093) 提示说明:调用Delay50us(20),得到1ms延时
(0094) 输    入:	
(0095) 返    回:无 
(0096) --------------------------------------------------------------------*/
(0097) void delay50us(sint16 t)
(0098) {
(0099)     uint8 j;		
(0100)     for(;t>0;t--)			
    00AC C007      RJMP	0x00B4
(0101)         for(j=0;j<70;j++)	
    00AD 2744      CLR	R20
    00AE C001      RJMP	0x00B0
    00AF 9543      INC	R20
    00B0 3446      CPI	R20,0x46
    00B1 F3E8      BCS	0x00AF
    00B2 5001      SUBI	R16,1
    00B3 4010      SBCI	R17,0
    00B4 2422      CLR	R2
    00B5 2433      CLR	R3
    00B6 1620      CP	R2,R16
    00B7 0631      CPC	R3,R17
    00B8 F3A4      BLT	0x00AD
(0102)             ;
(0103) }
    00B9 940E0242  CALL	pop_gset1
    00BB 9508      RET
_delay50ms:
  i                    --> R20
  t                    --> R16
    00BC 940E023F  CALL	push_gset1
(0104) /*--------------------------------------------------------------------
(0105) 函数全称:50ms 延时
(0106) 函数功能:当然是 50ms延时 啦
(0107) 注意事项:基于7.3728M晶振,稍微有点误差
(0108) 提示说明:调用delay50ms(20),得到1s延时 
(0109) 输    入:
(0110) 返    回:无
(0111) --------------------------------------------------------------------*/
(0112) void delay50ms(sint16 t)
(0113) {
(0114) 	uint16 i; 
(0115) 	for(;t>0;t--)
    00BE C00B      RJMP	0x00CA
(0116) 		for(i=0;i<52642;i++)
    00BF 2744      CLR	R20
    00C0 2755      CLR	R21
    00C1 C002      RJMP	0x00C4
    00C2 5F4F      SUBI	R20,0xFF
    00C3 4F5F      SBCI	R21,0xFF
    00C4 3A42      CPI	R20,0xA2
    00C5 ECED      LDI	R30,0xCD
    00C6 075E      CPC	R21,R30
    00C7 F3D0      BCS	0x00C2
    00C8 5001      SUBI	R16,1
    00C9 4010      SBCI	R17,0
    00CA 2422      CLR	R2
    00CB 2433      CLR	R3
    00CC 1620      CP	R2,R16
    00CD 0631      CPC	R3,R17
    00CE F384      BLT	0x00BF
(0117) 			;								 
(0118) }
    00CF 940E0242  CALL	pop_gset1
    00D1 9508      RET
FILE: E:\ProductPro\M16SD\ICCAVR\LinkKeyBoard\LinkKeyBoard\LinkKey.c
(0001) /*********************************************************************
(0002) 	微 雪 电 子   WaveShare   http://www.waveShare.net            	
(0003) 		                                                            
(0004) 目    的:   测试"LinkKeyBoard"模块
(0005) 		
(0006) 目标系统:   基于任何AVR单片机
(0007) 
(0008) 应用软件:   ICCAVR          
(0009)   
(0010) 版    本:   Version 1.0                                                       
(0011) 
(0012) 圆版时间:   2005-03-2
(0013) 		
(0014) 开发人员:   SEE
(0015) 
(0016) 说    明:   若用于商业用途,请保留此段文字或注明代码来源
(0017) 		
(0018) 	深 圳 微 雪 电 子 保 留 所 有 的 版 权     
(0019) *********************************************************************/
(0020) 
(0021) /*01010101010101010101010101010101010101010101010101010101010101010101
(0022) ----------------------------------------------------------------------
(0023) 版本更新记录:
(0024) 
(0025) ----------------------------------------------------------------------
(0026) 
(0027) 接入模块: LinkKeyBoard
(0028) 接口说明: LinkKeyBoard			M16SmartGuider	   		
(0029) 				K0	  ---------    PA0
(0030) 				K1    ---------    PA1
(0031) 				K2 	  ---------    PA2
(0032) 				K3    ---------    PA3
(0033) 				K4    ---------    PA4
(0034) 				K5    ---------    PA5
(0035) 				K6    ---------    PA6
(0036) 				K7    ---------    PA7	
(0037) ----------------------------------------------------------------------
(0038) 注意事项:
(0039) 		* 将相应的LED-SW短接使能
(0040) ----------------------------------------------------------------------
(0041) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0042) 
(0043) #include <iom16v.h>
(0044) #include "E:\ICC_H\CmmICC.H"
(0045) 
(0046) #define	 LED_DDR  DDRB
(0047) #define	 LED_PORT PORTB
(0048) #define  KEY_DDR  DDRA
(0049) #define  KEY_PORT PORTA
(0050) #define  KEY_PIN  PINA
(0051) 
(0052) /*--------------------------------------------------------------------
(0053) 函数名称:
(0054) 函数功能:键盘检测
(0055) 注意事项:
(0056) 提示说明:
(0057) 输    入:
(0058) 返    回:
(0059) --------------------------------------------------------------------*/
(0060) void scanKey()
(0061) {
(0062) 
(0063) 	KEY_DDR = 0X01;
_scanKey:
    00D2 E081      LDI	R24,1
    00D3 BB8A      OUT	0x1A,R24
(0064) 	KEY_PORT = 0xFE;
    00D4 EF8E      LDI	R24,0xFE
    00D5 BB8B      OUT	0x1B,R24
(0065) 	delay50us(1);
    00D6 E001      LDI	R16,1
    00D7 E010      LDI	R17,0
    00D8 DFD1      RCALL	_delay50us
(0066) 	if(KEY_PIN==0xFC)
    00D9 B389      IN	R24,0x19
    00DA 3F8C      CPI	R24,0xFC
    00DB F411      BNE	0x00DE
(0067) 		LED_PORT=0x01;
    00DC E081      LDI	R24,1
    00DD BB88      OUT	0x18,R24
(0068) 	if(KEY_PIN==0xFA)	
    00DE B389      IN	R24,0x19
    00DF 3F8A      CPI	R24,0xFA
    00E0 F411      BNE	0x00E3
(0069) 		LED_PORT=0x02;
    00E1 E082      LDI	R24,2
    00E2 BB88      OUT	0x18,R24
(0070) 	if(KEY_PIN==0xF6)	
    00E3 B389      IN	R24,0x19
    00E4 3F86      CPI	R24,0xF6
    00E5 F411      BNE	0x00E8
(0071) 		LED_PORT=0x03;
    00E6 E083      LDI	R24,3
    00E7 BB88      OUT	0x18,R24
(0072) 	if(KEY_PIN==0xEE)	
    00E8 B389      IN	R24,0x19
    00E9 3E8E      CPI	R24,0xEE
    00EA F411      BNE	0x00ED
(0073) 		LED_PORT=0x04;
    00EB E084      LDI	R24,4
    00EC BB88      OUT	0x18,R24
(0074) 	if(KEY_PIN==0xDE)	
    00ED B389      IN	R24,0x19
    00EE 3D8E      CPI	R24,0xDE
    00EF F411      BNE	0x00F2
(0075) 		LED_PORT=0x05;
    00F0 E085      LDI	R24,5
    00F1 BB88      OUT	0x18,R24
(0076) 	if(KEY_PIN==0xBE)	
    00F2 B389      IN	R24,0x19
    00F3 3B8E      CPI	R24,0xBE
    00F4 F411      BNE	0x00F7
(0077) 		LED_PORT=0x06;
    00F5 E086      LDI	R24,6
    00F6 BB88      OUT	0x18,R24
(0078) 	if(KEY_PIN==0x7E)	
    00F7 B389      IN	R24,0x19
    00F8 378E      CPI	R24,0x7E
    00F9 F411      BNE	0x00FC
(0079) 		LED_PORT=0x07;
    00FA E087      LDI	R24,7
    00FB BB88      OUT	0x18,R24
(0080) 
(0081) 	KEY_DDR = 0X02;
    00FC E082      LDI	R24,2
    00FD BB8A      OUT	0x1A,R24
(0082) 	KEY_PORT = 0xFD;
    00FE EF8D      LDI	R24,0xFD
    00FF BB8B      OUT	0x1B,R24
(0083) 	delay50us(1);
    0100 E001      LDI	R16,1
    0101 E010      LDI	R17,0
    0102 DFA7      RCALL	_delay50us
(0084) 	if(KEY_PIN==0xF9)	
    0103 B389      IN	R24,0x19
    0104 3F89      CPI	R24,0xF9
    0105 F411      BNE	0x0108
(0085) 		LED_PORT=0x08;
    0106 E088      LDI	R24,0x8
    0107 BB88      OUT	0x18,R24
(0086) 	if(KEY_PIN==0xF5)	
    0108 B389      IN	R24,0x19
    0109 3F85      CPI	R24,0xF5
    010A F411      BNE	0x010D
(0087) 		LED_PORT=0x09;
    010B E089      LDI	R24,0x9
    010C BB88      OUT	0x18,R24
(0088) 	if(KEY_PIN==0xED)	
    010D B389      IN	R24,0x19
    010E 3E8D      CPI	R24,0xED
    010F F411      BNE	0x0112
(0089) 		LED_PORT=0x0A;
    0110 E08A      LDI	R24,0xA
    0111 BB88      OUT	0x18,R24
(0090) 	if(KEY_PIN==0xDD)	
    0112 B389      IN	R24,0x19
    0113 3D8D      CPI	R24,0xDD
    0114 F411      BNE	0x0117
(0091) 		LED_PORT=0x0B;
    0115 E08B      LDI	R24,0xB
    0116 BB88      OUT	0x18,R24
(0092) 	if(KEY_PIN==0xBD)	
    0117 B389      IN	R24,0x19
    0118 3B8D      CPI	R24,0xBD
    0119 F411      BNE	0x011C
(0093) 		LED_PORT=0x0C;
    011A E08C      LDI	R24,0xC
    011B BB88      OUT	0x18,R24
(0094) 	if(KEY_PIN==0x7D)	
    011C B389      IN	R24,0x19
    011D 378D      CPI	R24,0x7D
    011E F411      BNE	0x0121
(0095) 		LED_PORT=0x0D;
    011F E08D      LDI	R24,0xD
    0120 BB88      OUT	0x18,R24
(0096) 
(0097) 	KEY_DDR = 0X04;
    0121 E084      LDI	R24,4
    0122 BB8A      OUT	0x1A,R24
(0098) 	KEY_PORT = 0xFB;
    0123 EF8B      LDI	R24,0xFB
    0124 BB8B      OUT	0x1B,R24
(0099) 	delay50us(1);
    0125 E001      LDI	R16,1
    0126 E010      LDI	R17,0
    0127 DF82      RCALL	_delay50us
(0100) 	if(KEY_PIN==0xF3)	
    0128 B389      IN	R24,0x19
    0129 3F83      CPI	R24,0xF3
    012A F411      BNE	0x012D
(0101) 		LED_PORT=0x0E;
    012B E08E      LDI	R24,0xE
    012C BB88      OUT	0x18,R24
(0102) 	if(KEY_PIN==0xEB)	
    012D B389      IN	R24,0x19
    012E 3E8B      CPI	R24,0xEB
    012F F411      BNE	0x0132
(0103) 		LED_PORT=0x10;
    0130 E180      LDI	R24,0x10
    0131 BB88      OUT	0x18,R24
(0104) 	if(KEY_PIN==0xDB)	
    0132 B389      IN	R24,0x19
    0133 3D8B      CPI	R24,0xDB
    0134 F411      BNE	0x0137
(0105) 		LED_PORT=0x11;
    0135 E181      LDI	R24,0x11
    0136 BB88      OUT	0x18,R24
(0106) 	if(KEY_PIN==0xBB)	
    0137 B389      IN	R24,0x19
    0138 3B8B      CPI	R24,0xBB
    0139 F411      BNE	0x013C
(0107) 		LED_PORT=0x12;
    013A E182      LDI	R24,0x12
    013B BB88      OUT	0x18,R24
(0108) 	if(KEY_PIN==0x7B)	
    013C B389      IN	R24,0x19
    013D 378B      CPI	R24,0x7B
    013E F411      BNE	0x0141
(0109) 		LED_PORT=0x13;
    013F E183      LDI	R24,0x13
    0140 BB88      OUT	0x18,R24
(0110) 
(0111) 	KEY_DDR = 0X08;
    0141 E088      LDI	R24,0x8
    0142 BB8A      OUT	0x1A,R24
(0112) 	KEY_PORT = 0xF7;
    0143 EF87      LDI	R24,0xF7
    0144 BB8B      OUT	0x1B,R24
(0113) 	delay50us(1);	
    0145 E001      LDI	R16,1
    0146 E010      LDI	R17,0
    0147 DF62      RCALL	_delay50us
(0114) 	if(KEY_PIN==0xE7)	
    0148 B389      IN	R24,0x19
    0149 3E87      CPI	R24,0xE7
    014A F411      BNE	0x014D
(0115) 		LED_PORT=0x14;
    014B E184      LDI	R24,0x14
    014C BB88      OUT	0x18,R24
(0116) 	if(KEY_PIN==0xD7)	
    014D B389      IN	R24,0x19
    014E 3D87      CPI	R24,0xD7
    014F F411      BNE	0x0152
(0117) 		LED_PORT=0x15;
    0150 E185      LDI	R24,0x15
    0151 BB88      OUT	0x18,R24
(0118) 	if(KEY_PIN==0xB7)	
    0152 B389      IN	R24,0x19
    0153 3B87      CPI	R24,0xB7
    0154 F411      BNE	0x0157
(0119) 		LED_PORT=0x16;
    0155 E186      LDI	R24,0x16
    0156 BB88      OUT	0x18,R24
(0120) 	if(KEY_PIN==0x77)	
    0157 B389      IN	R24,0x19
    0158 3787      CPI	R24,0x77
    0159 F411      BNE	0x015C
(0121) 		LED_PORT=0x17;
    015A E187      LDI	R24,0x17
    015B BB88      OUT	0x18,R24
(0122) 
(0123) 	KEY_DDR = 0X10;
    015C E180      LDI	R24,0x10
    015D BB8A      OUT	0x1A,R24
(0124) 	KEY_PORT = 0xEF;
    015E EE8F      LDI	R24,0xEF
    015F BB8B      OUT	0x1B,R24
(0125) 	delay50us(1);	
    0160 E001      LDI	R16,1
    0161 E010      LDI	R17,0
    0162 DF47      RCALL	_delay50us
(0126) 	if(KEY_PIN==0xCF)	
    0163 B389      IN	R24,0x19
    0164 3C8F      CPI	R24,0xCF

⌨️ 快捷键说明

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