带ADC、PWM和比较器的单片机-EM78P458
发布时间:2008/5/27 0:00:00 访问次数:958
em78p458是台湾义隆公司最新推出的一款高性能otp单片机,除了具有其它em78系列单片机的特点外,还增加了8路8位a/d转换器,2路脉宽调制器(pwm)和一个比较器,可以广泛应用在智能仪表、自动控制、家用电器等领域。下面主要介绍该单片机的特点以及a/d转换器、脉宽调制器和比较器的结构与用法。
1. em78p458主要特点
em78p458具有如下特点:
● 8路8位a/d转换器,其中2路可选择5级放大增益;
●2路脉宽调制输出,10位分辨率,可用作d/a转换器;
●1 个比较器,可产生中断,外接反馈电阻可构成运放;
●8级硬件堆栈,方便程序调用;
●6个中断源: 定时/计数器溢出中断; i/o口输入电平变化中断(从sleep方式唤醒时); 外部中断; a/d转换完成中断; 比较器中断(结果为高);pwm中断;
● 4096×13bit片内rom,96×8bit ram;
●工作电压:2.2~6.0v,工作频率:dc~16mhz;
● 功耗低:5v/4mhz 1.5ma;3v/32khz 15 μa;sleep 1μa;
● 8 个i/o口输入电平变化产生中断唤醒sleep;
●i/o口可编程为上拉、下拉和集电极开路;
●16个双向i/o口,20引脚;
●速度快:99%为单指令周期,每条指令周期为2个时钟周期;
●电源上电检测器,检测电压为2.0±0.15v;
●8位定时/计数器,可8位预分频;
●片内看门狗计数器,可8位预分频;
●57条精简指令,易学易用。
2. 引脚介绍
em78p458的引脚排列如图1所示,功能如下:
osci、osco:分别为振荡输入、输出端,可外接标准晶振、陶瓷振荡或rc振荡;
p50~p57:双向i/o口,p50可以编程为外部中断输入,p51、p52可编程为pwm1 和 pwm2,p53可以作为a/d转换器的参考电压端,p54兼作外部计数脉冲输入(tcc),p55、p56 和p57分别作为比较器的负输入、正输入和输出;
p60~p67:双向i/o口,可作为8路模拟信号输入。
3. a/d转换器与a/d转换
em78p458的a/d转换器包括一个8位模拟开关,3个控制寄存器(adconr9,ad-cmp-con/uica0,gcon/ioc90),一个a/d结果寄存器(addata/ra)。a/d转换器的原理框图如图2所示。
em78p458的a/d转换采用逐次逼近式,转换结果保存在addata,模拟信号的输入通道通过adcon的位0,1和2来选择。
3.1 a/d转换器i/o口设置与控制寄存器
gcon寄存器各位如下 :
7
6
5
4
3
2
1
0
op2e
op1e
g42
g41
g40
g12
g11
g10
op2e:使能运放op2,并把输入接到p64。当为0时关闭运放;为1时使能运放。
op1e:使能运放op1,并把输入接到p60。当为0时关闭运放;为1时使能运放。
g42~g40:选择op2增益; 000~101 分别对应增益为1~32;
g12~g10:选择op1增益; 000~101 分别对应增益为1~32。
3.2 a/d转换控制寄存器adcon/r9
adcon/r9寄存器各位如下 :
bit
7
6
5
4
3
2
1
0
symbol
-
-
iocs
adrun
adpd
adis2
adis1
adis0
初始值
0
0
0
0
0
0
0
0
adrun:a/d转换开始位;当为1时,a/d转换开始,由软件置位;为0时,a/d转换结束,硬件自动清零。
adpd:在睡眠方式进行a/d转换;当为1时,a/d转换正在进行;为0时,关闭参考电阻进入睡眠方式。
adis2~adis0:a/d转换通道选择,000~111分别对应an1~an8,只有在adpd和 adrun为0时才可以改变通道。
3.3 定义p6口为模拟输入或数字i/o口寄存器
em78p458是台湾义隆公司最新推出的一款高性能otp单片机,除了具有其它em78系列单片机的特点外,还增加了8路8位a/d转换器,2路脉宽调制器(pwm)和一个比较器,可以广泛应用在智能仪表、自动控制、家用电器等领域。下面主要介绍该单片机的特点以及a/d转换器、脉宽调制器和比较器的结构与用法。
1. em78p458主要特点
em78p458具有如下特点:
● 8路8位a/d转换器,其中2路可选择5级放大增益;
●2路脉宽调制输出,10位分辨率,可用作d/a转换器;
●1 个比较器,可产生中断,外接反馈电阻可构成运放;
●8级硬件堆栈,方便程序调用;
●6个中断源: 定时/计数器溢出中断; i/o口输入电平变化中断(从sleep方式唤醒时); 外部中断; a/d转换完成中断; 比较器中断(结果为高);pwm中断;
● 4096×13bit片内rom,96×8bit ram;
●工作电压:2.2~6.0v,工作频率:dc~16mhz;
● 功耗低:5v/4mhz 1.5ma;3v/32khz 15 μa;sleep 1μa;
● 8 个i/o口输入电平变化产生中断唤醒sleep;
●i/o口可编程为上拉、下拉和集电极开路;
●16个双向i/o口,20引脚;
●速度快:99%为单指令周期,每条指令周期为2个时钟周期;
●电源上电检测器,检测电压为2.0±0.15v;
●8位定时/计数器,可8位预分频;
●片内看门狗计数器,可8位预分频;
●57条精简指令,易学易用。
2. 引脚介绍
em78p458的引脚排列如图1所示,功能如下:
osci、osco:分别为振荡输入、输出端,可外接标准晶振、陶瓷振荡或rc振荡;
p50~p57:双向i/o口,p50可以编程为外部中断输入,p51、p52可编程为pwm1 和 pwm2,p53可以作为a/d转换器的参考电压端,p54兼作外部计数脉冲输入(tcc),p55、p56 和p57分别作为比较器的负输入、正输入和输出;
p60~p67:双向i/o口,可作为8路模拟信号输入。
3. a/d转换器与a/d转换
em78p458的a/d转换器包括一个8位模拟开关,3个控制寄存器(adconr9,ad-cmp-con/uica0,gcon/ioc90),一个a/d结果寄存器(addata/ra)。a/d转换器的原理框图如图2所示。
em78p458的a/d转换采用逐次逼近式,转换结果保存在addata,模拟信号的输入通道通过adcon的位0,1和2来选择。
3.1 a/d转换器i/o口设置与控制寄存器
gcon寄存器各位如下 :
7
6
5
4
3
2
1
0
op2e
op1e
g42
g41
g40
g12
g11
g10
op2e:使能运放op2,并把输入接到p64。当为0时关闭运放;为1时使能运放。
op1e:使能运放op1,并把输入接到p60。当为0时关闭运放;为1时使能运放。
g42~g40:选择op2增益; 000~101 分别对应增益为1~32;
g12~g10:选择op1增益; 000~101 分别对应增益为1~32。
3.2 a/d转换控制寄存器adcon/r9
adcon/r9寄存器各位如下 :
bit
7
6
5
4
3
2
1
0
symbol
-
-
iocs
adrun
adpd
adis2
adis1
adis0
初始值
0
0
0
0
0
0
0
0
adrun:a/d转换开始位;当为1时,a/d转换开始,由软件置位;为0时,a/d转换结束,硬件自动清零。
adpd:在睡眠方式进行a/d转换;当为1时,a/d转换正在进行;为0时,关闭参考电阻进入睡眠方式。
adis2~adis0:a/d转换通道选择,000~111分别对应an1~an8,只有在adpd和 adrun为0时才可以改变通道。
3.3 定义p6口为模拟输入或数字i/o口寄存器