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

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

?? ch375451.asm

?? CH372的單片機編程,VC編程,VB編程,dephi編程
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
;				MOV   R7,#0A0H				;160*256uS=40mS
;CH375_INIT_D2:	CLR   A
;CH375_INIT_D1:	DJNZ  ACC,CH375_INIT_D1		;延時1uS
;				DJNZ  R7,CH375_INIT_D2		;延時256uS
;				SJMP  CH375_INIT			;再次測試
;CH375_INIT_OK:
; 設置外部自定義的USB設備VID和PID,可選操作,不執行該命令則使用默認的VID和PID
;				MOV   DPTR,#CH375_CMD_PORT	;命令口地址
;				MOV   A,#CMD_SET_USB_ID
;				MOVX  @DPTR,A				;設置外部自定義的USB設備VID和PID,可選操作
;				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
;				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
;				MOV   A,#USB_VENDOR_ID_L
;				MOVX  @DPTR,A				;寫入廠商ID的低字節
;				MOV   A,#USB_VENDOR_ID_H
;				MOVX  @DPTR,A				;寫入廠商ID的高字節
;				MOV   A,#USB_DEVICE_ID_L
;				MOVX  @DPTR,A				;寫入設備ID的低字節
;				MOV   A,#USB_DEVICE_ID_H
;				MOVX  @DPTR,A				;寫入設備ID的高字節
;				NOP
; 設置USB工作模式
				MOV   DPTR,#CH375_CMD_PORT	;命令口地址
				MOV   A,#CMD_SET_USB_MODE
				MOVX  @DPTR,A				;設置USB工作模式
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
				MOV   A,#02H
				MOVX  @DPTR,A				;設置為使用內置固件的USB設備方式
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
CH375_INIT_WT:	MOVX  A,@DPTR				;返回操作狀態
				XRL   A,#CMD_RET_SUCCESS
				JNZ   CH375_INIT_WT			;等待操作成功,通常需要等待10uS-20uS
; 下述三條指令用于啟用中斷
				CLR   IT0					;置外部信號為低電平觸發
				SETB  PX0					;置高優先級
				CLR   IE0					;清中斷標志
				SETB  EX0					;允許CH375中斷
				RET
;
; 上傳數據塊子程序(通過批量端點上傳)
; ENTRY: R0 指向存放了準備上傳數據的緩沖區, R7 準備上傳的數據長度, 有效數值是0到64
; USE:   ACC, R0, R7, DPTR
;CH375_UPLOAD:	JB    FLAG_SEND_WAIT,CH375_UPLOAD	;如果正在等待發送(前次發送尚未完成)則繼續等待
;				CLR   EX0					;為了防止中途被中斷而亂了順序,必須先禁止中斷
;				MOV   DPTR,#CH375_CMD_PORT	;命令口地址
;				MOV   A,#CMD_WR_USB_DATA7
;				MOVX  @DPTR,A				;向USB端點2的發送緩沖區寫入數據塊
;				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
;				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
;				MOV   A,R7
;				MOVX  @DPTR,A				;首先寫入后續數據長度
;CH375_UPLOAD_1:	MOV   A,@R0
;				INC   R0
;				MOVX  @DPTR,A				;發送數據
;				DJNZ  R7,CH375_UPLOAD_1		;繼續發送數據直至結束
;				SETB  FLAG_SEND_WAIT		;置等待發送標志
;				SETB  EX0					;允許中斷
;				RET
;
; 上傳中斷數據子程序(通過中斷端點上傳),可選子程序
; 雖然每次可以上傳8個字節, 但是本程序中用于鍵盤中斷, 所以每次只需要傳輸兩個字節
; ENTRY: R0 中斷數據首字節, R7 中斷數據首字節
; USE:   ACC, R0, R7, DPTR
CH375_UP_INT2:	MOV   A,#0FFH
CH375_UP_INT2W:	JNB   FLAG_INT_WAIT,CH375_UP_INT2G	;前次中斷數據已經被PC機取走則繼續
				NOP							;等待發送中斷數據
				NOP
				NOP							;最多等待1毫秒,以24MHz時鐘計算
				NOP
				DJNZ  ACC,CH375_UP_INT2W	;繼續等待,滿1毫秒后超時
