📄 ex8-10.sdi
字号:
,,,
000B,,, SCLK BIT P3.0 ;定义I/O口
000B,,, CS549 BIT P3.1
000B,,, DOUT BIT P3.2
,,,
,,, ORG 0000H
0000,02 00 30,, LJMP MAIN
,,, ORG 0030H
0030,75 81 60,MAIN,MAIN: MOV SP,#60H
0033,12 00 43,, LCALL TLC549 ;启动TLC549进行A/D转换
0036,12 00 68,, LCALL DELAY
0039,12 00 43,LOOP,LOOP: LCALL TLC549 ;读取上次ADC值,再次启动TLC549进行A/D转换
003C,12 00 68,, LCALL DELAY
003F,F5 90,, MOV P1,A ;将读取的A/D转换值送往P1口显示
0041,80 F6,, SJMP LOOP
,,,
0043,C2 B1,TLC549,TLC549: CLR CS549 ;选中TLC549
0045,00,, NOP
0046,00,, NOP
0047,A2 B2,, MOV C,DOUT ;接受第一位数据
0049,33,, RLC A
004A,00,, NOP
004B,00,, NOP
004C,78 07,, MOV R0,#07 ;置循环次数
004E,D2 B0,SPIIN,SPIIN: SETB SCLK
0050,00,, NOP
0051,00,, NOP
0052,C2 B0,, CLR SCLK ;产生有效沿,以便从器件锁存数据
0054,00,, NOP
0055,00,, NOP
0056,A2 B2,, MOV C,DOUT ;接受下一位数据(从最高位开始)
0058,33,, RLC A
0059,D8 F3,, DJNZ R0,SPIIN ;8位数据未接收完,则继续接收下一位
005B,C2 B0,, CLR SCLK
005D,00,, NOP
005E,00,, NOP
005F,D2 B0,, SETB SCLK
0061,00,, NOP
0062,00,, NOP
0063,C2 B0,, CLR SCLK
0065,D2 B1,, SETB CS549 ;结束SPI总线操作,关闭从器件
0067,22,, RET
,,,
0068,7F 28,DELAY,DELAY: MOV R7,#40 ;延时子程序
006A,DF FE,, DJNZ R7,$
006C,22,, RET
000E,,, END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -