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