; 如果未與計算機相連,或者計算機中的應用程序未運行,則會出現超時,否則不超過1毫秒中斷數據就應該被PC機取走
CH375_UP_INT2G:	CLR   EX0					;為了防止中途被中斷而亂了順序,必須先禁止中斷
				MOV   DPTR,#CH375_CMD_PORT	;命令口地址
				MOV   A,#CMD_WR_USB_DATA5
				MOVX  @DPTR,A				;向USB端點1的發送緩沖區寫入數據塊
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
				MOV   A,#02H
				MOVX  @DPTR,A				;首先寫入后續數據長度
				MOV   A,R0
				MOVX  @DPTR,A				;發送中斷數據1
				MOV   A,R7
				MOVX  @DPTR,A				;發送中斷數據2
				SETB  FLAG_INT_WAIT			;置中斷等待標志
				SETB  EX0					;允許中斷
				RET
;
; 上傳中斷數據子程序(通過中斷端點上傳),可選子程序
; ENTRY: R0 指向存放了準備上傳數據的緩沖區, R7 準備上傳的數據長度, 有效數值是0到8
; USE:   ACC, R0, R7, DPTR
;CH375_UP_INT:	CLR   EX0					;為了防止中途被中斷而亂了順序,必須先禁止中斷
;				MOV   DPTR,#CH375_CMD_PORT	;命令口地址
;				MOV   A,#CMD_WR_USB_DATA5
;				MOVX  @DPTR,A				;向USB端點1的發送緩沖區寫入數據塊
;				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
;				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
;				MOV   A,R7
;				MOVX  @DPTR,A				;首先寫入后續數據長度
;CH375_UP_INT_1:	MOV   A,@R0
;				INC   R0
;				MOVX  @DPTR,A				;發送中斷數據
;				DJNZ  R7,CH375_UP_INT_1		;繼續發送數據直至結束
;				SETB  EX0					;允許中斷
;				RET
;
; 中斷服務子程序
; USE:   堆棧6字節, 工作寄存器組1的R0,R5,R6,R7
CH375_INTER:	PUSH  PSW					;現場保護
				PUSH  ACC
				PUSH  DPL
				PUSH  DPH
				SETB  RS0                   ;PSW.3,切換至工作寄存器組1
				MOV   DPTR,#CH375_CMD_PORT	;命令口地址
				MOV   A,#CMD_GET_STATUS
				MOVX  @DPTR,A				;獲取中斷狀態并取消中斷請求
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時,高于30MHz要多加2條指令
				NOP
				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
				MOVX  A,@DPTR				;返回操作狀態
				CLR   IE0					;清中斷標志,對應于INT0中斷
				CJNE  A,#USB_INT_EP2_OUT,CH375_INT_1	;批量端點下傳成功
				LJMP  CH375_DOWN_OK			; USB批量數據接收成功
CH375_INT_1:	CJNE  A,#USB_INT_EP2_IN,CH375_INT_2	;批量端點上傳成功
				LJMP  CH375_UP_OK			; USB批量數據發送成功
CH375_INT_2:	CJNE  A,#USB_INT_EP1_IN,CH375_INT_3	;中斷端點
				LJMP  CH375_UP_INT_OK		; USB中斷數據發送成功
CH375_INT_3:	SJMP  CH375_INT_RET
CH375_INT_RET:	POP   DPH
				POP   DPL
				POP   ACC
				POP   PSW					;恢復寄存器
				RETI						;中斷返回

; USB批量數據接收成功
CH375_DOWN_OK:	MOV   DPTR,#CH375_CMD_PORT	;命令口地址
				MOV   A,#CMD_RD_USB_DATA
				MOVX  @DPTR,A				;從當前USB中斷的端點緩沖區讀取數據塊,并釋放緩沖區
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時,高于30MHz要多加2條指令
				NOP
				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
				MOVX  A,@DPTR				;首先讀取后續數據長度
				MOV   R7,A
				JZ    CH375_INT_RET			;長度為0,沒有數據則直接退出,在某些應用中也可以將長度0定義為一種特殊命令
				CJNE  A,#CONST_CMD_LEN,CH375_INT_DOWN	;不是命令包
				LJMP  CH375_INT_CMD			;命令塊長度總是CONST_CMD_LEN
