?? led8.lst
字號(hào):
__text_start:
__start:
002F E5CF LDI R28,0x5F
0030 E0D4 LDI R29,4
0031 BFCD OUT 0x3D,R28
0032 BFDE OUT 0x3E,R29
0033 51C0 SUBI R28,0x10
0034 40D0 SBCI R29,0
0035 EA0A LDI R16,0xAA
0036 8308 STD Y+0,R16
0037 2400 CLR R0
0038 E6EA LDI R30,0x6A
0039 E0F0 LDI R31,0
003A E010 LDI R17,0
003B 36EA CPI R30,0x6A
003C 07F1 CPC R31,R17
003D F011 BEQ 0x0040
003E 9201 ST R0,Z+
003F CFFB RJMP 0x003B
0040 8300 STD Z+0,R16
0041 E5E4 LDI R30,0x54
0042 E0F0 LDI R31,0
0043 E6A0 LDI R26,0x60
0044 E0B0 LDI R27,0
0045 E010 LDI R17,0
0046 35EE CPI R30,0x5E
0047 07F1 CPC R31,R17
0048 F021 BEQ 0x004D
0049 95C8 LPM
004A 9631 ADIW R30,1
004B 920D ST R0,X+
004C CFF9 RJMP 0x0046
004D 940E00A2 CALL _main
_exit:
004F CFFF RJMP _exit
_ChangeIntToHex:
dec --> R20
0050 940E00E4 CALL push_gset1
0052 01A8 MOVW R20,R16
FILE: F:\job\M16學(xué)習(xí)板\LED數(shù)碼管程序(實(shí)驗(yàn)四)\..\ICC_H\SOFTWARE.h
(0001) /*********************************************************************
(0002) 微 雪 電 子 WaveShare http://www.waveShare.net
(0003)
(0004) 目 的: 建立AVR的軟件提取庫(kù),增加各類補(bǔ)丁,方便系統(tǒng)程序移植
(0005)
(0006) 目標(biāo)系統(tǒng): 基于AVR單片機(jī)
(0007)
(0008) 應(yīng)用軟件: ICCAVR
(0009)
(0010) 版 本: Version 1.0
(0011)
(0012) 圓版時(shí)間: 2005-06-25
(0013)
(0014) 開(kāi)發(fā)人員: SEE
(0015)
(0016) 說(shuō) 明: 若用于商業(yè)用途,請(qǐng)保留此段文字或注明代碼來(lái)源
(0017)
(0018) 深 圳 微 雪 電 子 保 留 所 有 的 版 權(quán)
(0019) *********************************************************************/
(0020)
(0021) /*01010101010101010101010101010101010101010101010101010101010101010101
(0022) ----------------------------------------------------------------------
(0023) 版本更新記錄:
(0024)
(0025) ----------------------------------------------------------------------
(0026) 入口參數(shù)說(shuō)明:
(0027)
(0028) ----------------------------------------------------------------------
(0029) 待定參數(shù)說(shuō)明:
(0030)
(0031) ----------------------------------------------------------------------
(0032) 對(duì)外變量說(shuō)明:
(0033)
(0034) ----------------------------------------------------------------------
(0035) 對(duì)外函數(shù)說(shuō)明:
(0036)
(0037) ----------------------------------------------------------------------
(0038) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0039)
(0040) #ifndef Software_H
(0041) #define Software_H
(0042)
(0043) #include <math.h>
(0044) #include <string.h>
(0045)
(0046) /* 兼容一般程序員的常用寫法 */
(0047) typedef unsigned char uchar;
(0048) typedef unsigned int uint;
(0049) typedef unsigned long ulong;
(0050) typedef signed char schar;
(0051) typedef signed int sint;
(0052) typedef signed long slong;
(0053)
(0054) /* 為方便移植,建議使用下面寫法 */
(0055) typedef unsigned char bool;
(0056) typedef unsigned char bit;
(0057) typedef unsigned char uint8;
(0058) typedef unsigned int uint16;
(0059) typedef unsigned long uint32;
(0060) typedef signed char sint8;
(0061) typedef signed int sint16;
(0062) typedef signed long sint32;
(0063) typedef signed char int8;
(0064) typedef signed int int16;
(0065) typedef signed long int32;
(0066) //typedef const code;
(0067)
(0068) /* 一般程序定義的默認(rèn)值 */
(0069) #define NULL 0
(0070) #define EOF -1
(0071) #define TRUE 1
(0072) #define FALSE 0
(0073) #define ON 1
(0074) #define OFF 0
(0075) #define ENABLE 1
(0076) #define DISABLE 0
(0077) #define CRR 1
(0078) #define ERR 0
(0079) #define RIGHT 1
(0080) #define WRONG 0
(0081) #define SUCCESS 1
(0082) #define FAILURE 0
(0083) //#define PI 3.1415926 //3.1415926535897932
(0084)
(0085) /* 如果你手頭上的RAM實(shí)在很緊,不如嘗試下面的define~ */
(0086) //#define _CALLOC(a) ( (a *)calloc(n,sizeof(a)) )
(0087) //#define _MALLOC(a) ( (a *)malloc(sizeof(a)) )
(0088) //#define _MIN(a,b) ( (a) < (b) ? (a) : (b) )
(0089) //#define _MAX(a,b) ( (a) > (b) ? (a) : (b) )
(0090) //#define _EXCHANGE(a,b) { int t; t=a; a=b; b=t; }
(0091) //#define _TOLOWER(c) ( (c)+32 )
(0092) //#define _TOUPPER(c) ( (c)-32 )
(0093)
(0094) //#ifndef BIT
(0095) //#define BIT(x) ( 1<<(x) )
(0096) //#endif
(0097)
(0098) /*--------------------------------------------------------------------
(0099) 函數(shù)全稱:數(shù)據(jù)拆字
(0100) 函數(shù)功能:自己看~
(0101) 注意事項(xiàng):D<=999999,C<=6
(0102) 提示說(shuō)明:調(diào)用speaData(12,2),得到dataElem[0]=2,dataElem[1]=1
(0103) 輸 入:
(0104) 返 回:無(wú)
(0105) --------------------------------------------------------------------
(0106) uint8 dataElem[6];
(0107) void speaData(uint32 dat,sint8 len)
(0108) {
(0109) uint8 i;
(0110) uint32 j,y;
(0111) for(i=0,j=1;i<len;i++)
(0112) {
(0113) y=dat/j;
(0114) dataElem[i]=y%10;
(0115) j*=10;
(0116) }
(0117) }
(0118) /*--------------------------------------------------------------------
(0119) 函數(shù)全稱:十進(jìn)制強(qiáng)制轉(zhuǎn)換為十六進(jìn)制
(0120) 函數(shù)功能:
(0121) 注意事項(xiàng):
(0122) 提示說(shuō)明:調(diào)用changeIntToHex(33),return 0x33
(0123) 輸 入:
(0124) 返 回:
(0125) --------------------------------------------------------------------*/
(0126) #define changeIntToHex(dec) ( ( ((dec)/10) <<4 ) + ((dec)%10) )
(0127) /*--------------------------------------------------------------------
(0128) 函數(shù)全稱:十進(jìn)制強(qiáng)制轉(zhuǎn)換為十六進(jìn)制
(0129) 函數(shù)功能:
(0130) 注意事項(xiàng):
(0131) 提示說(shuō)明:調(diào)用changeIntToHex(33),return 0x33
(0132) 輸 入:
(0133) 返 回:
(0134) --------------------------------------------------------------------*/
(0135) void ChangeIntToHex( uchar *dec)
(0136) {
(0137) *dec = (((*dec)/10) <<4 )|((*dec)%10) ;
0053 01FA MOVW R30,R20
0054 8020 LDD R2,Z+0
0055 2433 CLR R3
0056 E01A LDI R17,0xA
0057 2D02 MOV R16,R2
0058 940E00C4 CALL mod8u
005A 2E40 MOV R4,R16
005B E01A LDI R17,0xA
005C 2D02 MOV R16,R2
005D 940E00C6 CALL div8u
005F 2F80 MOV R24,R16
0060 708F ANDI R24,0xF
0061 9582 SWAP R24
0062 2984 OR R24,R4
0063 01FA MOVW R30,R20
0064 8380 STD Z+0,R24
0065 940E00E7 CALL pop_gset1
0067 9508 RET
(0138) }
(0139) /*--------------------------------------------------------------------
(0140) 函數(shù)全稱:十進(jìn)制化為十六進(jìn)制,并以十進(jìn)制格式返回
(0141) 函數(shù)功能:
(0142) 注意事項(xiàng):傳參必須為 unsigned 類型,否則移位結(jié)果可能嚇你一跳
(0143) 提示說(shuō)明:調(diào)用converseIntToHex(33),return 21
(0144) 輸 入:
(0145) 返 回:
(0146) --------------------------------------------------------------------/
(0147) #define converseIntToHex(dec) ( ( ((dec)>>4) *10 ) + ((dec)%16) )
(0148) /*--------------------------------------------------------------------
(0149) 函數(shù)全稱:十六進(jìn)制強(qiáng)制轉(zhuǎn)換為十進(jìn)制
(0150) 函數(shù)功能:
(0151) 注意事項(xiàng):傳參必須為 unsigned 類型,否則移位結(jié)果可能嚇你一跳
(0152) 提示說(shuō)明:調(diào)用changeHexToInt(0x33),return 33
(0153) 輸 入:
(0154) 返 回:
(0155) --------------------------------------------------------------------*/
(0156) #define changeHexToInt(hex) ( ( ((hex)>>4) *10 ) + ((hex)%16) )
(0157) /*--------------------------------------------------------------------
(0158) 函數(shù)全稱:十六進(jìn)制強(qiáng)制轉(zhuǎn)換為十進(jìn)制
(0159) 函數(shù)功能:
(0160) 注意事項(xiàng):傳參必須為 unsigned 類型,否則移位結(jié)果可能嚇你一跳
(0161) 提示說(shuō)明:調(diào)用changeHexToInt(0x33),return 33
(0162) 輸 入:
(0163) 返 回:
(0164) --------------------------------------------------------------------*/
(0165) void ChangeHexToInt(uchar *hex)
(0166) {
(0167) *hex = (((*hex)>>4) *10 ) + ((*hex)&0x0f);
_ChangeHexToInt:
hex --> R16
0068 01F8 MOVW R30,R16
0069 8020 LDD R2,Z+0
006A 2433 CLR R3
006B 2D82 MOV R24,R2
006C 9582 SWAP R24
006D 708F ANDI R24,0xF
006E E09A LDI R25,0xA
006F 9F98 MUL R25,R24
0070 2D82 MOV R24,R2
0071 708F ANDI R24,0xF
0072 2C20 MOV R2,R0
0073 0E28 ADD R2,R24
0074 8220 STD Z+0,R2
0075 9508 RET
(0168) }
(0169) /*--------------------------------------------------------------------
(0170) 函數(shù)全稱:十六進(jìn)制化為十進(jìn)制,,并以十六進(jìn)制格式返回
(0171) 函數(shù)功能:
(0172) 注意事項(xiàng):
(0173) 提示說(shuō)明:調(diào)用converseHexToInt(0x33),return 0x51
(0174) 輸 入:
(0175) 返 回:
(0176) --------------------------------------------------------------------*/
(0177) #define converseHexToInt(hex) ( ( ((hex)/10) <<4 ) + ((hex)%10) )
(0178)
(0179) void Delay(void)
(0180) {
(0181) uchar i;
(0182) i = 200;
_Delay:
i --> R16
0076 EC08 LDI R16,0xC8
(0183) while(i--);
0077 2E20 MOV R2,R16
0078 2433 CLR R3
0079 5001 SUBI R16,1
007A 2022 TST R2
007B F7D9 BNE 0x0077
007C 9508 RET
_DelayMs:
j --> R20
i --> R16
007D 940E00E4 CALL push_gset1
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -