下面一个例程演示STC89LE516AD/X2系列单片机的A/D转换功能。 时钟11.0592MHz, 转换结果以16进制形式输出到串行口,可以用串行口调试程序观察输出结果。(本代码摘自宏晶科技芯片手册,经作者调试可正常运行)。
#include
#include
// 定义与 ADC 有关的特殊功能寄存器
sfr P1_ADC_EN = 0x97; //A/D转换功能允许寄存器
sfr ADC_CONTR = 0xC5; //A/D转换控制寄存器
sfr ADC_DATA = 0xC6; //A/D转换结果寄存器
typedef unsigned char INT8U;
typedef unsigned int INT16U;
void delay(INT8U delay_time) // 延时函数
{
INT8U n;
INT16U m;
for (n=0;n
{
for(m=0;m<10000;m++);
}
}
INT8U get_AD_result(INT8U channel)
{
INT8U AD_finished = 0; // 存储 A/D 转换标志
ADC_DATA = 0;
ADC_CONTR = channel; // 选择 A/D 当前通道
delay(1); //使输入电压达到稳定
ADC_CONTR |= 0x08; //0000,1000 令 ADC_START = 1, 启动A/D 转换
AD_finished = 0;
while ( AD_finished == 0 ) // 等待A/D 转换结束
{
AD_finished = (ADC_CONTR & 0x10); //0001,0000, ADC_FLAG ==1测试A/D转 换结束否
}
ADC_CONTR &= 0xF7; //1111,0111 令 ADC_START = 0, 关闭A/D 转换,
return (ADC_DATA); // 返回 A/D 转换结果
}
void main()
{
P1 = P1 | 0x63; // 0110,0011,要设置为 A/D 转换的P1.x 口,先设为高
P1_ADC_EN = 0x63; //0110,0011, P1 的P1.0,P1.1,P1.5,P1.6 设置为 A/D 转换输入脚
// 断开P1.0,P1.1内部上拉电阻
get_AD_result(0); //P1.0 为 A/D 当前通道
get_AD_result(1); //P1.1 为 A/D 当前通道
关键字:STC系列 单片机 内部AD
引用地址:
STC系列单片机内部AD的应用
推荐阅读最新更新时间:2024-03-16 15:13
MAX1166典型应用电路
MAX1166的总线接口为8位,该总线的接口速度相当快,可以和各种微处理器直接进行接口,因此MAX1166与8位微处理器的连接电路相对比较简单。图4是MAX1166和MCS-8051的接口电路图。在本例中,由于单片机外围芯片仅有MAX1166一片,所以,为简单起见,没有为之确定地址,即任意地址均可作为其地址。因为MAX1166的CS信号脉冲宽度要求最小为40ns,因此,对于单片机而言,只要对外部设备进行写操作,即会产生WR脉冲,其宽度为6个时钟周期。如果采用12MHz的晶振,其脉冲宽度为500ns,所以可以将单片机的WR信号作为MAX1166的CS输入信号。至于R/ C 、EOC和HBEN等信号,只需连接到普通的锁存功能端口即
[单片机]
恩智浦推出低成本Cortex-M0微控制器
恩智浦半导体(NXP Semiconductors)日前宣布,旗下基于ARM® Cortex™-M0的LPC1100微控制器系列产品将于12月分销上市。恩智浦LPC1100是市场上定价最低的32位微控制器解决方案,其价值和易用性比现有的8/16位微控制器更胜一筹。该控制器性能卓越、简单易用、功耗低,更重要的是,它能显著降低所有8/16位应用的代码长度。初期面市的LPC1100系列有15种产品,能满足所有那些寻求用可扩展ARM架构来进行整个产品开发过程的8/16位用户,满足其产品开发无缝整合需求。 恩智浦半导体副总裁微控制器部门兼总经理Geoff Lees先生表示:“现有的8位架构萌生于早期的半导体业有很多局限:地址范围
[嵌入式]
单片机定时器/计数器工作方式
(1)工作方式0 C/T -定时 / 计数功能选择位。 C/T = 0 ,对片内机器周期进行计数,作定时器用; C/T = 1 ,对片外从 T0 ( P3.4 )、 T1 ( P3.5 )引脚输入 的外部脉冲信号进行计数 , 作计数器用。 GATE -门控位。 GATE=0 ,允许软件控制位 TR0 或 TR1 启动定时器; GATE=1 ,允许外中断引脚 INT0( 或 INT1) 为高电电平,且由软件使 TR0( 或 TR1) 置 1 时,才能启动定时器工作。 当 GATE=0 时,封锁或门输出恒为 1 ,使外部中断输入引脚 INT0 信号失效,同时又打开与门,由 TR0 控制定时器
[单片机]
PIC单片机之I2C通信(主模式)
我们今天来讲I2C通信。那I2C通信的特点是什么能。我们一般使用的串口 (半双工异步串行通信)与I2C 有什么区别呢。 串口(半双工异步串行通信):就是好像朋友在对话。我可以主动和你讲话,你也可以主动和我讲话。 I2C:就好像上下级对话。一个领导面对一个或者多个员工。只有领导主动说话的份儿,下面的员工不能主动说话。只有领导问了,员工才能答。 I2C通信 I2C通信只需要两个引脚 一个数据线,一个时钟线。 数据线顾名思义就是用来传递数据的。时钟线是来决定数据传输的速度。当时钟线为高电平时,数据线上的数据才会被认为是有效的。 数据线的 数据有四种状态 : 高电平,低电平,下降沿(高电平变低电
[单片机]
PIC16F877A单片机 (IIC总线+PCF8563芯片)
1 基本原理 1.1 IIC总线 见前面内容PIC16F877A单片机 (IIC总线+AT24C02芯片) 1.2 PCF8563芯片 可以看出,PCF8563芯片一共有16个寄存器。也就是该芯片的内部地址最大为0x0f。上述的16个寄存器除了作为普通的存储功能外,还具备授时功能。 2 实现过程 2.1 电路图 2.2 源代码 /*---------------------函数功能: IIC总线 + PCF8563(内部只有16个地址空间 PCF8563芯片一共有16个寄存器。也就是该芯片的内部地址最大为0x0f。 上述的16个寄存器除了作为普通的存储功能外,还具备授时功能。 ------------
[单片机]
单片机最小系统介绍
单片机最小系统介绍 单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。最小系统原理图如图4.1所示。 图4.1最小系统电路图 电源供电模块 图4.1.1 电源模块电路图 对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。 此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电
[单片机]
ESP8266 wifi模块与51单片机通信入门教程,模块出厂固件烧录
前段时间在某宝买了个ESP8266模块,用来实现和51单片机的通信,现在将大致过程分享一下,希望能帮助到那些想学习的小白 三部分内容:配置模块、模块与51单片机简单通信、出厂固件的烧录 附件里有pdf教程,跟帖子内容一样的,浏览体验可能会更好一点 我买的是8266-01,引脚图如下 引脚说明: • VCC接3.3v,接5v时间长了可能会烧 • UTXD,URXD和其它的TXD,RXD接时注意交叉接就行了 • CH_PD要给高电平模块才工作 • GPIO0一般不用管,烧录固件时要接地 • RST低电平复位,高电平工作(默认高) • GPIO2必须为高电平,内部默认已拉高,不用管
[单片机]
义隆电子新推工业规格MCU,面向小家电等应用
义隆电子股份有限公司进军八位微控制器(MCU)工规产品再下一城,新推出的芯片EM78P159N已量产上市,编号EM78F651N的芯片预计今年第二季供货,两颗芯片均具有低功耗且符合工业规格的通用型IC。 义隆电子表示,这两颗芯片的差异是:EM78P159N是OTP型MCU;而EM78F651N是闪存型MCU(可重复读写资料之ROM)。这两颗芯片皆拥有高抗干扰及抗静电的能力,同时,操作温度范围可达-40℃ ~ 85℃,可广泛的应用于小家电产品、安全防护(如烟雾警报器、密码锁)、汽机车警报器等产品。 义隆电子指出,EM78P159N的简易规格为1K*13 Bit ROM,48 Byte RAM,I/O最大可达15个,另提供三种工作
[新品]