; 接收下傳的數據塊,每組數據的長度不超過64字節,例如總長度150個字節,則第1組和第2組各是64字節,第3組是剩余長度22字節
; 為了將數據塊與命令包區分開來,剩余長度不能等于CONST_CMD_LEN,可以用填充數據的辦法避免相同
CH375_INT_DOWN:	LJMP  CH375_INT_DN1			;接收數據塊

; 分析通過USB接收到的命令塊,長度總是CONST_CMD_LEN,首字節為命令,其余為可選的參數
CH375_INT_CMD:	MOV   R0,#CMD_BUFFER		;命令包緩沖區
CH375_INT_CMD0:	MOVX  A,@DPTR				;接收命令包的數據
				MOV   @R0,A
				INC   R0
				DJNZ  R7,CH375_INT_CMD0		;繼續接收命令包數據直至結束
; 分析通過USB接收到的命令塊,長度總是CONST_CMD_LEN,首字節為命令,其余為可選的參數
; 這種首字節為命令的結構是由單片機和計算機應用層之間自行定義的
				MOV   A,CMD_BUFFER			;取命令碼分析
				CPL   A
				XRL   A,CMD_BUFFER_NOT
				JNZ   CH375_INT_RET			;命令包反碼校驗錯誤
				MOV   A,CMD_BUFFER			;命令碼
				CJNE  A,#DEMO_UP_CLEAR,CH375_INT_CMD1
; 連續上傳數據塊之前進行同步,實際是讓單片機清除上傳緩沖區的已有內容
; 如果上一次進行數據上傳時,計算機提前結束上傳,那么有可能在上傳緩沖區中遺留有數據,所以在第二次上傳前需要清除上傳緩沖區
				MOV   DPTR,#CH375_CMD_PORT	;命令口地址
				MOV   A,#CMD_SET_ENDP7
				MOVX  @DPTR,A				;設置USB端點2的IN,也就是批量上傳端點
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
				MOV   A,#0EH				;同步觸發位不變
				MOVX  @DPTR,A				;設置USB端點2的IN正忙,返回NAK,也就是緩沖區中沒有數據
				LJMP  CH375_INT_RET

CH375_INT_CMD1:	CJNE  A,#DEMO_DOWN_DATA,CH375_INT_CMD2
; 連續下傳數據塊
; 假定事先約定, 該命令在第3字節和第4字節指定下面將下傳的數據應該存放在外部RAM的起始地址
				MOV   A,CMD_BUFFER_ADRL
				MOV   BUF_ADDR_L,A			;保存用于下傳的外部RAM緩沖區的地址
				MOV   A,CMD_BUFFER_ADRH
				MOV   BUF_ADDR_H,A
				MOV   A,CMD_BUFFER_LENL
				MOV   BUF_LEN_L,A			;假定事先約定第5和第6字節是將要下傳的數據長度
				MOV   A,CMD_BUFFER_LENH
				MOV   BUF_LEN_H,A
				LJMP  CH375_INT_RET

CH375_INT_CMD2:	CJNE  A,#DEMO_UP_DATA,CH375_INT_CMD3
; 連續上傳數據塊
; 假定事先約定, 該命令在第3字節和第4字節指定下面將上傳的數據應該來自外部RAM的起始地址
				MOV   A,CMD_BUFFER_ADRL
				MOV   BUF_ADDR_L,A			;保存用于上傳的外部RAM緩沖區的地址
				MOV   A,CMD_BUFFER_ADRH
				MOV   BUF_ADDR_H,A
				MOV   A,CMD_BUFFER_LENL
				MOV   BUF_LEN_L,A			;假定事先約定第5和第6字節是將要下傳的數據長度
				MOV   A,CMD_BUFFER_LENH
				MOV   BUF_LEN_H,A
; 數據上傳,準備第一組數據,每組數據的長度不超過64字節
				CLR   C
				MOV   A,BUF_LEN_L
				SUBB  A,#40H				;檢查剩余長度
				MOV   R5,A
				MOV   A,BUF_LEN_H
				SUBB  A,#00H
				MOV   R6,A
				JC    CH375_UP_SHORT		;剩余長度不足一個數據包的最大長度64
				MOV   R7,#40H
				MOV   BUF_LEN_L,R5
				MOV   BUF_LEN_H,R6
				SJMP  CH375_UP_FIRST
CH375_UP_SHORT:	MOV   R7,BUF_LEN_L
				MOV   BUF_LEN_L,#00H
				MOV   BUF_LEN_H,#00H
CH375_UP_FIRST:	MOV   DPTR,#CH375_CMD_PORT	;命令口地址
				MOV   A,#CMD_WR_USB_DATA7
				MOVX  @DPTR,A				;向USB端點2的發送緩沖區寫入數據塊
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
				MOV   DPTR,#CH375_DAT_PORT	;數據口地址
				MOV   A,R7					;每次最多上傳64個字節的數據
				MOVX  @DPTR,A				;首先寫入后續數據長度
; 下面是從MCS51單片機的內部RAM讀取數據并上傳,速度是外部RAM快3倍
				MOV   R0,BUF_ADDR_L			;由于演示板中沒有外部RAM,并且外部RAM的效率很低,所以用內部RAM示范
CH375_INT_UP0:	MOV   A,@R0					;從內部RAM緩沖區取出準備上傳的數據
				INC   R0					;在12MHz時鐘是這種方法每復制1字節大概需要6uS
				MOVX  @DPTR,A				;將數據寫入批量端點的發送緩沖區
				DJNZ  R7,CH375_INT_UP0		;繼續寫入數據直至結束
				LJMP  CH375_INT_RET
; 下面從MCS51單片機的外部RAM讀取數據并上傳,如果采用較高時鐘并且具有雙DPTR的單片機則速度可以快些
;CH375_INT_UP0:	MOV   DPL,BUF_ADDR_L		;由于MCS51單片機讀取外部RAM的效率很低
;				MOV   DPH,BUF_ADDR_H		;所以在12MHz時鐘是這種方法每復制1字節大概需要18uS
;				MOVX  A,@DPTR				;從外部RAM緩沖區取出準備上傳的數據
;				INC   DPTR					;緩沖區地址增量

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲综合一区| 国产精品高潮呻吟| 国产精品婷婷午夜在线观看| 亚洲一区二区视频| 国产夫妻精品视频| 欧美一级艳片视频免费观看| 亚洲欧美另类综合偷拍| 国产精品亚洲成人| 91精品国产丝袜白色高跟鞋| 亚洲六月丁香色婷婷综合久久| 国产一区二区三区日韩| 91精品麻豆日日躁夜夜躁| 亚洲视频一区二区免费在线观看| 91丨porny丨蝌蚪视频| 2019国产精品| 激情都市一区二区| 日韩三级免费观看| 美女一区二区视频| 日韩一区二区三区电影在线观看 | 丝袜美腿成人在线| 一本一道久久a久久精品综合蜜臀| 精品噜噜噜噜久久久久久久久试看 | 亚洲一区二区三区四区五区黄 | 国产精品中文字幕一区二区三区| 337p亚洲精品色噜噜噜| 五月天激情小说综合| 欧美日韩中文一区| 天天综合天天综合色| 欧美三级在线看| 亚洲风情在线资源站| 欧美日本在线看| 亚洲成a天堂v人片| 欧美一三区三区四区免费在线看| 亚洲 欧美综合在线网络| 欧美三级午夜理伦三级中视频| 尤物视频一区二区| 欧美在线不卡一区| 亚洲成人tv网| 日韩精品一区二区三区在线观看| 日日夜夜免费精品| 精品日韩欧美在线| 国产成人一级电影| 国产精品久久久久影院亚瑟| 91麻豆自制传媒国产之光| 亚洲欧美日韩国产另类专区| 欧美视频三区在线播放| 日韩精品成人一区二区三区| 精品乱码亚洲一区二区不卡| 国产成人丝袜美腿| 亚洲女人****多毛耸耸8| 欧美日韩在线三区| 国产一区不卡精品| 国产精品第一页第二页第三页| 91首页免费视频| 日韩国产在线观看一区| 久久久高清一区二区三区| 99久精品国产| 视频一区免费在线观看| 欧美大片在线观看一区| 成人精品国产免费网站| 亚洲一本大道在线| 久久亚洲免费视频| 欧美性猛片aaaaaaa做受| 久久国产生活片100| 中文字幕欧美一区| 91精品久久久久久蜜臀| 岛国精品一区二区| 亚洲成人免费观看| 国产日韩三级在线| 6080国产精品一区二区| 高清日韩电视剧大全免费| 夜夜嗨av一区二区三区四季av| 欧美成人精品福利| 欧美中文字幕一区| 国产一区三区三区| 亚洲高清一区二区三区| 国产欧美日韩另类一区| 5566中文字幕一区二区电影| 99视频一区二区| 国产乱色国产精品免费视频| 亚洲午夜av在线| 国产精品理论在线观看| 精品福利av导航| 欧美亚一区二区| a在线播放不卡| 国产制服丝袜一区| 三级欧美韩日大片在线看| 最新国产成人在线观看| 国产亚洲一区二区三区四区| 91精品国产手机| 欧美日韩国产一区| 欧美制服丝袜第一页| 99国产精品一区| 成人黄色在线看| 国产成人精品免费看| 激情五月激情综合网| 日韩高清一区在线| 午夜久久久久久| 一区二区欧美国产| 亚洲欧美日韩国产手机在线 | 蜜臀国产一区二区三区在线播放 | 欧美日本韩国一区二区三区视频| 91免费在线播放| www.亚洲免费av| 风间由美一区二区三区在线观看 | 免费在线一区观看| 日韩和欧美的一区| 日日夜夜精品视频天天综合网| 亚洲一区二区av在线| 亚洲综合色丁香婷婷六月图片| 中文字幕中文字幕一区| 国产精品久久久久久久久免费丝袜 | 国产精品一品二品| 国产最新精品免费| 国产精品一区二区三区四区 | 欧美日韩成人激情| 欧美日韩的一区二区| 3d动漫精品啪啪| 91精品欧美综合在线观看最新| 91精品综合久久久久久| 欧美一区二区福利视频| 日韩欧美成人一区| 久久影院午夜论| 国产精品少妇自拍| 亚洲人成亚洲人成在线观看图片 | 成人久久久精品乱码一区二区三区| 精品影视av免费| 国产一区二区三区久久久| 国产成人激情av| av午夜精品一区二区三区| 91色九色蝌蚪| 欧美高清视频在线高清观看mv色露露十八| 欧美影院午夜播放| 日韩精品资源二区在线| 国产亚洲污的网站| 亚洲狼人国产精品| 日本最新不卡在线| 国产精品一区久久久久| av午夜一区麻豆| 欧美日韩成人在线一区| xnxx国产精品| 国产精品国产自产拍高清av| 亚洲一区国产视频| 欧美aaa在线| 99久久精品免费看| 欧美一级高清片| www亚洲一区| 亚洲精品乱码久久久久久| 美女脱光内衣内裤视频久久影院| 国产91精品久久久久久久网曝门| 欧洲精品视频在线观看| 精品久久久三级丝袜| 亚洲欧美日韩电影| 国产毛片精品国产一区二区三区| 在线亚洲一区观看| 精品日韩在线观看| 一区二区三区欧美视频| 国内精品国产三级国产a久久| 一本大道av伊人久久综合| 精品国产乱码久久久久久久| 亚洲精品日日夜夜| 国产激情一区二区三区| 欧美猛男gaygay网站| 国产精品免费看片| 韩国毛片一区二区三区| 欧美亚洲丝袜传媒另类| 国产精品―色哟哟| 轻轻草成人在线| 欧美日韩一二区| 亚洲色图制服诱惑| 国产成人精品免费视频网站| 日韩一二三区视频| 亚洲精品写真福利| 国产成人亚洲精品狼色在线 | 亚洲色欲色欲www| 国产九色精品成人porny | 欧洲日韩一区二区三区| 欧美激情一区二区三区| 久久国产日韩欧美精品| 精品视频一区二区不卡| 一区二区三区中文字幕精品精品| 国产乱国产乱300精品| 日韩久久免费av| 欧美aaaaa成人免费观看视频| 欧美一a一片一级一片| 亚洲视频一区在线| 成人av高清在线| 欧美韩日一区二区三区四区| 国产综合色视频| 久久综合网色—综合色88| 日韩av网站免费在线| 69成人精品免费视频| 日韩经典中文字幕一区| 欧美老肥妇做.爰bbww视频| 亚洲在线免费播放| 欧美亚洲免费在线一区| 亚洲成a人片在线不卡一二三区| 91色porny蝌蚪| 亚洲午夜三级在线| 欧美人伦禁忌dvd放荡欲情|