亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 51.lst

?? 筆者的《用M8L制作的89S51單片機 USB下載線》在無線電2007年第9期已刊登過
?? LST
?? 第 1 頁 / 共 3 頁
字號:
    0135 9380007E  STS	0x7E,R24
(0152) 	pw.fpWrite=Write02;
    0137 E28C      LDI	R24,0x2C
    0138 E090      LDI	R25,0
    0139 93900081  STS	0x81,R25
    013B 93800080  STS	0x80,R24
(0153) 	pw.fpRead=Read02;
    013D E28A      LDI	R24,0x2A
    013E E090      LDI	R25,0
    013F 93900083  STS	0x83,R25
    0141 93800082  STS	0x82,R24
(0154) 	pw.fpLock=Lock02;
    0143 E288      LDI	R24,0x28
    0144 E090      LDI	R25,0
    0145 93900085  STS	0x85,R25
    0147 93800084  STS	0x84,R24
(0155) 	pw.fpProOver=ProOver02;
    0149 E286      LDI	R24,0x26
    014A E090      LDI	R25,0
    014B 93900087  STS	0x87,R25
    014D 93800086  STS	0x86,R24
    014F 9508      RET
_Delay_us:
  a                    --> R20
  b                    --> R22
  us                   --> R16
    0150 D1EE      RCALL	push_gset2
