📄 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 + -