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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? s51.s

?? 筆者的《用M8L制作的89S51單片機(jī) USB下載線》在無(wú)線電2007年第9期已刊登過(guò)
?? S
字號(hào):
	.module s51.c
	.area text(rom, con, rel)
	.dbfile E:\學(xué)習(xí)專區(qū)\AVR專區(qū)\個(gè)人創(chuàng)作區(qū)\ICC\s51.c
	.dbfunc e SendInstrc _SendInstrc fV
;              n -> R20
;          nByte -> R16
	.even
_SendInstrc::
	rcall push_gset1
	.dbline -1
	.dbline 13
; ///////////////////////////////////////////////////////////////////////////////////////////////////
; //FID=02:AT89S51系列編程器 
; //實(shí)現(xiàn)編程的讀,寫,擦等細(xì)節(jié)
; ///////////////////////////////////////////////////////////////////////////////////////////////////
; #include <iom8v.h>
; #include <macros.h>
; #include<signal.h>
; #include<e51pro.h>
; #define uchar unsigned char 
; BYTE OutBuf[4];//發(fā)送命令緩沖
; BYTE InBuf[4];//接收緩沖
; void SendInstrc(uchar nByte)//用MOSI串行發(fā)送命令的同時(shí)用MISO接收相關(guān)數(shù)據(jù)
; {
	.dbline 14
; uchar n=0;
	clr R20
	.dbline 15
; DDRB=(1<<PB5)|(1<<PB3)|(1<<PB2);
	ldi R24,44
	out 0x17,R24
	.dbline 16
; SPCR=(1<<SPE)|(1<<MSTR)|(1<<SPR0);//SCK時(shí)鐘為fosc/16
	ldi R24,81
	out 0xd,R24
	.dbline 17
; for (n=0;n<nByte;n++)
	rjmp L5
L2:
	.dbline 18
; {
	.dbline 19
; SPDR=OutBuf[n];
	ldi R24,<_OutBuf
	ldi R25,>_OutBuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0xf,R2
L6:
	.dbline 21
L7:
	.dbline 20
	sbis 0xe,7
	rjmp L6
	.dbline 22
	ldi R24,<_InBuf
	ldi R25,>_InBuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	in R2,0xf
	std z+0,R2
	.dbline 23
L3:
	.dbline 17
	inc R20
L5:
	.dbline 17
	cp R20,R16
	brlo L2
	.dbline -2
L1:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r n 20 c
	.dbsym r nByte 16 c
	.dbend
	.dbfunc e InitPro02 _InitPro02 fV
	.even
_InitPro02::
	.dbline -1
	.dbline 26
; while (!(SPSR&(1<<SPIF)))
; ;
; InBuf[n]=SPDR;
; }
; }
; void InitPro02()//編程前的準(zhǔn)備工作
; {
	.dbline 27
; DDRB=0xff;
	ldi R24,255
	out 0x17,R24
	.dbline 28
; PORTB&=~BIT(PB2);
	cbi 0x18,2
	.dbline 29
; Delay_ms(10);
	ldi R16,10
	ldi R17,0
	rcall _Delay_ms
	.dbline 30
; PORTB|=BIT(PB2);
	sbi 0x18,2
	.dbline 31
; PORTC|=BIT(PB1);
	sbi 0x15,1
	.dbline 32
; PORTC&=~BIT(PB0);
	cbi 0x15,0
	.dbline 33
; Delay_ms(10);
	ldi R16,10
	ldi R17,0
	rcall _Delay_ms
	.dbline 34
; nAddress=0x0000;
	clr R2
	clr R3
	sts _nAddress+1,R3
	sts _nAddress,R2
	.dbline 35
; OutBuf[0]=0xac;//正好在這里可以安排DataSheet上所規(guī)定的
	ldi R24,172
	sts _OutBuf,R24
	.dbline 36
; OutBuf[1]=0x53;//Eanable Programming命令
	ldi R24,83
	sts _OutBuf+1,R24
	.dbline 37
; OutBuf[2]=0;
	sts _OutBuf+2,R2
	.dbline 38
; OutBuf[3]=0;
	sts _OutBuf+3,R2
	.dbline 39
; SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e ProOver02 _ProOver02 fV
	.even
_ProOver02::
	.dbline -1
	.dbline 43
; }
; 
; void ProOver02()//編程結(jié)束后的工作,設(shè)置合適的引腳電平
; {
	.dbline 44
; PORTC|=BIT(PB0);
	sbi 0x15,0
	.dbline 45
; PORTC&=~BIT(PB1);
	cbi 0x15,1
	.dbline 46
; DDRB=0x00;
	clr R2
	out 0x17,R2
	.dbline -2
L13:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Read02 _Read02 fc
	.even
_Read02::
	.dbline -1
	.dbline 50
; }
; uchar ComBuf[18];
; uchar Read02()
; {
	.dbline 51
; OutBuf[0]=0x20;
	ldi R24,32
	sts _OutBuf,R24
	.dbline 52
; OutBuf[1]=((uchar*)&nAddress)[1];
	lds R2,_nAddress+1
	sts _OutBuf+1,R2
	.dbline 53
; OutBuf[2]=((uchar*)&nAddress)[0];
	ldi R30,<_nAddress
	ldi R31,>_nAddress
	ldd R2,z+0
	sts _OutBuf+2,R2
	.dbline 54
; SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 55
; return InBuf[3];
	lds R16,_InBuf+3
	.dbline -2
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e ReadSign02 _ReadSign02 fV
	.even
_ReadSign02::
	.dbline -1
	.dbline 59
; }
; 
; void ReadSign02()//讀特征字
; {
	.dbline 60
; 	InitPro02();//先設(shè)置成編程狀態(tài)
	rcall _InitPro02
	.dbline 63
; //-----------------------------------------------------------------------------
; 	//根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào)
; 	OutBuf[0]=0x28;
	ldi R24,40
	sts _OutBuf,R24
	.dbline 64
; 	OutBuf[1]=0x00;
	clr R2
	sts _OutBuf+1,R2
	.dbline 65
; 	OutBuf[2]=0x00;
	sts _OutBuf+2,R2
	.dbline 66
; 	OutBuf[3]=0x00;
	sts _OutBuf+3,R2
	.dbline 67
; 	SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 68
; 	ComBuf[2]=InBuf[3];
	lds R2,_InBuf+3
	sts _ComBuf+2,R2
	.dbline 69
; 	OutBuf[1]=0x01;
	ldi R24,1
	sts _OutBuf+1,R24
	.dbline 70
; 	SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 71
; 	ComBuf[3]=InBuf[3];
	lds R2,_InBuf+3
	sts _ComBuf+3,R2
	.dbline 72
; 	OutBuf[1]=0x02;
	ldi R24,2
	sts _OutBuf+1,R24
	.dbline 73
; 	SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 74
; 	ComBuf[4]=InBuf[3];
	lds R2,_InBuf+3
	sts _ComBuf+4,R2
	.dbline 76
; //-----------------------------------------------------------------------------
; 	ProOver02();
	rcall _ProOver02
	.dbline -2
L19:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Erase02 _Erase02 fV
	.even
_Erase02::
	.dbline -1
	.dbline 80
; }
; 
; void Erase02()//擦除器件
; {
	.dbline 81
; 	InitPro02();
	rcall _InitPro02
	.dbline 84
; //-----------------------------------------------------------------------------
; 	//根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào)
; 	OutBuf[0]=0xac;
	ldi R24,172
	sts _OutBuf,R24
	.dbline 85
; 	OutBuf[1]=0x80;
	ldi R24,128
	sts _OutBuf+1,R24
	.dbline 86
; 	SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 87
; 	Delay_ms(50);	
	ldi R16,50
	ldi R17,0
	rcall _Delay_ms
	.dbline 89
; //-----------------------------------------------------------------------------
; 	ProOver02();
	rcall _ProOver02
	.dbline -2
L31:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Write02 _Write02 fc
;           Data -> R20
	.even
_Write02::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 93
; }
; 
; BOOL Write02(BYTE Data)//寫器件
; {
	.dbline 98
; 
; //-----------------------------------------------------------------------------
; 	//根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào)
; 	//寫一個(gè)單元
; 	OutBuf[0]=0x40;
	ldi R24,64
	sts _OutBuf,R24
	.dbline 99
; 	OutBuf[1]=((BYTE*)&nAddress)[1];
	lds R2,_nAddress+1
	sts _OutBuf+1,R2
	.dbline 100
; 	OutBuf[2]=((BYTE*)&nAddress)[0];
	ldi R30,<_nAddress
	ldi R31,>_nAddress
	ldd R2,z+0
	sts _OutBuf+2,R2
	.dbline 101
; 	OutBuf[3]=Data;
	sts _OutBuf+3,R20
	.dbline 102
; 	SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 103
; 	nTimeOut=0;
	clr R2
	clr R3
	sts _nTimeOut+1,R3
	sts _nTimeOut,R2
	rjmp L39
L38:
	.dbline 105
; 	while(Read02()!=Data)//效驗(yàn):循環(huán)讀,直到讀出與寫入的數(shù)相同
; 	{
	.dbline 106
; 		nTimeOut++;
	lds R24,_nTimeOut
	lds R25,_nTimeOut+1
	adiw R24,1
	sts _nTimeOut+1,R25
	sts _nTimeOut,R24
	.dbline 107
; 		if(nTimeOut>1000)//超時(shí)了
	ldi R24,1000
	ldi R25,3
	lds R2,_nTimeOut
	lds R3,_nTimeOut+1
	cp R24,R2
	cpc R25,R3
	brsh L41
	.dbline 108
; 		{
	.dbline 109
; 			return  0;
	clr R16
	rjmp L33
L41:
	.dbline 112
L39:
	.dbline 104
	rcall _Read02
	cp R16,R20
	brne L38
	.dbline 114
; 		}
; 				
; 	}
; //-----------------------------------------------------------------------------
; 	return 1;
	ldi R16,1
	.dbline -2
L33:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r Data 20 c
	.dbend
	.dbfunc e Lock02 _Lock02 fV
	.even
_Lock02::
	.dbline -1
	.dbline 117
; }
; void Lock02()//寫鎖定位
; {
	.dbline 120
; //-----------------------------------------------------------------------------
; 	//根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào)
; 	if(ComBuf[2]>=1)//ComBuf[2]為鎖定位
	lds R24,_ComBuf+2
	cpi R24,1
	brlo L44
	.dbline 121
; 	{
	.dbline 122
; 		InitPro02();
	rcall _InitPro02
	.dbline 123
; 		OutBuf[0]=0xac;
	ldi R24,172
	sts _OutBuf,R24
	.dbline 124
; 		OutBuf[1]=0xe1;
	ldi R24,225
	sts _OutBuf+1,R24
	.dbline 125
; 		SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 126
; 		Delay_ms(1);
	ldi R16,1
	ldi R17,0
	rcall _Delay_ms
	.dbline 127
; 	}
L44:
	.dbline 128
; 	if(ComBuf[2]>=2)
	lds R24,_ComBuf+2
	cpi R24,2
	brlo L48
	.dbline 129
; 	{
	.dbline 130
; 		InitPro02();
	rcall _InitPro02
	.dbline 131
; 		OutBuf[0]=0xac;
	ldi R24,172
	sts _OutBuf,R24
	.dbline 132
; 		OutBuf[1]=0xe2;
	ldi R24,226
	sts _OutBuf+1,R24
	.dbline 133
; 		SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 134
; 		Delay_ms(1);
	ldi R16,1
	ldi R17,0
	rcall _Delay_ms
	.dbline 135
; 	}
L48:
	.dbline 136
; 	if(ComBuf[2]==3)
	lds R24,_ComBuf+2
	cpi R24,3
	brne L52
	.dbline 137
; 	{
	.dbline 138
; 		InitPro02();
	rcall _InitPro02
	.dbline 139
; 		OutBuf[0]=0xac;
	ldi R24,172
	sts _OutBuf,R24
	.dbline 140
; 		OutBuf[1]=0xe3;
	ldi R24,227
	sts _OutBuf+1,R24
	.dbline 141
; 		SendInstrc(4);
	ldi R16,4
	rcall _SendInstrc
	.dbline 142
; 		Delay_ms(1);
	ldi R16,1
	ldi R17,0
	rcall _Delay_ms
	.dbline 143
; 	}
L52:
	.dbline 145
; //-----------------------------------------------------------------------------
; 	ProOver02();
	rcall _ProOver02
	.dbline -2
L43:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e PreparePro02 _PreparePro02 fV
	.even
_PreparePro02::
	.dbline -1
	.dbline 148
; }
; void PreparePro02()//設(shè)置pw中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù)
; {
	.dbline 149
; 	pw.fpInitPro=InitPro02;
	ldi R24,<PL_InitPro02
	ldi R25,>PL_InitPro02
	sts _pw+1,R25
	sts _pw,R24
	.dbline 150
; 	pw.fpReadSign=ReadSign02;
	ldi R24,<PL_ReadSign02
	ldi R25,>PL_ReadSign02
	sts _pw+2+1,R25
	sts _pw+2,R24
	.dbline 151
; 	pw.fpErase=Erase02;
	ldi R24,<PL_Erase02
	ldi R25,>PL_Erase02
	sts _pw+4+1,R25
	sts _pw+4,R24
	.dbline 152
; 	pw.fpWrite=Write02;
	ldi R24,<PL_Write02
	ldi R25,>PL_Write02
	sts _pw+6+1,R25
	sts _pw+6,R24
	.dbline 153
; 	pw.fpRead=Read02;
	ldi R24,<PL_Read02
	ldi R25,>PL_Read02
	sts _pw+8+1,R25
	sts _pw+8,R24
	.dbline 154
; 	pw.fpLock=Lock02;
	ldi R24,<PL_Lock02
	ldi R25,>PL_Lock02
	sts _pw+10+1,R25
	sts _pw+10,R24
	.dbline 155
; 	pw.fpProOver=ProOver02;
	ldi R24,<PL_ProOver02
	ldi R25,>PL_ProOver02
	sts _pw+12+1,R25
	sts _pw+12,R24
	.dbline -2
L56:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\學(xué)習(xí)專區(qū)\AVR專區(qū)\個(gè)人創(chuàng)作區(qū)\ICC\s51.c
_InBuf::
	.blkb 4
	.dbsym e InBuf _InBuf A[4:4]c
_OutBuf::
	.blkb 4
	.dbsym e OutBuf _OutBuf A[4:4]c
_ComBuf::
	.blkb 18
	.dbsym e ComBuf _ComBuf A[18:18]c
	.area func_lit
PL_ProOver02:	.word `_ProOver02
PL_Lock02:	.word `_Lock02
PL_Read02:	.word `_Read02
PL_Write02:	.word `_Write02
PL_Erase02:	.word `_Erase02
PL_ReadSign02:	.word `_ReadSign02
PL_InitPro02:	.word `_InitPro02

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一级二级| 99麻豆久久久国产精品免费| 国产欧美精品区一区二区三区| 不卡视频一二三| 男女视频一区二区| 成人黄页毛片网站| 亚洲午夜三级在线| 久久午夜免费电影| 在线视频一区二区免费| 国产乱妇无码大片在线观看| 亚洲成人黄色小说| 亚洲欧洲精品天堂一级| 日韩免费观看高清完整版| 一本到不卡免费一区二区| 六月丁香综合在线视频| 亚洲高清免费在线| 中文字幕一区二区日韩精品绯色| 日韩精品一区二区三区在线观看 | 久久久精品免费免费| 欧美日韩视频一区二区| 91亚洲资源网| 国产福利视频一区二区三区| 色天天综合色天天久久| 国产高清在线精品| 久久69国产一区二区蜜臀| 五月婷婷色综合| 亚洲国产综合人成综合网站| 亚洲欧洲一区二区在线播放| 国产无一区二区| 久久影院电视剧免费观看| 日韩一本二本av| 欧美日韩成人在线| 欧美视频三区在线播放| 91麻豆免费看片| 99久久精品国产一区二区三区| 国产精品一二二区| 国产精品中文欧美| 国产精品影视天天线| 韩国精品免费视频| 国模无码大尺度一区二区三区| 秋霞午夜鲁丝一区二区老狼| 天天综合色天天| 日韩av电影天堂| 日韩av一区二区三区| 日本欧美大码aⅴ在线播放| 亚洲bdsm女犯bdsm网站| 五月天亚洲婷婷| 丝袜亚洲另类欧美综合| 亚洲成人av电影| 偷偷要91色婷婷| 男人的天堂久久精品| 免费人成精品欧美精品| 麻豆91精品91久久久的内涵| 精品一区中文字幕| 国产麻豆精品在线观看| 丁香婷婷深情五月亚洲| www.一区二区| 欧美在线观看视频一区二区| 欧美性受xxxx| 亚洲午夜三级在线| 午夜精品久久久久久不卡8050| 日本系列欧美系列| 国产曰批免费观看久久久| 国产盗摄一区二区| 成人精品视频一区| 在线中文字幕一区| 日韩一区二区三| 国产日韩欧美高清| 亚洲男人的天堂一区二区| 亚洲不卡在线观看| 国产一区视频网站| 91年精品国产| 欧美一区二区视频在线观看2022| 精品日韩一区二区三区免费视频| 欧美国产精品中文字幕| 一区二区三区在线观看网站| 免费久久精品视频| 成人性生交大片免费看在线播放| 在线免费观看日本一区| 日韩欧美在线123| 国产精品第四页| 天堂一区二区在线免费观看| 国产一区二区三区免费播放| 99re这里只有精品6| 欧美一卡二卡在线| 日韩一区欧美小说| 理论片日本一区| 91丝袜呻吟高潮美腿白嫩在线观看| 7777精品伊人久久久大香线蕉的 | 久久综合色鬼综合色| 中文字幕一区二区三区乱码在线| 三级成人在线视频| 成人午夜av电影| 欧美肥妇毛茸茸| 国产精品福利电影一区二区三区四区| 亚洲福利视频三区| 成人黄色一级视频| 日韩一区二区三区免费看 | 国产精品女同一区二区三区| 亚洲成人资源网| 成人精品国产福利| 91麻豆精品久久久久蜜臀| 国产精品久久看| 精品一二线国产| 欧美日韩免费观看一区二区三区| 国产欧美精品一区二区色综合| 亚洲成人精品一区| 风间由美一区二区三区在线观看| 91精品国产欧美一区二区18| 亚洲美女淫视频| 国产99一区视频免费| 91精品国产91热久久久做人人| 亚洲三级在线观看| 成人精品免费网站| 久久亚洲综合av| 免费观看一级特黄欧美大片| 欧美性三三影院| 亚洲欧洲制服丝袜| 国产成人精品网址| 欧美精品一区二区三区蜜桃视频 | 99国产欧美另类久久久精品| 久久人人超碰精品| 蜜桃精品视频在线观看| 欧美日韩国产综合一区二区三区 | 本田岬高潮一区二区三区| 精品国产乱码久久久久久蜜臀| 石原莉奈在线亚洲二区| 91电影在线观看| 一区二区三区四区在线播放 | 日韩视频免费观看高清在线视频| 一个色在线综合| 一本色道久久综合精品竹菊| 中文欧美字幕免费| 国产激情精品久久久第一区二区 | 亚洲免费观看高清完整版在线| 懂色av中文字幕一区二区三区| 日本不卡一二三| 欧美日韩国产欧美日美国产精品| 一区二区三区在线观看国产| 日本道精品一区二区三区 | 精品国产欧美一区二区| 捆绑调教一区二区三区| 欧美成人艳星乳罩| 久久国产欧美日韩精品| 欧美mv和日韩mv的网站| 国产在线视频一区二区| 一本一本久久a久久精品综合麻豆| 99精品久久免费看蜜臀剧情介绍| 久久精品日韩一区二区三区| 国产精品1024| 国产精品久久久久久久第一福利| 成人黄色国产精品网站大全在线免费观看| 久久精品视频一区二区| 成人免费视频视频| 最新不卡av在线| 欧美性猛交xxxxxx富婆| 日韩av电影天堂| 欧美变态tickle挠乳网站| 狠狠久久亚洲欧美| 国产区在线观看成人精品| 99久久精品国产一区| 亚洲在线视频免费观看| 91精品国产综合久久精品图片| 韩国成人精品a∨在线观看| 国产精品污网站| 91福利在线免费观看| 爽好多水快深点欧美视频| 精品av久久707| 99视频精品免费视频| 亚洲国产一区二区a毛片| 91精品国产福利| 国产经典欧美精品| 一区二区高清免费观看影视大全 | 久久国产婷婷国产香蕉| 国产日韩欧美一区二区三区乱码 | 麻豆精品视频在线| 久久精品夜夜夜夜久久| 91丨porny丨在线| 青青国产91久久久久久| 国产精品无遮挡| 欧美日韩精品一区二区天天拍小说 | 欧日韩精品视频| 久久av老司机精品网站导航| 中文字幕中文字幕中文字幕亚洲无线| 91久久精品一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日韩亚洲欧美综合| 精品视频一区二区不卡| 国产精品一区二区果冻传媒| 亚洲精品国久久99热| 欧美精品一区二区久久婷婷| 色一情一伦一子一伦一区| 国产在线播放一区| 香蕉成人伊视频在线观看| 久久久777精品电影网影网| 欧美日韩一区中文字幕| 成人免费毛片a| 男女男精品视频| 亚洲欧美日韩在线| 久久久精品欧美丰满|