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

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

?? rs232.asm

?? 用CY7C630芯片做USB轉串口的匯編原程序,里面有編譯生成的hex文件.寫入芯片就可使用.最高波特率為24
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
  ;******************************************************************
  ;  RS232的傳送與接收子程序 修改自serialb.asm
  ;******************************************************************
  
  ;label:          XPAGEON
  
  ;
  ; Variable memory allocations
  innerDelayOneCount:       equ 3Ch ; Delay One: Inner delay count 
  outerDelayOneCount:       equ 3Dh ; Delay One: Outer delay count 
  innerDelayCount:          equ 3Eh ; Delay: Inner delay count 
  outerDelayCount:          equ 3Fh ; Delay: Outer delay count 
  rxEnable:                 equ 40h ; Receiver Enabled Flag
  rxBitCount:               equ 42h ; Recieve Bits Count
  rxFrameCount:             equ 4dh ; Recieve Frame Count
  rxData:		          equ 46h ; Receive Data Holding Register
  rxBufPtr:                 equ 48h ; Receive Buffer Pointer
  rxFrameFlag:              equ 4Ah ; Framing Error Flag (0=No,1=Yes)
  rxPassCount:              equ 4Bh ; Transmit Buffer Pointer
  rxBuf:		          equ 50h ; Recieve Buffer Start
  rxBufEnd:                 equ 5Fh ; Recieve Buffer End
  txEnable:                 equ 4eh ; Transmiter Enabled Flag
  txBitCount:               equ 43h ; Transmit Bits Count
  txFrameCount:             equ 45h ; Transmit Frame Count
  txData:		          equ 47h ; Transmit Data Holding Register
  txBufPtr:                 equ 49h ; Transmit Buffer Pointer
  txBuf:		          equ 4Ch ; Transmit Buffer Start (4 Bytes)
  ;
  ; Constant declarations
  ; Transmit counter values
  txStart:	  equ 00h ; Start bit begin
  txBit0:	    equ 03h ; Start bit end
  txBit1:	    equ 07h ; Data bit 0 end
  txBit2:	    equ 0Ah ; Data bit 1 end
  txBit3:	    equ 0Dh ; Data bit 2 end
  txBit4:	    equ 10h ; Data bit 3 end
  txBit5:	    equ 14h ; Data bit 4 end
  txBit6:	    equ 17h ; Data bit 5 end
  txBit7:	    equ 1Ah ; Data bit 6 end
  txStop:	    equ 1Dh ; Data bit 7 end
  txComp:	    equ 20h ; Stop bit end
  ;
  txDataMask: equ FEh ; Mask to preserve inputs.
  ;
  ; Receive counter values
  rxStart:    equ 01h ; Start bit center
  rxBit0:	    equ 05h ; Data bit 0 center
  rxBit1:	    equ 09h ; Data bit 1 center
  rxBit2:	    equ 0Ch ; Data bit 2 center
  rxBit3:	    equ 0Fh ; Data bit 3 center
  rxBit4:	    equ 12h ; Data bit 4 center
  rxBit5:	    equ 16h ; Data bit 5 center
  rxBit6:	    equ 19h ; Data bit 6 center
  rxBit7:	    equ 1Ch ; Data bit 7 center
  rxStop:	    equ 1Fh ; Data bit 7 center
  rxComp:	    equ 22h ; Stop bit center
  lastrxBit:  equ 07h ; Last receive data bit count
  ;4
  ; Interrupt masks
  GPIO_intMask:	  equ 40h ; Mask for Port 0 GPIO interrupts.
  128us_intMask:    equ 02h ; Mask to enable 128us only.
  ;
  ; ASCII Characters for commands
  Car_Ret:          equ 0Dh ; Carriage Return Terminator
  Ln_Fd:            equ 0Ah ; Line Feed Terminator
  Asc_Space:        equ 20h ; ASCII Space Character
  ;
  ;************************************************************************
  ; If we are recieving a byte of data from the serial channel we need to
  ; go to the receive subroutine.
  
  Serial_ISR:
  	push	A                     ;
  	push X                      ;
  ;	mov	A, [rxEnable]           ; Load the receive enable flag.
  ;	cmp	A, 0 			              ; Check for receive in progress.
  ;	jnz	Increment_rxFrameCount  ; Yes, go receive.
  ;************************************************************************
  ; If we are sending a byte of data to the serial channel we need to
  ; go to the transmit subroutine.
  ;
  	mov	A, [txEnable]           ; Check for transmit in progress.
  	cmp	A, 0                    ;
  	jnz	Increment_txFrameCount  ; Yes, go transmit.
  	jmp	done_Serial             ; Default
  ;
  ; We are transmitting.
  Increment_txFrameCount:
  	inc	[txFrameCount]          ; Adjust frame count.
  	mov	A, [txFrameCount]       ; Put it in the accumulator
  	mov	[txBitCount], A         ; Save it as the new bit count
  	jmp	done_Serial             ; Finished
  ;
  ; We are receiving.
  ;Increment_rxFrameCount:
  	inc	[rxFrameCount]          ; Adjust frame count.
  	call	rxRoutine             ; Go get a character
  	pop X                       ;
  	mov	A, 00h                  ; Disable interrupts and return.
  	ipret	Global_Interrupt      ;
  ;
  ; Finish the interrupt handling
  done_Serial:
  	pop X
  	mov	A, 128us_intMask        ; Load 128us ISR Enable value
  	ipret	Global_Interrupt      ; Return and enable 128us ISR
  ;
  ;************************************************************************
  ; The GPIO interrupt will occur at the start of a receive data byte.
  ; The low going start bit will trigger the GPIO_ISR.
  ;
  GPIO_ISR:
  	push	A	; save the accumulator to stack
  	push	X	; save X on stack
  
  ; Three steps for detecting the start bit:
  ; 1.) Check that the receiver generated the interrupt.
  ;       iord    [Port0_Data]    
  ;       and     A, 80h          
  ;       jz      GPIO_ISR_Done   
  ;       jnz     GPIO_ISR_Done   
  
  ; 2.) Set the receive enable bit.
  	mov	A, 01h		          ; Load the accumulator.
          mov     [rxEnable], A             ; write to the receive enable flag.
  ;
  ; 3.) Clear the receive data register.
  	mov	A, 00h		          ; Clear the accumulator.
          mov     [rxData], A               ; Clear the receive data register.
  GPIO_ISR_Done:
          pop     x                         ; Restore the index register.
  	mov	A, 128us_intMask	  ; Load the 128us interrupt mask.
          ipret   Global_Interrupt          ; Return to caller.
                                            ; 128us interrupt enabled.
  ;
  ;************************************************************************
  ; During serial transfers data bit 0 is transmitted first.
  ; We will use Port 0 Bit 7 for receive and Bit 0 for transmit.
  ; Data will always be right shifted for either transmit or receive.
  ; Port 0 Bit 7 will be a falling edge sensitive GPIO_ISR input.
  ; Port 0 bits 6-0 and Port 1 bits 3-0 will be outputs.
  ;
  SerialInitialize:
  	push	A			        ; Save the accumulator.
  	push	X			        ; Save the index.
  	mov	A, FFh		      ; load accumulator with ones
  	iowr	Port0_Data		; output ones to port 0
  	iowr	Port1_Data		; output ones to port 1
  
  	mov	A, 00h		; load accumulator with zeros
  	iowr	Port0_Pullup	; enable port 0 pullups
  	iowr	Port1_Pullup	; enable port 1 pullups
  ;
  	iowr	Port0_Interrupt	; disable port 0 interrupts
  	iowr	Port1_Interrupt	; disable port 1 interrupts
  ;
  	mov	A, 08h		      ; load accumulator with med sink
  	iowr	Port0_Isink0	; minimum sink current Port0 bit 0
  ;
  ;	iowr	Watchdog		  ; clear watchdog timer
  ;
  ; Clear the serial channel counters.
  	mov	A, 00h
  	mov	[rxEnable], A	    ; Clear rxEnable Flag
  	mov	[rxBitCount], A	  ; Clear rx bit count.
  	mov	[rxFrameCount], A	; Clear rx frame counter.
  	mov	[rxBufPtr], A	    ; Clear rx buffer Pointer.
  	mov	[txEnable], A	    ; Clear txEnable Flag.
  	mov	[txBitCount], A	  ; Clear tx bit count.
  	mov	[txFrameCount], A	; Clear tx frame counter.
  	mov	[txBufPtr], A	    ; Clear tx buffer Pointer.
  
  	mov	A, 81h		        ; Enable port0 bit7 as input.
  	iowr	Port0_Data		  ; All other bits are outputs.
  	mov	A, 7Eh		        ; Select falling edge interrupt
  	iowr	Port0_Pullup	  ; on port0 bit7.
  	mov	A, 00h		        ;
  	iowr	Port0_Interrupt	; Disable port 0 bit 7 interrupt.
  
  	mov	[txBufPtr], A	      ; Reset tx buffer pointer.
  ; 	mov	[interrupt_mask], A ; Default all interrupts to disabled.
  	pop	X			              ; Restore the index.
  	pop	A			              ; Restore the accumulator.
  	ret				              ; Return to caller.
  
  ;************************************************************************
  ; TX_Data processing:
  ; This routine will write a byte of data.
  ; 1.) Send the active low Start bit.
  ; 2.) Send eight variable data bits.
  ; 3.) Send the active high Start bit.
  ; 4.) Stay in transmit until complete.
  ;************************************************************************
  ;
  txRoutine:
  ;  Prepare for the transmit.
          push    A                         ; save accumulator.
          mov     A, 01h                    ; Load txEnable Flag.
          mov     [txEnable], A             ; Store txEnable Flag.
          mov     A, [txFrameCount]         ; Get frame count.
          mov     [txBitCount], A           ; Save bit count.
  ;
  sendStart:
  ;  Write out the start bit. (active low)
  	mov	A, FEh		          ; Load tx Start bit.
          iowr    Port0_Data                ; Send tx Start bit.
          mov     A, 02h                    ; Load 128us ISR Enable value.
          iowr    Global_Interrupt          ; Enable 128us ISR.
  ;
  ;  Check the bit count and send a bit if required.
  check_tx_bit:
  	mov	A, [txBitCount]	; Get frame count
  	cmp	A, txBit0		; tx bit 0 at frame count=03h
  	jz	sendtxBit		; Go send data bit
  	cmp	A, txBit1		; tx bit 1 at frame count=07h
  	jz	sendtxBit		; Go send data bit
  	cmp	A, txBit2		; tx bit 2 at frame count=0Ah
  	jz	sendtxBit		; Go send data bit
  	cmp	A, txBit3		; tx bit 3 at frame count=0Dh
  	jz	sendtxBit		; Go send data bit
  	cmp	A, txBit4		; tx bit 4 at frame count=10h
  	jz	sendtxBit		; Go send data bit
  	cmp	A, txBit5		; tx bit 5 at frame count=14h
  	jz	sendtxBit		; Go send data bit.
  	cmp	A, txBit6		; tx bit 6 at frame count=17h.
  	jz	sendtxBit		; Go send data bit.
  	cmp	A, txBit7		; tx bit 7 at frame count=1Ah.
  	jz	sendtxBit		; Go send data bit.
  	cmp	A, txStop		; tx Stop at frame count=1Dh.
  	jz	sendStop		; Go send stop bit.
  	cmp	A, txComp		; tx Stop at frame count=20h.
  	jz	txEnd			  ; Go send end transmit.
  	jmp	check_tx_bit	; Wait for the next interrupt.
  ;
  sendtxBit:
  ;  Transmit the current data bit and adjust for next pass.
  	mov	A, [txData]		  ; Get the current data.
  	or	A, txDataMask	  ; Mask out inputs.
  	iowr	Port0_Data	  ; Output the current data bit.
  	mov	A, [txData]		  ; Get the current data.
  	asr	A			          ; Align next data bit.
  	mov	[txData], A		  ; Save adjusted data.
  	mov	A, FFh		      ; Fill the accumulator.
  	mov	[txBitCount], A ; Write to bit counter.
  	jmp	check_tx_bit	  ; Wait for next bit time.
  ;
  sendStop:
  ;  The data has been sent, now send the stop bit.
  	mov	A, FFh		      ; Load stop bit.
  	iowr	Port0_Data		; Send stop bit.
  	jmp	check_tx_bit	  ; Go to end of transmit.
  ;
  txEnd:
  ;  The last data bit has been sent.
  ;  Clean up and return. 
  ;	mov	A, 00h		          ; Clear the accumulator.
  ;       mov     [interrupt_mask],A        ; Load into the mask.
  	mov	a,[interrupt_mask]
          iowr    Global_Interrupt          ; Disable all interrupts.
  	mov	A, 00h		          ; Load tx Start bit.
          mov     [txBitCount], A           ; Clear tx bit count.
  	mov	[txFrameCount], A	  ; Clear tx frame counter.
          mov     [txEnable], A             ; Clear the tx enadle flag.
  	mov	[rxFrameCount], A	  ; Clear rx frame counter.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩色视频在线观看| 99久久99久久精品免费观看| 国产精品小仙女| 欧洲一区在线观看| 久久欧美一区二区| 亚洲国产精品精华液网站| 韩国理伦片一区二区三区在线播放 | 欧美视频在线一区| 久久久久久久久97黄色工厂| 香蕉影视欧美成人| 91丨国产丨九色丨pron| 久久久久久亚洲综合影院红桃| 亚洲最大的成人av| 97aⅴ精品视频一二三区| 欧美一区二区免费视频| 亚洲一区二区av电影| 成av人片一区二区| 久久精品人人做人人综合| 免费久久精品视频| 欧美一级日韩一级| 日日骚欧美日韩| 欧美色窝79yyyycom| 中文字幕一区二| 不卡视频免费播放| 国产精品欧美一级免费| 国产精品99久久久久久宅男| ww亚洲ww在线观看国产| 另类调教123区| 欧美大黄免费观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美二区乱c少妇| 日本欧美一区二区三区| 91精品国产欧美一区二区| 日韩一区二区麻豆国产| 91麻豆高清视频| 国产亚洲精久久久久久| 狠狠v欧美v日韩v亚洲ⅴ| 日韩丝袜情趣美女图片| 免费成人在线网站| 日韩欧美三级在线| 麻豆精品一区二区三区| 久久亚洲免费视频| 国产91丝袜在线播放| 亚洲欧美综合在线精品| 色婷婷一区二区| 天天av天天翘天天综合网色鬼国产| 欧美日韩在线综合| 美女精品一区二区| 国产午夜亚洲精品午夜鲁丝片| 岛国av在线一区| 一区二区三区四区激情 | 色综合天天性综合| 一区二区三区久久| 91精品国产一区二区| 久久se精品一区二区| 久久久99久久精品欧美| 91在线一区二区| 视频一区中文字幕国产| 精品国产91久久久久久久妲己 | 91国产成人在线| 亚洲精品视频自拍| 欧美日韩精品是欧美日韩精品| 性做久久久久久| 久久夜色精品国产欧美乱极品| 国产成人免费视频一区| 亚洲一区二区偷拍精品| 欧美tk丨vk视频| 成人午夜大片免费观看| 亚洲国产精品久久久久婷婷884| 欧美一级夜夜爽| av电影在线观看一区| 天天免费综合色| 日韩伦理免费电影| 日韩精品中文字幕在线不卡尤物| 久久99久国产精品黄毛片色诱| 国产精品丝袜一区| 欧美一区二区在线视频| www.99精品| 精品一区二区免费看| 一区二区国产盗摄色噜噜| 久久综合色婷婷| 欧美亚洲一区二区三区四区| 国产乱理伦片在线观看夜一区| 亚洲一区二区三区爽爽爽爽爽 | 日本成人中文字幕| 亚洲天堂a在线| 久久久久青草大香线综合精品| 欧美日韩不卡一区| 91女人视频在线观看| 国产在线播放一区三区四| 香蕉乱码成人久久天堂爱免费| 国产精品久久久久久久岛一牛影视| 日韩欧美一区中文| 欧美私人免费视频| 91麻豆123| 成人av电影在线| 国产一区二区在线看| 奇米一区二区三区| 偷拍一区二区三区四区| 亚洲一区二区在线播放相泽| 亚洲欧美在线视频| 国产女主播视频一区二区| 日韩欧美不卡一区| 欧美一级精品在线| 欧美一区二区三区在线观看| 在线观看精品一区| 色综合久久久久综合99| 99这里只有久久精品视频| 国产91精品在线观看| 国产大片一区二区| 国产美女精品一区二区三区| 韩国欧美国产一区| 九九精品视频在线看| 激情久久五月天| 日本一区二区高清| 成人一区二区三区中文字幕| 美女在线视频一区| 日韩av高清在线观看| 亚洲高清免费观看高清完整版在线观看 | 日韩亚洲欧美一区| 7777精品伊人久久久大香线蕉超级流畅| 色94色欧美sute亚洲13| 在线欧美日韩精品| 欧美日韩不卡视频| 日韩一卡二卡三卡四卡| 精品人在线二区三区| 欧美精品一区男女天堂| 国产精品麻豆欧美日韩ww| 亚洲欧美另类小说视频| 亚洲福利电影网| 青娱乐精品视频在线| 精品无人码麻豆乱码1区2区| 国产一区91精品张津瑜| 99热99精品| 欧美日韩一区高清| 精品国产欧美一区二区| 欧美韩国日本一区| 亚洲一区自拍偷拍| 久久精品国产亚洲高清剧情介绍 | 婷婷综合在线观看| 久久精品国产99久久6| 色综合网站在线| 欧美在线一二三| 亚洲精品在线一区二区| 国产精品成人网| 五月婷婷久久丁香| 国产精品91xxx| 在线观看区一区二| 日韩免费福利电影在线观看| 国产精品乱码人人做人人爱| 亚洲超碰97人人做人人爱| 精品一区二区影视| 91豆麻精品91久久久久久| 日韩免费高清视频| 亚洲激情图片qvod| 国产精品一区二区无线| 欧美日韩中文一区| 国产无人区一区二区三区| 亚洲成人免费观看| 成人污视频在线观看| 91精品欧美一区二区三区综合在| 日本一区二区久久| 蜜桃传媒麻豆第一区在线观看| 91亚洲大成网污www| 欧美成人艳星乳罩| 亚洲第一会所有码转帖| 国产91精品一区二区麻豆网站| 欧美日韩国产精品成人| 国产精品第五页| 韩国一区二区视频| 欧美日韩午夜精品| 亚洲男人天堂一区| 国产毛片一区二区| 日韩欧美国产高清| 亚洲成人综合视频| 91亚洲精品久久久蜜桃| 日本一区二区高清| 国内精品免费**视频| 欧美丰满少妇xxxxx高潮对白| 1区2区3区国产精品| 国产精品一区二区三区四区 | 国产午夜精品美女毛片视频| 无吗不卡中文字幕| 色婷婷亚洲一区二区三区| 日韩一级大片在线| 久久久精品黄色| 蜜桃av一区二区| 欧美日韩aaa| 亚洲成av人片一区二区梦乃| 91在线观看一区二区| 亚洲国产精品精华液2区45| 欧美日韩高清一区二区| 亚洲欧美中日韩| www.视频一区| 最好看的中文字幕久久| 成人精品视频一区二区三区尤物| 国产欧美一区二区精品仙草咪| 国产一区二区三区日韩| 2021中文字幕一区亚洲| 国产麻豆视频一区二区|