常用单片机简介
点击浏览芯片信息
点击浏览芯片信息
点击浏览芯片信息
当前位置>>中源单片机>>编程应用     设为首页  加入收藏  
TOP851编程器
    TOP851编程器简介
    TOP851型编程器具有体积小巧,功耗低,可靠性高的特点,是专为开发51系列单片机和烧写各类存储器而设计的普及机型。

    TOp851采用RS232串口与PC机连接通信,抗干扰性能好,可靠性极高,特别适合烧写各类一次性(OTP)和电擦除器件。
     HOLTEK单片机应用范例--HT46R23单片机A/D转换程序
    深圳市凌雁电子有限公司


    HT46R23是台湾合泰公司推出的10位A/D转换器的高性能8位单片机,它具备齐全的功能:3.3-5.5V的工作电压范围,4kx15bit的程序只读存储器,192x8位数据存储器,16位7级预分频带溢出中断功能可编程定时/计数器,石英和RC振荡器,WDT电路,8/4通道的A/D转换器,8级堆栈,两路PWM(脉宽调制)硬件电路,大部分的RAM都可以执行位操作指令,15位查表指令,这为程序的编写提供极大的便利。所有的指令都为1-2个指令周期,I2C BUS总线,63条功能强劲的精简指令集。它有两种封装形式,一种是24条引脚的封装(24kSKDIP-A/SOP-A),还有一种是28条引脚封装(28kSKDIP-A/SOP-A),除了双向I/O口线的数量不同外,其它性能基本一致。

其主要功能特性如下:
      工作电压:3.3-5.5V
      一个外部输入(与I/O口复用)
      23/19条8位双向I/O口线
      VDD=5V,时钟为8MHz时指令周期0.5us
      16位带7级预分频的可编程定时/计数器
      一个内置晶体和RC振荡器
      4kx15bit 程序存储器
      看门狗(WDT)电路
      192x8内部RAM
      支持发声的PFD
      8通道A/D转换器
      大部分RAM均可执行位操作
      15位查表指令
      8级堆栈
      两路PWM输出通道
      I2C BUS 总线
      低电压复位功能
      所有指令均为1-2个指令周期
      63条精简指令集
      暂停和唤醒功能
HT46R23引脚图
HT46R23方框图
    HT46R23内部方框图如图2,其中含有8通道10bitA/D(精度为9位)的转换器,它的引脚为PB0(AN0)—PB7(AN7),其参考电压为VDD。与A/D转换有关的寄存器有4个,它们是:ADRL(地址是24H),ADRH(地址是25H)ADCR(其地址是26H)和ACSR(地址为27H)。ADRL和ADRH是AD转换结果的低字节和高字节数据寄存器,属只读存储器。AD转换完成后,即可从这两个存储器读取AD数据。ADCR是A/D转换控制寄存器,用来定义A/D转换器的工作状态,包括A/D转换的通道、选择模拟输入端、A/D转换开始和结果标志等。需进行A/D转换,要求先设置PB端口,选择转换的模拟通道,然后给START位一个启动信号即开始A/D转换。A/D转换结果后,EOC为被清零,并且产生A/D转换中断(假设A/D转换允许的话)。ADSR是A/D时钟控制寄存器,用于选择A/D的时钟源。

    上面我们说过,ADCR是A/D转换控制寄存器,ADCR的第0——2共三个位是用于选择模拟输入通道,HT46R23共有8个通道可以选择。ADCR的第3——5三个位用于设置PB口的工作模式,使PB端口既可以当作普通I/O端口,也可以用于模拟输入通道。ADCR的第六位EOC是A/D转换结束的状态标志位,通过查询这个标志位即可了解A/D转换过程是否已经结束。ADCR的START位是用来启动A/D转换的,给START控制位一个上升沿和一个下降沿信号(即0→1→0),A/D转换开始,为确保A/D转换可靠地工作,START位在启动完成后,应保持为“0”。

    下表是ADCR控制寄存器功能说明。

 表1 ADCR控制寄存器功能特性列表
符号(ADCR)  位  功能说明
ACS0 0 模拟输入通道选择位,其定义特性见表2
ACS1 1
ACS2 2
PCR0 3 设置PB口的工作状态,其定义特性见表2
如果PCR0,PCR1及PCR2都为0,则A/D转换电路被关闭。
PCR1 4
PCR2 5
EOC 6 A/D转换结果标志位,EOC=0,A/D转换结束
START 7 A/D转换启动控制位
0→1→0,转换开始
0→1A/D0→1转换结束
 表2 ADCR模拟通道选择列表
ACS0 ACS1 ACS2 模拟通道
0 0 0 A0
0 0 1 A1
0 1 0 A2
0 1 1 A3
1 0 0 A4
1 0 1 A5
1 1 0 A6
1 1 1 A7
 表3 PB口设置列表
PCR0 PCR1 PCR2 7 6 5 4 3 2 1 0
0 0 0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
0 0 1 PB7 PB6 PB5 PB4 PB3 PB2 PB1 A0
0 1 0 PB7 PB6 PB5 PB4 PB3 PB2 A1 A0
0 1 1 PB7 PB6 PB5 PB4 PB3 A2 A1 A0
1 0 0 PB7 PB6 PB5 PB4 A3 A2 A1 A0
1 0 1 PB7 PB6 PB5 A4 A3 A2 A1 A0
1 1 0 PB7 PB6 A5 A4 A3 A2 A1 A0
1 1 1 A7 A6 A5 A4 A3 A2 A1 A0

    ACSR的第7位是内部测试用的,用户不能使用。ACSR的第0位和第1位是用于选择A/D转换的时钟源。

    当A/D转换结束时,A/D中断标志被置位,当START控制位由“0”置“1”时,EOC也置“1”。

    值得一提的是,HT46R23是10位A/D转换器的单片机,它需用两个8位寄存器来存储A/D结果,其中ADRH存储的是高8位转换结果(8位全有效),而ADRL只记录10位中的低2位,且仅bit7和bit6有效,其余bit5-bit0是无效的。这使用中加以注意,数据结构如表4所示。

 表3 PB口设置列表
数据寄存器 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
ADRH D9 D8 D7 D6 D5 D4 D3 D2
ADRL D1 D0 - - - - - -

   HT46R23A/D转换子程序[范例](点击下载)