找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1787|回复: 3
收起左侧

STC12C5A602S单片机内部如何调用ADC

[复制链接]
ID:588691 发表于 2020-12-1 23:11 | 显示全部楼层 |阅读模式
求解中断5是,难道不是串口中断吗?还有sfr是如何调用特殊寄存器
sfr P1ASF=0X9D;                 //P1口模拟功能控制寄存器
sfr        ADC_CONTR=0XBC;        //ADC控制寄存器
sfr        ADC_RES=0XBD;        //AD转换结果存放
sfr        ADC_RESL=0XBE;        //AD转换结果存放
sfr        AUXR1=0XA2;               
void ADinit()
{
   P1ASF=0x01;        //P1^0口作为AD输入口
   ADC_CONTR=0x20;          //P1^0口作为AD输入口,360个时钟周期转换一次
   AUXR1=0x00;        //高八位存放于ADC_RES,低二位存放于ADC_RESL
   IE=0XA0;                      //开总中断允许AD中断
}
void ADser() interrupt 5
{
     temp=(ADC_CONTR|0X10)<<4; //此时ADC_FLAG的值被移入CY位;
     ADC_CONTR=0xC0;           //转换完成,将ADC_FLAG清零
     resulth=ADC_RES;          //读取高8位值            
     result=(unsigned int)(resulth*50/255);
                             //把ADC_RES的值以点亮小灯的形式显示出来
}


回复

使用道具 举报

ID:39632 发表于 2020-12-2 00:31 | 显示全部楼层
1. 第5中断源是AD转换中断,中断向量地址 002BH,C语言一般形式可写为 void ADC_Routine(void) interrupt5。串口1是第4中断源,串口2是第8中断源。
2. sfr在51单片机c语言里用于定义特殊功能寄存器地址,就是给一些特殊功能寄存器的地址起个比较容易使用和记忆的名字来代替地址,当你用给变量赋值的形式给这些地址的名字赋值时,就是把相应的值存进了寄存器。
回复

使用道具 举报

ID:852817 发表于 2020-12-2 04:30 | 显示全部楼层
. 第5中断源是AD转换中断,中断向量地址 002BH,C语言一般形式可写为 void ADC_Routine(void) interrupt5。串口1是第4中断源,串口2是第8中断源。
回复

使用道具 举报

ID:65956 发表于 2020-12-2 08:17 | 显示全部楼层
你已经采用ADC采集中断方式进行采集了,就不需要什么ADC函数调用了,直接判断到ADC中断后把数据取出或直接显示就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表