FILE: E:\學習專區\AVR專區\個人創作區\ICC\51pro.c
(0001) //////////////////////////////////////////////////////////////////////////////////////////////////
(0002) //E51Pro.c
(0003) //Easy 51Pro編程器主程序,負責通訊,管理編程操作
(0004) ///////////////////////////////////////////////////////////////////////////////////////////////////
(0005) 
(0006) #include <iom8v.h>
(0007) #include <macros.h>
(0008) #include <e51pro.h>
(0009) #include <signal.h>
(0010) #define uchar unsigned char 
(0011) //BYTE ComBuf[18];//串口通訊數據緩存,發送和接收都使用
(0012) UINT nAddress;//ROM中地址計數
(0013) UINT nTimeOut;//超時計數
(0014) ProWork pw;//編程器一般操作
(0015) void Delay_us(BYTE  us)//微秒級延時<255us
(0016) {
(0017) char a=0;
    0151 2744      CLR	R20
(0018) char b=0;
    0152 2766      CLR	R22
(0019) for (a=0;a<7;a++)
    0153 C006      RJMP	0x015A
(0020) for (b=0;b<us;b++)
    0154 2766      CLR	R22
    0155 C001      RJMP	0x0157
    0156 9563      INC	R22
    0157 1760      CP	R22,R16
    0158 F3E8      BCS	0x0156
    0159 9543      INC	R20
    015A 3047      CPI	R20,7
    015B F3C0      BCS	0x0154
    015C D1DA      RCALL	pop_gset2
    015D 9508      RET
_Delay_ms:
  a                    --> R20
  b                    --> R22
  ms                   --> R16
    015E D1E0      RCALL	push_gset2
(0021) ;
(0022) }
(0023) void Delay_ms(UINT ms)//豪秒級的延時<65535ms
(0024) {
(0025) int a=0;
    015F 2744      CLR	R20
    0160 2755      CLR	R21
(0026) int b=0;
    0161 2766      CLR	R22
    0162 2777      CLR	R23
(0027) for (a=0;a<4000;a++)
(0028) for (b=0;b<ms;b++)
    0163 2766      CLR	R22
    0164 2777      CLR	R23
    0165 C002      RJMP	0x0168
    0166 5F6F      SUBI	R22,0xFF
    0167 4F7F      SBCI	R23,0xFF
    0168 1760      CP	R22,R16
    0169 0771      CPC	R23,R17
    016A F3D8      BCS	0x0166
    016B 5F4F      SUBI	R20,0xFF
    016C 4F5F      SBCI	R21,0xFF
    016D 3A40      CPI	R20,0xA0
    016E E0EF      LDI	R30,0xF
    016F 075E      CPC	R21,R30
    0170 F394      BLT	0x0163
    0171 D1C5      RCALL	pop_gset2
    0172 9508      RET
(0029) ;
(0030) }
(0031) 
(0032) 
(0033) void uart_init(void)  //串口通信
(0034) {
(0035) UCSRB|=(TXEN)|(1<<RXEN);
_uart_init:
    0173 B18A      IN	R24,0x0A
    0174 6183      ORI	R24,0x13
    0175 B98A      OUT	0x0A,R24
(0036) UBRRL=7;  //設置波特率  57600
    0176 E087      LDI	R24,7
    0177 B989      OUT	0x09,R24
(0037) UBRRH=0x00;
    0178 2422      CLR	R2
    0179 BC20      OUT	0x20,R2
(0038) UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
    017A B580      IN	R24,0x20
    017B 6886      ORI	R24,0x86
    017C BD80      OUT	0x20,R24
    017D 9508      RET
(0039) }
(0040) void uart_putchar(char x)//發送數據
(0041) {
(0042) while (!(UCSRA&0x20))
_uart_putchar:
  x                    --> R16
    017E 9B5D      SBIS	0x0B,5
    017F CFFE      RJMP	_uart_putchar
(0043) ;
(0044) UDR=x; 
    0180 B90C      OUT	0x0C,R16
    0181 9508      RET
(0045) }
(0046) 
(0047) BOOL WaitComm()//等待上位機的命令,18字節
(0048) {
(0049) 	BYTE n=0;
_WaitComm:
  n                    --> R16
    0182 2700      CLR	R16
(0050) 	while(!(UCSRA&0x80)){}//等待第一個字節
    0183 9B5F      SBIS	0x0B,7
    0184 CFFE      RJMP	0x0183
(0051) 	ComBuf[n]=UDR;
    0185 E688      LDI	R24,0x68
    0186 E090      LDI	R25,0
    0187 2FE0      MOV	R30,R16
    0188 27FF      CLR	R31
    0189 0FE8      ADD	R30,R24
    018A 1FF9      ADC	R31,R25
    018B B02C      IN	R2,0x0C
    018C 8220      STD	Z+0,R2
(0052) 	n++;
    018D 9503      INC	R16
(0053) 	for(n;n<=17;n++)
    018E C026      RJMP	0x01B5
(0054) 	{
(0055) 		nTimeOut=0;
    018F 2422      CLR	R2
    0190 2433      CLR	R3
    0191 92300089  STS	nTimeOut+1,R3
    0193 92200088  STS	nTimeOut,R2
    0195 C014      RJMP	0x01AA
(0056) 		while(!(UCSRA&0x80))
(0057) 		{
(0058) 			nTimeOut++;
    0196 91800088  LDS	R24,nTimeOut
    0198 91900089  LDS	R25,nTimeOut+1
    019A 9601      ADIW	R24,1
    019B 93900089  STS	nTimeOut+1,R25
    019D 93800088  STS	nTimeOut,R24
(0059) 			if(nTimeOut>10000)//后17個字節都有超時限制 
    019F E180      LDI	R24,0x10
    01A0 E297      LDI	R25,0x27
    01A1 90200088  LDS	R2,nTimeOut
    01A3 90300089  LDS	R3,nTimeOut+1
    01A5 1582      CP	R24,R2
    01A6 0593      CPC	R25,R3
    01A7 F410      BCC	0x01AA
(0060) 				return 0;
    01A8 2700      CLR	R16
    01A9 C00F      RJMP	0x01B9
    01AA 9B5F      SBIS	0x0B,7
    01AB CFEA      RJMP	0x0196
(0061) 		}
(0062) 		ComBuf[n]=UDR;
    01AC E688      LDI	R24,0x68
    01AD E090      LDI	R25,0
    01AE 2FE0      MOV	R30,R16
    01AF 27FF      CLR	R31
    01B0 0FE8      ADD	R30,R24
    01B1 1FF9      ADC	R31,R25
    01B2 B02C      IN	R2,0x0C
    01B3 8220      STD	Z+0,R2
    01B4 9503      INC	R16
    01B5 E181      LDI	R24,0x11
    01B6 1780      CP	R24,R16
    01B7 F6B8      BCC	0x018F
(0063) 	
(0064) 	}
(0065) 	return 1;
    01B8 E001      LDI	R16,1
    01B9 9508      RET
(0066) }
(0067) BOOL WaitResp()//等待上位機回應,1字節,有超時限制 
(0068) {
(0069) 	nTimeOut=0;
_WaitResp:
    01BA 2422      CLR	R2
    01BB 2433      CLR	R3
    01BC 92300089  STS	nTimeOut+1,R3
    01BE 92200088  STS	nTimeOut,R2
    01C0 C014      RJMP	0x01D5
(0070) 	while(!(UCSRA&0x80))
(0071) 	{
(0072) 		nTimeOut++;
    01C1 91800088  LDS	R24,nTimeOut
    01C3 91900089  LDS	R25,nTimeOut+1
    01C5 9601      ADIW	R24,1
    01C6 93900089  STS	nTimeOut+1,R25
    01C8 93800088  STS	nTimeOut,R24
(0073) 		if(nTimeOut>50000) 
    01CA E580      LDI	R24,0x50
    01CB EC93      LDI	R25,0xC3
    01CC 90200088  LDS	R2,nTimeOut
    01CE 90300089  LDS	R3,nTimeOut+1
    01D0 1582      CP	R24,R2
    01D1 0593      CPC	R25,R3
    01D2 F410      BCC	0x01D5
(0074) 		{
(0075) 			return 0;
    01D3 2700      CLR	R16
    01D4 C006      RJMP	0x01DB
    01D5 9B5F      SBIS	0x0B,7
    01D6 CFEA      RJMP	0x01C1
(0076) 		}
(0077) 	}
(0078) 	
(0079) 	ComBuf[0]=UDR;
    01D7 B02C      IN	R2,0x0C
    01D8 92200068  STS	ComBuf,R2
(0080) 	return 1;
    01DA E001      LDI	R16,1
    01DB 9508      RET
(0081) }
(0082) 
(0083) BOOL WaitData()//寫器件時等待上位機數據,18字節,有超時限制 
(0084) {
(0085) 	BYTE n;
(0086) 	for(n=0;n<=17;n++)
_WaitData:
  n                    --> R16
    01DC 2700      CLR	R16
    01DD C026      RJMP	0x0204
(0087) 	{
(0088) 		nTimeOut=0;
    01DE 2422      CLR	R2
    01DF 2433      CLR	R3
    01E0 92300089  STS	nTimeOut+1,R3
    01E2 92200088  STS	nTimeOut,R2
    01E4 C014      RJMP	0x01F9
(0089) 		while(!(UCSRA&0x80))
(0090) 		{
(0091) 			nTimeOut++;
    01E5 91800088  LDS	R24,nTimeOut
    01E7 91900089  LDS	R25,nTimeOut+1
    01E9 9601      ADIW	R24,1
    01EA 93900089  STS	nTimeOut+1,R25
    01EC 93800088  STS	nTimeOut,R24
(0092) 			if(nTimeOut>10000)
    01EE E180      LDI	R24,0x10
    01EF E297      LDI	R25,0x27
    01F0 90200088  LDS	R2,nTimeOut
    01F2 90300089  LDS	R3,nTimeOut+1
    01F4 1582      CP	R24,R2
    01F5 0593      CPC	R25,R3
    01F6 F410      BCC	0x01F9
(0093) 			{
(0094) 				return 0;
    01F7 2700      CLR	R16
    01F8 C00F      RJMP	0x0208
    01F9 9B5F      SBIS	0x0B,7
    01FA CFEA      RJMP	0x01E5
(0095) 			}
(0096) 		}
(0097) 		ComBuf[n]=UDR;
    01FB E688      LDI	R24,0x68
    01FC E090      LDI	R25,0
    01FD 2FE0      MOV	R30,R16
    01FE 27FF      CLR	R31
    01FF 0FE8      ADD	R30,R24
    0200 1FF9      ADC	R31,R25
    0201 B02C      IN	R2,0x0C
    0202 8220      STD	Z+0,R2
    0203 9503      INC	R16
    0204 E181      LDI	R24,0x11
    0205 1780      CP	R24,R16
    0206 F6B8      BCC	0x01DE
(0098) 	}
(0099) 	return 1;
    0207 E001      LDI	R16,1
    0208 9508      RET
_SendData:
  n                    --> R20
    0209 D137      RCALL	push_gset1
(0100) }
(0101) 
(0102) void SendData()//發送數據或回應操作完成,18字節
(0103) {
(0104) 	BYTE n=0;
    020A 2744      CLR	R20
(0105) 	for(n;n<=17;n++)
    020B C009      RJMP	0x0215
(0106) 	{
(0107) 	uart_putchar(ComBuf[n]);
    020C E688      LDI	R24,0x68
    020D E090      LDI	R25,0
    020E 2FE4      MOV	R30,R20
    020F 27FF      CLR	R31
    0210 0FE8      ADD	R30,R24
    0211 1FF9      ADC	R31,R25
    0212 8100      LDD	R16,Z+0
    0213 DF6A      RCALL	_uart_putchar
    0214 9543      INC	R20
    0215 E181      LDI	R24,0x11
    0216 1784      CP	R24,R20
    0217 F7A0      BCC	0x020C
    0218 D12B      RCALL	pop_gset1
    0219 9508      RET
(0108) 	}
(0109) }
(0110) 
(0111) void SendResp()//回應上位機1個字節,在寫器件函數中使用
(0112) {
(0113) 	uart_putchar(ComBuf[0]);
_SendResp:
    021A 91000068  LDS	R16,ComBuf
    021C DF61      RCALL	_uart_putchar
    021D 9508      RET
(0114) }
(0115) 
(0116) void RstPro()//編程器復位
(0117) {
(0118) 	pw.fpProOver();//直接編程結束
_RstPro:
    021E 91E00086  LDS	R30,0x86
    0220 91F00087  LDS	R31,0x87
    0222 D135      RCALL	xicall
(0119) 	SendData();//通知上位機,表示編程器就緒,可以直接用此函數因為協議號(ComBuf[0])還沒被修改,下同
    0223 DFE5      RCALL	_SendData
    0224 9508      RET
(0120) }
(0121) 
(0122) void ReadSign()//讀特征字
(0123) {
(0124) 	pw.fpReadSign();
_ReadSign:
    0225 91E0007C  LDS	R30,pw+2
    0227 91F0007D  LDS	R31,pw+3
    0229 D12E      RCALL	xicall
(0125) 	SendData();//通知上位機,送出讀出器件特征字
    022A DFDE      RCALL	_SendData
    022B 9508      RET
(0126) }
(0127) 
(0128) void Erase()//擦除器件
(0129) {
(0130) 	pw.fpErase();
_Erase:
    022C 91E0007E  LDS	R30,0x7E
    022E 91F0007F  LDS	R31,0x7F
    0230 D127      RCALL	xicall
(0131) 	SendData();//通知上位機,擦除了器件
    0231 DFD7      RCALL	_SendData
    0232 9508      RET
_Write:
  n                    --> R20
    0233 D10D      RCALL	push_gset1
(0132) }
(0133) 
(0134) void Write()//寫器件
(0135) {
(0136) 	BYTE n;
(0137) 	pw.fpInitPro();//編程前的準備工作
    0234 91E0007A  LDS	R30,pw
    0236 91F0007B  LDS	R31,pw+1
    0238 D11F      RCALL	xicall
(0138) 	SendData();//回應上位機表示進入寫器件狀態,可以發來數據
    0239 DFCF      RCALL	_SendData
    023A C047      RJMP	0x0282
(0139) 	while(1)
(0140) 	{
(0141) 		if(WaitData())//如果等待數據成功
    023B DFA0      RCALL	_WaitData
    023C 2300      TST	R16
    023D F409      BNE	0x023F
    023E C03D      RJMP	0x027C
(0142) 		{
(0143) 			if(ComBuf[0]==0x07)//判斷是否繼續寫
    023F 91800068  LDS	R24,ComBuf
    0241 3087      CPI	R24,7
    0242 F009      BEQ	0x0244

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费不卡在线观看| 97久久精品人人澡人人爽| 久久精品国产免费| av中文字幕一区| 精品三级在线看| 亚洲一区二区欧美| 波多野结衣91| 久久午夜羞羞影院免费观看| 亚洲成人自拍偷拍| 99精品久久久久久| 国产欧美1区2区3区| 免费人成黄页网站在线一区二区| 色又黄又爽网站www久久| 国产日韩精品一区二区三区在线| 奇米888四色在线精品| 91国偷自产一区二区开放时间| 午夜激情一区二区| 99国内精品久久| 久久久99精品免费观看不卡| 美女网站一区二区| 欧美日韩夫妻久久| 亚洲一区二区三区四区在线观看| av电影在线观看一区| 欧美韩国日本综合| 国产精品亚洲第一| 欧美国产一区二区在线观看| 国产精品中文字幕欧美| 久久久美女艺术照精彩视频福利播放| 青椒成人免费视频| 日韩欧美一级二级三级| 日本在线不卡一区| 日韩三级.com| 蜜臀91精品一区二区三区| 91精品免费在线观看| 日韩高清不卡一区二区| 7777精品久久久大香线蕉| 午夜久久久久久电影| 在线成人av影院| 裸体健美xxxx欧美裸体表演| 欧美成人午夜电影| 国产呦萝稀缺另类资源| 国产亚洲精品资源在线26u| 国产精品资源网站| 亚洲婷婷在线视频| 在线免费观看成人短视频| 亚洲图片一区二区| 69堂亚洲精品首页| 国产精品一区二区91| 国产精品入口麻豆原神| 色婷婷国产精品| 天堂影院一区二区| 久久综合九色欧美综合狠狠| 成人av一区二区三区| 一二三区精品福利视频| 91精品欧美久久久久久动漫| 国产精品一二三四| 亚洲色图在线看| 欧美精品1区2区3区| 精品一区二区在线播放| 国产精品伦理一区二区| 日本道精品一区二区三区| 奇米精品一区二区三区四区| 中文字幕乱码久久午夜不卡| 欧美三区在线视频| 国产馆精品极品| 一区二区三区电影在线播| 精品久久久久久久久久久院品网| 成人免费电影视频| 婷婷国产在线综合| 国产日本欧洲亚洲| 欧美日韩一级视频| 国产一区在线观看麻豆| 亚洲超碰精品一区二区| 国产欧美精品一区aⅴ影院| 精品视频一区三区九区| 国产精品综合av一区二区国产馆| 一区二区三区av电影 | 日韩制服丝袜av| 国产午夜精品福利| 欧美肥妇毛茸茸| 91免费小视频| 国产激情91久久精品导航| 视频一区视频二区在线观看| |精品福利一区二区三区| 欧美r级电影在线观看| 欧美少妇一区二区| 成人午夜精品在线| 韩国三级电影一区二区| 天天综合天天综合色| 亚洲欧美一区二区三区孕妇| 久久久精品国产免大香伊| 欧美一区二区视频网站| 色视频欧美一区二区三区| 国产91精品一区二区麻豆网站| 日韩av不卡在线观看| 亚洲精品成人悠悠色影视| 国产欧美1区2区3区| 久久综合九色综合欧美亚洲| 91精品国产91久久久久久最新毛片| 91久久精品一区二区二区| 成人免费毛片app| 国产激情一区二区三区四区| 狠狠色综合色综合网络| 免费不卡在线视频| 麻豆久久久久久久| 欧美aa在线视频| 日韩精品亚洲专区| 日产国产欧美视频一区精品| 亚洲成在人线在线播放| 亚洲mv在线观看| 亚洲成人综合视频| 无码av中文一区二区三区桃花岛| 亚洲一区二区三区三| 午夜精品久久久久久久久久久 | 久久精品亚洲国产奇米99| 日韩色视频在线观看| 91精品国产全国免费观看| 7799精品视频| 日韩三级.com| 久久午夜色播影院免费高清| 久久久久国产精品麻豆ai换脸| 国产视频一区在线播放| 国产欧美一区二区三区网站| 亚洲国产岛国毛片在线| 成人欧美一区二区三区黑人麻豆| 国产精品成人在线观看| 亚洲激情av在线| 亚洲bt欧美bt精品777| 日韩成人av影视| 国产一区二区三区在线观看免费| 国产九色精品成人porny | 国内精品写真在线观看 | 久久精品无码一区二区三区| 日韩欧美国产精品一区| 欧美老女人在线| 91精品国产高清一区二区三区蜜臀 | 国产目拍亚洲精品99久久精品| 久久久亚洲欧洲日产国码αv| 久久久久久亚洲综合影院红桃| 国产亲近乱来精品视频| 一区二区三区四区av| 日韩电影在线观看电影| 国产福利91精品一区二区三区| 国产69精品久久久久777| 日韩电影在线一区二区| 欧美一区二区女人| 久久中文娱乐网| 亚洲视频免费在线| 亚洲国产中文字幕| 日日夜夜精品视频免费| 国模娜娜一区二区三区| 91视频91自| 精品国偷自产国产一区| 亚洲男人的天堂在线观看| 另类成人小视频在线| 99精品欧美一区二区蜜桃免费 | 经典三级在线一区| 97久久超碰精品国产| 欧美一区二区日韩| 亚洲桃色在线一区| 极品少妇xxxx精品少妇| 色综合久久88色综合天天免费| 欧美成人性福生活免费看| 依依成人综合视频| 国产91在线观看| 91精品国产91久久综合桃花| 亚洲精品videosex极品| 国产精品一二三区| 91麻豆精品国产91久久久久| 亚洲人吸女人奶水| 国产成人免费9x9x人网站视频| 666欧美在线视频| 亚洲综合色婷婷| voyeur盗摄精品| 国产欧美精品国产国产专区| 免费成人小视频| 欧美精品一卡两卡| 亚洲一区二区三区三| 91在线观看免费视频| 国产日韩精品一区| 久久 天天综合| 日韩欧美在线123| 日日夜夜免费精品| 欧美日韩电影在线播放| 伊人色综合久久天天人手人婷| 99久久亚洲一区二区三区青草 | 中文字幕一区二区视频| 国产一区视频在线看| 日韩精品一区二区三区三区免费| 亚洲综合清纯丝袜自拍| 91香蕉视频黄| 亚洲精选在线视频| 91美女精品福利| 不卡电影免费在线播放一区| 久久久国产综合精品女国产盗摄| 裸体一区二区三区| 国产亚洲精品超碰| 日韩av电影免费观看高清完整版在线观看 | 蜜臀久久99精品久久久久宅男| 日本道色综合久久|