基于HT47系列RISC单片机的智能化仪表设计
摘要: HT47系列MCU是盛群(Holtek)半导体公司近年推出的8位精简指令系统(RISC)单片机,它除了具有RISC类单片机特有的指令数量少、易记忆、采用流水线式指令执行方式、运行速度快等优点外,其片内的两通道R-F型A/D转换电路,动态LCD液晶驱动电路以及软件狗定时器等硬件资源,为设计小型乃至便携式智能化仪器仪表提供了极大的方便,全部硬件由传感器+HT47C20+液晶片+少量阻容元件构成。
关键字: RISC单片机, R-F型A/D转换, 智能化仪表
HT47系列MCU是盛群(Holtek)半导体公司近年推出的8位精简指令系统(RISC)单片机,它除了具有RISC类单片机特有的指令数量少、易记忆、采用流水线式指令执行方式、运行速度快等优点外,其片内的两通道R-F型A/D转换电路,动态LCD液晶驱动电路以及软件狗定时器等硬件资源,为设计小型乃至便携式智能化仪器仪表提供了极大的方便,全部硬件由传感器+HT47C20+液晶片+少量阻容元件构成。
图1 HT47C20的两通道R-F型A/D转换电路
图2 R-F型A/D转换过程
图3 (c)温度θ和计算值Nt的关系曲线
图4 用分段线性插值法处理θ-Nt 关系曲线
R-F型A/D
图1给出了HT47C20的两通道R-F型A/D转换电路的结构。
图中,Timer A和Timer B是两个16 位可编程计数器,其计数初值可以由程序设定。Timer A对系统时钟(System Clock)或系统时钟4分频信号(System Clock/4)或实时时钟的溢出信号(RTC Output)计数;Timer B对通道1或通道2的RC振荡电路产生的脉冲信号计数。下面我们以利用通道1构成的温度仪表为例,对其温度测量原理和设计方法作一介绍。
利用图2可以清晰地说明R-F型A/D转换过程:
1.见图2(a),Timer B对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A对系统时钟计数。通过置位有关特殊功能寄存器相关位可使 Timer A、Timer B同时启动。Timer B由初值0000H-NS计数到0000H(溢出);Timer A由初值0000H计到m,两者同时停止计数。NS的数值要保证Timer B先溢出,这段时间即为闸门时间。
2.见图2(b),Timer A初值改为0000H-m, Timer B初值改为0000H。Timer B对传感器(NTC热敏电阻)电阻Rt、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A还是对系统时钟计数。再次同时启动,当Timer A溢出时两者同时停止计数且申请中断。可以看出两次计数的闸门时间相等,此时Timer B的计数值为Nt。
从上述过程可以看出:NS·(1 /fs)=Nt·(1/ft)
所以 Nt=NS·ft/fs (1)
而 fs=1/(ks·Rs·Cs)
ft=1/(kt·Rt·Cs)
式中ks和kt是和电源电压、环境温度以及RsCs或RtCs乘积有关的常数(一般取 1.9~2.3),此处可看作近似相等,故有:
ft/fs=Rs/Rt
将此式代入上述Nt的表达式中,可得:
Nt=NS·Rs/Rt (2)
从上文可知,NS是Timer B在规定的闸门时间内对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲的计数值,和Rs一样,都是事先设定的常数。式(2)表示了计数值Nt和传感器电阻Rt近似成反比,它们之间的关系如图3(a)所示。
热敏电阻本身的电阻-温度关系曲线如图3(b)所示,通过图形变换可以得到被测温度和计数值Nt之间的关系曲线如图3(c)所示。
用分段线性插值法对被测温度和计数值Nt之间的关系曲线进行处理,即可从计数值Nt计算出对应的被测温度。
把图4的q-Nt关系曲线分成若干段,每段曲线用一段对应的折线来代替。相对于每一段折线,可求出q-N的线性函数:
q = a· Nt+b
式中:a为该段折线的斜率,b为截距。
值得指出的是,利用HT47C20片内的两个通道R-F型A/D转换电路作温度测量,Timer B对外部RC振荡电路的两次计数,使用同一个振荡电容Cs(即参考电容)。从式(2)可以看出:计数值Nt和电容Cs没有直接关系,因此当电容量受环境温度变化时不会影响测温结果。这一点对提高仪器的系统测量精度是非常有意义的。
图5 主程序和中断服务程序的软件流程
图6 显示缓冲区布局及相关引脚
图 7 HT47C20构成的简单仪表电路
R-F型A/D转换构成温度测量仪表的软件流程
图5给出了利用HT47C20的片内R-F型A/D转换电路构成温度测量仪表的软件流程。
HT47C20片内动态液晶显示电路包含显示缓冲区和驱动输出电路两部分。显示缓冲区占用内部RAM 40H~53H单元地址(在系统不使用液晶显示电路时可作为普通RAM单元使用),任何用间接寻址方式写入显示缓冲区的字形码都将直接(经驱动输出电路)使液晶显示屏显示相应的字符。图6表示了显示缓冲区的布局以及各存储单元和芯片外部相关引脚的对应关系。
从图6可以看出,显示缓冲区各存储单元仅低4位有效,整个显示电路经芯片内部掩膜选择可外接20*2、20*3或19*4(即1/2duty、1/3duty或1/4duty)的C型液晶显示器。
图7是用HT47C20为核心部件构成的非常简单的仪表硬件电路,图中仅画出一个测量通道In0,如果把另一个测量通道In1也利用起来,不需要增加外电路就可以同时测量两路模拟量。可以看出其性价比非一般单片机电路可比。
结语
HT47系列除了HT47C20外,和它结构、功能相同的还有HT47C20L(掩膜/低功耗版),HT47R20(OTP版)。值得指出的是盛群半导体公司最新推出的新品HT47C10在结构上作了不少简化,如片内程序存储器,数据存储器容量,液晶显示电路的驱动笔划数量适当减少,R-F型A/D转换通道减少为一个,但在某些应用场合其性价比却更高一些。
暂无评论