📄 ex8-10.asm
字号:
SCLK BIT P3.0 ;定义I/O口
CS549 BIT P3.1
DOUT BIT P3.2
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SP,#60H
LCALL TLC549 ;启动TLC549进行A/D转换
LCALL DELAY
LOOP: LCALL TLC549 ;读取上次ADC值,再次启动TLC549进行A/D转换
LCALL DELAY
MOV P1,A ;将读取的A/D转换值送往P1口显示
SJMP LOOP
TLC549: CLR CS549 ;选中TLC549
NOP
NOP
MOV C,DOUT ;接受第一位数据
RLC A
NOP
NOP
MOV R0,#07 ;置循环次数
SPIIN: SETB SCLK
NOP
NOP
CLR SCLK ;产生有效沿,以便从器件锁存数据
NOP
NOP
MOV C,DOUT ;接受下一位数据(从最高位开始)
RLC A
DJNZ R0,SPIIN ;8位数据未接收完,则继续接收下一位
CLR SCLK
NOP
NOP
SETB SCLK
NOP
NOP
CLR SCLK
SETB CS549 ;结束SPI总线操作,关闭从器件
RET
DELAY: MOV R7,#40 ;延时子程序
DJNZ R7,$
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -