📄 test14.lst
字号:
Sunplus u'nSP Assembler - Ver. 1.10.0
.define P_IOB_DATA 0x7005
.define P_IOB_DIR 0x7007
.define P_IOB_ATTRI 0x7008
.define P_INT_Ctrl 0x7010
.define P_INT_CLEAR 0x7011
.define P_ADC_Ctrl 0x7015
.define P_ADC_MUX_Ctrl 0x702b
.define P_ADC_MUX_DATA 0x702C
.define P_DAC_Ctrl 0x702A
.define P_Watchdog_Clear 0x7012
00000000 .code
.public _main
_main:
00000000 09 93 FF FF r1=0xffff
00000002 19 D3 08 70 [P_IOB_ATTRI]=r1 //IOB8-IOB15,IOB6口设置为同向输出口
00000004 19 D3 07 70 [P_IOB_DIR]=r1
00000006 40 92 r1=0x0000
00000007 19 D3 05 70 [P_IOB_DATA]=r1
00000009 43 92 r1=0x0003 //选择通道LINE_IN为IOA0
0000000A 19 D3 2B 70 [P_ADC_MUX_Ctrl]=r1
0000000C 41 92 r1 = 0x0001 //允许A/D转换
0000000D 19 D3 15 70 [P_ADC_Ctrl] = r1
0000000F 00 EE nop //等待
00000010 00 EE nop
00000011 00 EE nop
00000012 00 EE nop
_AD:
00000013 11 93 2B 70 r1=[P_ADC_MUX_Ctrl] //读寄存器[P_ADC_MUX_Ctrl]的B15
00000015 09 C3 00 80 test r1,0x8000 //判断是否转换完毕
00000017 45 5E jz _AD //否,继续转换
00000018 11 93 2C 70 r1=[P_ADC_MUX_DATA] //是,则读出[P_ADC_MUX_DATA]转换结果
0000001A r1=r1 lsr 8
E:\单片机程序\AD转换\test14.asm(33): error A0151: Shift counter should be non-negative integer 0 to 4
0000001B 43 94 r2=3.3
0000001C 0A F3 MR=r1*r2
//同时触发A/D重新转换
// r1=r1 lsl 2 //保留A/D值的最低8位
0000001D 0B A7 BF 00 r3|=0x00bf //保证IOB6为低
// r3&=0xFF00
0000001F 1B D7 05 70 [P_IOB_DATA]=r3;
00000021 41 92 r1=0x0001 //清看门狗
00000022 19 D3 12 70 [P_Watchdog_Clear] = r1
00000024 52 EE jmp _AD;
1 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -