?? lpc935_ad.asm
字號:
/****************************LPC935_AD.asm*******************************
*程序功能:測試LPC935 AD轉換功能
*轉換模式:單次轉換
*啟動方式:立即啟動
**********************************************************************/
$NOMOD51
$INCLUDE(REG935.INC)
HC595_CS BIT P2.4
HC595_CLK BIT P2.5
HC595_DAT BIT P2.2
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
MOV P1M1,#0x80 ;設置P1.7為僅為輸入狀態
MOV P1M2,#0x00
MOV P2M1,#0x00 ;設置P2為裝雙向口
MOV P2M2,#0x00
;------------------------
MOV ADINS,#0x01 ;0000 0001, 選擇channel
MOV ADMODA,#0x01 ;0000 0001, 選擇轉換工作模式:單次轉換模式
MOV ADMODB,#0x00 ;500Khz < ADC CLK < 3.3Mhz,,
;------------------------
LOOP:
MOV ADCON0,#0x05 ;選擇轉換觸發模式;并立即啟動
MOV A,AD0DAT0 ;將轉換的數據存入A
ACALL HC595_SENDDAT ;調用顯示程序
MOV A,ADCON0
ANL A,#0xF7
MOV ADCON0,A ;清除AD轉換完成標志
ACALL Delay2ms ;延時
AJMP LOOP
RET
;**************************
;向74HC595發送數據子程序
;入口參數:ACC待發送數據
;占用資源:R7,CY
;*************************
HC595_SENDDAT:
CLR HC595_CS
MOV R7,#8
HC595_SDL1:
CLR HC595_CLK
RLC A ;將要發送的數據最高位移至CY
MOV HC595_DAT,C ;設置數據線
NOP
HC595_SDL2:
SETB HC595_CLK
NOP
DJNZ R7,HC595_SDL1 ;移位8次
SETB HC595_CS ;輸出顯示數據
CLR HC595_CS ;關閉74HC595
RET
;*******************
;功能:延時
;*******************
Delay2ms:
MOV R7,#0xC8
LOOP1:
ACALL Delay10us
DJNZ R7,LOOP1
RET
Delay10us:
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
RET
END
;**********************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -