📄 main.asm
字号:
//======================================================================
// The information contained herein is the exclusive property of
// Sunnnorth Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
// (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies.
//======================================================================
//======================================================================
// 工程名称: ex17_asm_ADC_LINE
// 功能描述: 《实验仪实验指导书》基础应用实验
// A/D转换
// 使用ADC转换器,将输入的0-3.3V电压转换为数字
// 信号并在LED上显示出来
// IDE环境: SUNPLUS u'nSPTM IDE 2.0.0(or later)
// 涉及的库: CMacro1016.lib
// 组成文件: main.asm
// 硬件连接: IOA0连接0-3.3V接口的任一引脚
// IOB8~15连接LED_SEG接口的a~h
// LED_DIG接口的IOB6与DIG5相连
// 维护记录: 2005-09-12 v1.0
//
//======================================================================
//======================================================================
// 文件名称: main.asm
// 功能描述: 使用ADC转换器,将输入的0-3.3V电压转换为数字
// 信号并在LED上显示出来
// 维护记录: 2005-09-12 v1.0
//======================================================================
.DEFINE P_IOA_Data 0x7000
.DEFINE P_IOA_Buffer 0x7001
.DEFINE P_IOA_Dir 0x7002
.DEFINE P_IOA_Attrib 0x7003
.DEFINE P_IOB_Data 0x7005
.DEFINE P_IOB_Buffer 0x7006
.DEFINE P_IOB_Dir 0x7007
.DEFINE P_IOB_Attrib 0x7008
.DEFINE P_ADC 0x7014
.DEFINE P_ADC_Ctrl 0x7015
.DEFINE P_ADC_MUX_Ctrl 0x702B
.DEFINE P_ADC_MUX_Data 0x702C
.DEFINE P_Watchdog_Clear 0x7012
.RAM
.CODE
//========================================================================
// 汇编格式: _main
// C格式: int main(void);
// 实现功能: 使用ADC转换器,将输入的0-3.3V电压转换为数字
// 信号并在LED上显示出来
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器:r1,r2
//========================================================================
.PUBLIC _main
_main:
r1 = 0x0000 //设置IOA口为悬浮输入口
[P_IOA_Dir] = r1
r1 = 0xffff
[P_IOA_Attrib] = r1
r1 = 0x0000
[P_IOA_Data] = r1
r1 = 0xffff //设置IOB口为同相低电平输出口
[P_IOB_Dir] = r1
r1 = 0xffff
[P_IOB_Attrib] = r1
r1 = 0x0000
[P_IOB_Data] = r1
r1 = 0x0001 //选择ADC通道0
[P_ADC_MUX_Ctrl] = r1
r1 = 0x0001 //使能ADC
[P_ADC_Ctrl] = r1
r1 = [P_ADC_MUX_Data] //启动ADC
?Loop:
r1 = [P_ADC_MUX_Ctrl]
test r1,0x8000 //判断转换是否完成?
jz ?Loop //没有则继续转换
r1 = [P_ADC_MUX_Data] //取转换数据
r1 &= 0xff00 //取数据的高8位,由IOB的高8位输出
r1 |= 0x0040 //IOB6输出高电平
[P_IOB_Data] = r1 //显示这8位数据
r1 = 0x0001
[P_Watchdog_Clear] = r1 //清看门狗
jmp ?Loop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -