当前位置:首页 > 单片机 > 单片机
[导读] STC12C5A60S2 C语言示例程序(ADC查询方式)#include"reg51.h"#include"intrins.h"#defineFOSC18432000L#defineBAUD9600typedefunsignedcharBYTE;typedefunsignedintWORD;/*DeclareSFRassociatedwiththeA

STC12C5A60S2 C语言示例程序(ADC查询方式)

#include"reg51.h"
#include"intrins.h"

#defineFOSC18432000L
#defineBAUD9600

typedefunsignedcharBYTE;
typedefunsignedintWORD;

/*DeclareSFRassociatedwiththeADC*/
sfrADC_CONTR=0xBC;//ADCcontrolregister
sfrADC_RES=0xBD;//ADChigh8-bitresultregister
sfrADC_LOW2=0xBE;//ADClow2-bitresultregister
sfrP1ASF=0x9D;//P1secondaryfunctioncontrolregister

/*DefineADCoperationconstforADC_CONTR*/
#defineADC_POWER0x80//ADCpowercontrolbit
#defineADC_FLAG0x10//ADCcompleteflag
#defineADC_START0x08//ADCstartcontrolbit
#defineADC_SPEEDLL0x00//420cLOCks
#defineADC_SPEEDL0x20//280clocks
#defineADC_SPEEDH0x40//140clocks
#defineADC_SPEEDHH0x60//70clocks

voidInitUART();
voidInitADC();
voidSendData(BYTEdat);
BYTEGetADCResult(BYTEch);
voidDelay(WORDn);
voidShowResult(BYTEch);

voidmain()
{
InitUart();//InitUART,usetoshowADCresult
InitADC();//InitADCsfr
while(1)
{
ShowResult(0);//ShowChannel0
ShowResult(1);//ShowChannel1
ShowResult(2);//ShowChannel2
ShowResult(3);//ShowChannel3
ShowResult(4);//ShowChannel4
ShowResult(5);//ShowChannel5
ShowResult(6);//ShowChannel6
ShowResult(7);//ShowChannel7
}
}

/*----------------------------
SendADCresulttoUART
----------------------------*/
voidShowResult(BYTEch)
{
SendData(ch);//ShowChannelNO.
SendData(GetADCResult(ch));//ShowADChigh8-bitresult

//ifyouwantshow10-bitresult,uncommentnextline
//SendData(ADC_LOW2);//ShowADClow2-bitresult
}

/*----------------------------
GetADCresult
----------------------------*/
BYTEGetADCResult(BYTEch)
{
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|ADC_START;
_nop_();//Mustwaitbeforeinquiry
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR&ADC_FLAG));//Waitcompleteflag
ADC_CONTR&=~ADC_FLAG;//CloseADC

returnADC_RES;//ReturnADCresult
}

/*----------------------------
InitialUART
----------------------------*/
voidInitUart()
{
SCON=0x5a;//8bitdata,noparitybit
TMOD=0x20;//T1as8-bitautoreload
TH1=TL1=-(FOSC/12/32/BAUD);//SetUartbaudrate
TR1=1;//T1startrunning
}

/*----------------------------
InitialADCsfr
----------------------------*/
voidInitADC()
{
P1ASF=0xff;//Open8channelsADCfunction
ADC_RES=0;//Clearpreviousresult
ADC_CONTR=ADC_POWER|ADC_SPEEDLL;
Delay(2);//ADCpower-onanddelay
}

/*----------------------------
SendonebytedatatoPC
Input:dat(UARTdata)
Output:-
----------------------------*/
voidSendData(BYTEdat)
{
while(!TI);//Waitforthepreviousdataissent
TI=0;//ClearTIflag
SBUF=dat;//Sendcurrentdata
}

/*----------------------------
SOFtwaredelayfunction
----------------------------*/
voidDelay(WORDn)
{
WORDx;

while(n--)
{
x=5000;
while(x--);
}
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。

关键字: 单片机 仿真器 程序

步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。

关键字: 步进电机 正反转 程序

KeilμVision4是Keil软件公司为8051系列微控制器及其兼容产品设计的集成式软件开发环境。μVision4集成了C51编译器和A51汇编器,其界面类似于Microsoft VS,支持C语言和汇编语言程序的编写...

关键字: 程序 编译 链接

双方各执一词,谁也不退让,吴雄昂的身份成为薛定谔的猫:在Arm公司眼中,他已经被罢免一切职位;在安谋中国声明里,吴仍然一切照常。这种叠加态或许还会持续一段时间,但叠加态应该很快就会塌缩成一个确定结果。同样,安谋中国董事会...

关键字: ARM 中国董事会 程序

除了指令空间,自定义指令对应的程序出入口也有严格限制。自定义指令在使用过程中出现任何错误时,Arm的工具链都能及时对其进行识别、提取,并且进行相应的控制。目前也已经有第三方编译器,可以识别自定义指令集可能会出现的错误。专...

关键字: 指令空间 程序 ARM

如果说一众美国科技公司遵循特朗普命令断供华为,还算某种程度上维护所谓程序正义不得已而为之;那么各路本应对政治保持中立的国际技术标准组织,先后宣布剔除华为成员资格,绝对算助纣为虐;而联邦快递将华为委托寄送目的地为中国的快递...

关键字: 快递 华为 程序

在软件开发过程中,我们希望软件可以运行无误。但是常常事与愿违,程序经常跑飞,或者卡死。原因有很多,有可能是因为软件系统设计的原因,或者外部传感器的失效,再或者是程序的Bug等。为了防止程序在出现问题之后,可以顺利复位和重...

关键字: 软件 程序 传感器

进程是程序的执行过程。程序是静态的,是存在于外存之中的,电脑关机后依然存在。进程是动态的,是存在于内存之中的,是程序的执行过程,电脑关机后就不存在进程了。进程的内容来源于程序,进程的启动过程就是把程序从外存加载到内存的过...

关键字: 程序 静态 操作系统

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分,通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,事实上所有带有数字接口的设备,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整...

关键字: 嵌入式 语言 技术

语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被误码为PCM语音样值,然后...

关键字: 语音编码器 PCM 语言
关闭
关闭