Size: px
Start display at page:

Download ""

Transcription

1 HT46R62, HT46R63, HT46R64, HT46R65 A/D with LCD 型单片机使用手册 本使用手册版权为盛群半导体股份有限公司所有, 非经盛群半导体股份有限公司书面授权同意, 不得通过任何形式复制 储存或传输

2

3 目录 目录 第一部份单片机概论... 1 第一章硬件结构... 3 简介...3 特性...4 技术特性...4 内核特性...4 周边特性...5 选择表...6 系统框线图...7 引脚分配...8 引脚说明...10 极限参数...18 直流电气特性...18 交流电气特性...22 系统结构...24 时序和流水线结构 (Pipelining)...24 程序计数器...26 堆栈...28 算术及逻辑单位 ALU...29 程序存储器...30 结构...30 特殊向量...31 查表...32 查表程序范例...32 数据存储器...34 结构...34 通用数据存储器...35 专用数据存储器...36 LCD 存储器...37 i

4 A/D with LCD 型单片机使用手册 特殊功能寄存器...38 间接寻址寄存器 IAR0, IAR 间接寻址指针 MP0, MP 存储区指针 BP...39 累加器 ACC...40 程序计数器低字节寄存器 PCL...40 表格寄存器 TBLP, TBLH...40 实时时钟控制寄存器 RTCC...40 状态寄存器 STATUS...41 中断控制寄存器 INTC0, INTC 定时 / 计数寄存器...43 输入 / 输出端口与控制寄存器...43 脉宽调制寄存器 PWM0, PWM1, PWM2, PWM A/D 转换寄存器 ADR, ADRL, ADRH, ADCR, ADSR...44 输入 / 输出端口...45 上拉电阻...45 PA 口的唤醒...45 输入 / 输出端口控制寄存器...46 引脚共用功能...46 编程注意事项...50 比较器...51 液晶显示 (LCD) 驱动器...52 LCD 存储器...52 LCD 时钟...54 LCD 驱动器输出...54 LCD 电压源与偏压...61 编程注意事项...64 定时 / 计数器...65 配置定时 / 计数器输入时钟源...66 定时 / 计数寄存器 TMR, TMRL/TMRH, TMR0L/TMR0H, TMR1L/TMR1H...67 定时 / 计数控制寄存器 TMRC, TMR0C, TMR1C...68 定时器模式...70 事件计数器模式...71 脉冲宽度测量模式...72 可编程分频器 PFD...73 预分频器 (Prescaler)...74 输入 / 输出接口...74 编程注意事项...74 脉冲宽度调制器 PWM 模式 PWM 模式...78 PWM 输出控制...79 ii

5 目录 模数转换器...80 A/D 转换器数据寄存器 ADR, ADRL/ADRH...80 A/D 转换器控制寄存器 ADCR...81 A/D 转换器时钟源寄存器 ACSR...83 A/D 输入引脚...84 A/D 转换的步骤...84 A/D 转换功能...88 中断...90 外部中断...95 定时 / 计数器中断...96 时基中断...96 实时时钟中断 RTC...97 A/D 中断...98 中断优先权...99 编程注意事项 复位和初始化 复位 振荡器 系统时钟配置 系统晶体 / 陶瓷振荡器 系统电阻电容振荡器 实时时钟振荡器 看门狗定时振荡器 内部时钟源 暂停模式下的暂停和唤醒 低电压检测器 LVD 看门狗定时器 蜂鸣器 掩膜选项 应用电路 第二部份程序语言 第二章指令集介绍 指令集 指令周期 数据的传送 算术运算 逻辑和移位运算 分支和控制的转换 位运算 查表运算 其它运算 iii

6 A/D with LCD 型单片机使用手册 指令设定一览表 惯例 第三章指令定义 第四章汇编语言和编译器 常用符号 语句语法 名称 操作数 操作数项 注解 编译伪指令 条件编译伪指令 文件控制伪指令 程序伪指令 数据定义伪指令 宏伪指令 汇编语言指令 名称 助记符 操作数 运算子和表达式 其它 前置引用 局部标记 汇编语言保留字 编译器选项 编译列表文件格式 源程序列表 编译总结 其它 第三部份开发工具 第五章单片机开发工具 HT-IDE3000 集成开发环境 盛群单片机仿真器 HT-ICE HT-ICE 接口卡 OTP 烧录器 OTP 适配卡 系统配置 HT-ICE 接口卡设定 iv

7 目录 安装 系统需求 硬件安装 软件安装 第六章快速开始 步骤一 : 建立一个新项目 步骤二 : 将源程序文件加到项目中 步骤三 : 建立项目 步骤四 : 烧录 OTP 单片机 步骤五 : 传送程序与掩膜选项单至 Holtek 第七章 LCD 仿真器 简介 LCD 面板配置文件 面板文件和当前项目的关系 选择 HT-LCDS LCD 面板图形文件 设定 LCD 面板配置文件 设定面板的配置 选择图形及定位 加入新的图形 删除一个图形 更换图形 更改图形位置 如何加入使用者定义矩阵 使用面板编辑器定义图形 使用批处理文件加入图形项目 选择 LCD 面板的颜色 LCD 仿真 停止仿真 附录 附录 A 特性曲线图 附录 B 封装信息 v

8 vi A/D with LCD 型单片机使用手册

9 前言 前言 自从盛群半导体公司成立以来, 即致力于单片机产品的设计与开发 虽然盛群半导体提供给客户各式各样的半导体器件, 但其中单片机仍是盛群的主要关键产品, 未来盛群半导体仍将继续扩展单片机产品系列完整性与功能性 通过长期累积的单片机研发经验与技术, 盛群半导体能为各式各样的应用范围开发出高性能且低价位的单片机芯片 许多重要的应用领域都需要数字化模拟输入的信号 ( 如外部传感器的接口 ) 并用液晶显示器显示结果 此类应用都会需要 A/D 转换器来数字化信号, 以及用 LCD 驱动器功能显示结果 为了满足这些需求, 盛群已经开发出 A/D with LCD 系列单片机, 除了具有 A/D 转换功能外, 还包含了 LCD 驱动功能, 可以直接连接到用户的液晶显示接口, 提供给用户完全集成的量测与显示模拟信号的方法 对于同时需要模拟信号处理与液晶显示功能的用户而言, 这种器件的高度集成可减少对外部器件的需求, 提供了高性能与低价位解决方案 为了使用者阅读方便, 本手册分成三部份 关于一般的单片机的规格信息可在第一部份中找到 与单片机程序相关的信息, 如指令集 指令定义和汇编语言编译伪指令, 可在第二部份找到 第三部份则是关于盛群半导体的开发工具有关如何安装和使用的相关信息 希望客户通过这本 A/D with LCD 型单片机使用手册, 能以一种简单 有效 且完整的方法, 实现他们在单片机上的各种应用 由于盛群半导体将单片机规格 程序规划和开发工具等信息结合在一本使用手册上, 相信客户可充分利用盛群半导体各种单片机的特性, 获取最大的产品优势 盛群半导体也欢迎客户提供宝贵的意见和建议, 以作为我们未来的改进参考 vii

10 viii A/D with LCD 型单片机使用手册

11 第一部份单片机概论 第一部份 单片机概论 1

12 2 A/D with LCD 型单片机使用手册

13 第一章硬件结构 第一章 硬件结构 1 本章主要为 A/D with LCD 型单片机的规格信息, 并且包含了所有参数和相关的硬件信息, 这些信息提供设计者此类单片机的主要硬件特性细节, 结合程序部份的信息将能够让使用者快速且成功地实现各种单片机的应用 参考本章中的相关部份, 也保证使用者可以充分利用 A/D with LCD 型单片机 简介 HT46R62/HT46C62 HT46R63/HT46C63 HT46R64/HT46C64 和 HT46R65/ HT46C65 是 8 位高性能 高效益的 RISC 结构单片机, 用于直接处理模拟信号以及需要在液晶显示器上显示量测数据的产品应用 除了具有暂停 唤醒功能 集成定时器功能 振荡器选择和可编程分频器等特性外, 再加上脉宽调制输出, 增加了单片机的使用灵活度, 而这些特性也同时保证实际应用时只需要最少的外部器件, 进而降低了整个产品的成本 有了集成模数转换功能及 LCD 驱动电路的优势, 再加上低功耗 高性能 灵活控制的输入 / 输出和低成本等特性, 此系列单片机广泛被应用在传感器信号处理及显示的场合, 如电子仪表 马达驱动器以及其它工业或家庭用品方面 该系列所有的单片机都具有相同的特性, 主要的不同在于输入输出引脚数目 RAM 和 ROM 的容量 定时器数目和大小 A/D 通道 PWM 输出和 LCD 输出等方面 HT46R62 HT46R63 HT46R64 和 HT46R65 都是属于一次可编程 (One-Time Programmable, OTP) 单片机, 当配合使用盛群半导体的程序开发工具时, 可简单有效的更新程序, 这提供了设计者快速有效的开发途径 而对于那些已经设计成熟的应用,Mask 版的 HT46C62 HT46C63 HT46C64 和 HT46C65 则可满足大量生产和低成本的需求, 由于和 OTP 版的功能完全兼容,Mask 版对于已经设计完成而想要降低成本的产品, 提供了一个理想的解决方案 3

14 A/D with LCD 型单片机使用手册 特性 技术特性 高性能 RISC 结构 低功率完全静态 CMOS 设计 工作电压 : 在 4MHz 下, 由 2.2V 到 5.5V 在 8MHz 下, 由 3.3V 到 5.5V 功率损耗 : 在 5V/8MHz 下, 典型值为 3mA( 针对 ADC 除能时的晶体振荡器 ) 不使用看门狗定时器时,3V 下静态 (standby) 电流小于 1µA 周期时间 : 在 8MHz 系统时钟下指令周期达到 0.5µs 温度范围 : 工作温度 40 C 到 85 C( 工业级规格 ) 储存温度 50 C 到 125 C 内核特性 程序存储器 2K 14 OTP/Mask ROM (HT46R62/HT46C62) 4K 15 OTP/Mask ROM (HT46R63/HT46C63, HT46R64/HT46C64) 8K 16 OTP/Mask ROM (HT46R65/HT46C65) 数据存储器 88 8 RAM (HT46R62/HT46C62) RAM (HT46R63/HT46C63) RAM (HT46R64/HT46C64) RAM (HT46R65/HT46C65) LCD 驱动 或 19 4 Segments (HT46R62/HT46C62) 20 3 或 19 4 Segments (HT46R63/HT46C63) 或 32 4 Segments (HT46R64/HT46C64) 或 40 4 Segments (HT46R65/HT46C65) 表格读取功能 多层硬件堆栈 6-level (HT46R62/HT46C62) 8-level (HT46R63/HT46C63, HT46R64/HT46C64) 16-level (HT46R65/HT46C65) 直接和间接数据寻址模式 位操作指令 63 条强大的指令 大多数指令执行时间只需要一个指令周期 4

15 第一章硬件结构 周边特性 从 20 个到 32 个具有上拉功能的双向输入 / 输出口 PA 端口具有唤醒功能 8 9 或 10 位多通道 A/D 转换器 内部 LCD 驱动 内部专用的 LCD 存储器 脉宽调制输出 比较器 ( 只有 HT46R63/HT46C63 具有 ) 二个外部中断输入 事件计数输入 具有预分频器 (Prescaler) 及中断功能的定时器 看门狗定时器 (WDT) 暂停与唤醒特性可以节省功耗 PFD 输出 (HT46R63/HT46C63 除外 ) 蜂鸣器驱动输出 (HT46R63/HT46C63 除外 ) 芯片内置晶体及电阻电容振荡器 32768Hz 实时时钟 (RTC) 功能 具有低压保护功能的低电压复位 (LVR) 特性 具有低电压检测器 (HT46R63/HT46C63 除外 ) 具有烧录电路接口及程序代码保护功能 掩膜板单片机适用于大量生产 提供高效的软硬支持工具 5

16 A/D with LCD 型单片机使用手册 选择表 这系列的 A/D with LCD 型单片机具有广泛的功能特性, 其中有些是普通的的, 有些则是独有的 大部份的特性对该系列所有的单片机来说是共通的, 主要的区别在于程序存储器和数据存储器的容量 I/O 数目 定时器功能 A/D 通道 LCD 输出和 PWM 输出 为了帮助使用者在应用时能选择适当的单片机, 以下的表格提供了各个单片机主要的特性概述 型号 HT46R62 HT46C62 HT46R63 HT46C63 HT46R64 HT46C64 HT46R65 HT46C65 程序数据输入 / 存储器存储器输出 2K K K K LCD 定时器 中断 A/D PWM PFD 蜂鸣器堆栈 20 2, 封装种类 20 3 或 bit bit 6 8-bit SSOP SSOP, 或 16-bit bit 8 8-bit QFP , 33 3 或 , 41 3 或 bit 1 16-bit bit 8 8-bit bit bit 8 8-bit SSOP, 100QFP 56SSOP, 100QFP 注意 : 1. 型号部份包含 C 的为 Mask 版本, 而 R 则是 OTP 版 2. 对于具有两种封装形式的单片机而言, 选择表反应出对大量封装的情况 6

17 第一章硬件结构 系统框线图以下的系统框线图为 A/D with LCD 型单片机系列的主要功能 5 O I JA 4 + : J= I? E = J H , 6 I? E = J H +,, HEL A HI / 6 E E C / A A H= J H +, A HO, = J= A HA I I, A H 7: 1 I JHK? JE, A H * = 2 E JA H A HO 2 E JA H 1 I JHK? JE 4 A C EI JA H 7 : ) + + ) 7 5 D EBJA H 2 H C H= A HO K F 6 = > A 4 A C EI JA HA I I, A H K F 6 = > A 2 E JA H 2 H C H= + K JA H 5 J=? 5 J=? 2 E JA H 6 2 H C H= A HO + F = H= J H + BEC K H= JE F JE 4 A I A J 8 4 8, ), + L A HJA H + BEC 9 = J? C 4 A C EI JA H 6 E A H + BEC 6 E A HI 4 A C EI JA H + K JA H 2., + BEC 4 A C EI JA H 2 9 * K A H, HEL A H + BEC 1 JA HHK F J + BEC 4 A C EI JA H + EH? K EJ 4 A C EI JA H 1 2 HJI, A L E? A 2 H C H= E C + EH? K EJHO 注意 : 1. 本系统框线图为 OTP 单片机, 至于 Mask 型单片机则没有 Device Programming Circuitry 2. 只有在 HT46R63/HT46C63 中才具有比较器功能 3. 在 HT46R63/HT46C63 中没有 LVD 蜂鸣器驱动器和 PFD 7

18 A/D with LCD 型单片机使用手册 引脚分配 2 ) * 2 ) * 2 ) 2 )! 2., 2 ) " 2 ) # 2 ) $ 2 ) % 2 * ) 2 * ) 2 * ) 2 *! )! 2 * " ) " 2 * # ) # , 2 9 2, 2 9 2, 2 9 2, " 1 6 2, # 1 6 2, $ , 8 ) : ! " # $ % & '! " # $ % & '! " # $ % & # $ # # # " #! # # # " ' " & " % " $ " # " " "! " " "! '! &! %! $! #! "!!!!! 0 6 " $ 4 $ 0 6 " $ + $ # $ ) ' ,, 5 +! 5 + " 5 - / 5 - / 5 - / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - / 5 - / 5 - / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & +! 5 - / ' " 5 +! 8,, ) 2 ) 2 ) 2 )! 2 ) " 2 ) # 2 ) $ 2 ) % * ) 2 * ) 2 * ) 2 *! )! ) 8,, ! 2, 2 9 2, 2 9 2, 2 9 2,! 2 9!! " # $ % & '! " # $ % & '! " # $ % & # $ # # # " #! # # # " ' " & " % " $ " # " " "! " " "! '! &! %! $! #! "!!!!! 0 6 " $ 4 $! 0 6 " $ + $! # $ ) ' + 0 / , ! 5 - / ' 5 - / " 5 - /! 5 - / 5 - / 5 - / 5 - / ' 5 - / & 5 - / % 5 - / $ 5 - / # 5 - / " 5 - /! 5 - / 5 - / 5 - / 2, % 2, $ 6 4 2, # 1 6 2, " ) * 2 ) * 2 ) 2 )! 2., 2 ) " 2 ) # 2 ) $ 2 ) % 2 * ) 2 * ) 2 * ) 2 *! )! 2 * " ) " 2 * # ) # , 2 9 2, 2 9 2, 2 9 2, " 1 6 2, # 1 6 2, $ , 8 ) : ! " # $ % & '! " # $ % & '! " # $ % & # $ # # # " #! # # # " ' " & " % " $ " # " " "! " " "! '! &! %! $! #! "!!!!! 0 6 " $ 4 $ " 0 6 " $ + $ " # $ ) ' ,, 5 +! 5 + " 5 - / & 5 - / ' 5 - / 5 - / 5 - / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - / 5 - / 5 - / 5 - /! 5 - / " 5 - / # 5 - / $ +! 5 - /! / " 5 +! 8,, ) * 2 ) * 2 ) 2 )! 2., 2 ) " , / 5 + " 5 +! 8,, ) 2 ) 2 ) 2 )! 2 ) " 2 ) # 2 ) $ 2 ) % * ) 2 * ) 2 * ) 2 *! )! 2 * " ) " 2 * # ) # 2 * $ ) $ 2 * % ) % ) 8,, ' ' ' & ' % ' $ ' # ' " '! ' ' ' & ' & & & % & $ & # & " &! & & & % '! " # $ % & '! % & % % % $ % # % " %! % % % $ ' $ & " $ % # 0 6 " $ 4 $! 0 6 " $ + $! $ $ $ % & '! " # $ % & ' 3. 2 ) $ # $ " $! $ $ $ # ' # & # % # $ # # # " #! #! #!!!!! "! #! $! %! &! ' " " " "! " " " # " $ " % " & " ' # ! 5 - / ' 5 - / & 5 - / % 5 - / $ 5 - / # 5 - / " 5 - /! 5 - / 5 - / 5 - / 5 - / ' 5 - / & 5 - / % 5 - / $ 5 - / # 5 - / " 5 - /! 5 - / 5 - / 5 - / + 2 ) # ) $ 2 ) % 2 * ) 2 * ) 2 * ) 2 *! )! 2 * " ) " 2 * # ) # 2 * $ ) $ 2 * % ) % , 2 9 2, 2 9 2, 2 9 2,! 2 9! 2, " 1 6 2, # 1 6 2, $ 6 4 2, % ' ' ' & ' % ' $ ' # ' " '! ' ' ' & ' & & & % & $ & # & " &! & & & % '! " # $ % & '! % & % % % $ % # % " %! % % % $ ' $ & " $ % # 0 6 " $ 4 $ " 0 6 " $ + $ " $ $ $ % & '! " # $ % & ' 3. 2 ) $ # $ " $! $ $ $ # ' # & # % # $ # # # " #! #! #!!!!! "! #! $! %! &! ' " " " "! " " " # " $ " % " & " ' # 5 - / 5 - / 5 - /! / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - / 5 - / 5 - / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - / 5 - / / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - /! 5 - /! +! 5 - /! ) : 8 +, , % 2, $ 6 4 2, # 1 6 2, " 1 6 2,! 2 9! 2, 2 9 2, 2 9 2, % 2 + $ 2 + # 2 + " 2 +!

19 第一章硬件结构 2 ) * 2 ) * 2 ) 2 )! 2., 2 ) " 2 ) # 2 ) $ 2 ) % 2 * ) 2 * ) 2 * ) 2 *! )! 2 * " ) " 2 * # ) # , 2 9 2, 2 9 2, 2 9 2, " 1 6 2, # 1 6 2, $ , 8 ) : ! " # $ % & '! " # $ % & '! " # $ % & # $ # # # " #! # # # " ' " & " % " $ " # " " "! " " "! '! &! %! $! #! "!!!!! 0 6 " $ 4 $ # 0 6 " $ + $ # # $ ) ' ,, 5 +! 5 + " 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - / 5 - / 5 - / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - /! 5 - /! 5 - /! 5 - /!! 5 - /! " +! 5 - / " ) # ) $ 2 ) % 2 * ) 2 * ) 2 * ) 2 *! )! 2 * " ) " 2 * # ) # 2 * $ ) $ 2 * % ) % , 2 9 2, 2 9 2, 2 9 2,! 2 9! 2, " 1 6 2, # 1 6 2, $ 6 4 2, % / & 5 - / % 5 - / $ 5 - / # 5 - / " 5 - /! 5 - / 5 - / 5 - / 5 + " 5 +! 8,, ) * 2 ) * 2 ) 2 )! 2., 2 ) " ' ' ' & ' % ' $ ' # ' " '! ' ' ' & ' & & & % & $ & # & " &! & & & % '! % & " % % # % $ $ % # % % " & %! ' % % % $ '! $ & " $ % 0 6 " $ 4 $ # 0 6 " $ + $ # # $ $ $ 3. 2 ) $ # % $ " & $! ' $ $ $ # '! # & " # % # # $ $ # # % # " & #! ' #! #!!!!! "! #! $! %! &! ' " " " "! " " " # " $ " % " & " ' # 5 - /! 5 - /! 5 - /! 5 - /!! 5 - /! " 5 - /! # 5 - /! $ 5 - /! % 5 - /! & 5 - /! ' +! 5 - / " ) : 8 +, 5 - / ' 5 - / 5 - / / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 5 - / 5 - / 5 - / 5 - /! 5 - / " 5 - / # 5 - / $ 5 - / % 5 - / & 5 - / ' 注意 : 单片机封装的引脚兼容特性, 使单片机在硬件应用时以最小的改变去提供器件直接升级到更高的功能 9

20 A/D with LCD 型单片机使用手册 引脚说明 HT46R62/HT46C62 引脚名称 I/O 掩膜选项说明 PA0/BZ PA1/ BZ PA2 PA3/PFD PA4~PA7 PB0/AN0 PB1/AN1 PB2/AN2 PB3/AN3 PB4/AN4 PB5/AN5 PD0/PWM0 PD1/PWM1 PD2/PWM2 PD4/INT0 PD5/INT1 PD6/TMR OSC1 OSC2 OSC3 OSC4 I/O I/O I/O I O I O Pull-high Wake-up Buzzer PFD Pull-high Pull-high PWM Interrupt Crystal or RC RTC or System Clock VLCD 提供 LCD 电源 8 位双向输入 / 输出口, 每个位可由掩膜选项配置成唤醒输入 软件指令决定引脚为 CMOS 输出或斯密特触发器输入呼 掩膜选项决定端口上哪个位带上拉电阻 引脚 PA0 PA1 和 PA3 分别与 BZ BZ 和 PFD 引脚共用, 该功能由掩膜选项选择 6 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯密特触发器输入 掩膜选项决定端口上哪个位带上拉电阻 PB 与 A/D 输入引脚共用 A/D 输入是通过软件指令选择, 一旦被选择作为 A/D 输入, 则输入 / 输出和上拉电阻功能将自动无效 6 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯密特触发器输入 掩膜选项决定端口上哪个位带上拉电阻 PD0~PD2 与 PWM0~PWM2 输入引脚共用, 该功能由掩膜选项选择, 引脚 PD4 和 PD5 分别与 INT0 和 INT1 引脚共用 掩膜选项决定中断使能 / 除能和中断低 / 高电平触发形式 引脚 PD6 与外部定时器输入引脚 TMR 共用 OSC1 OSC2 连接外部 RC 电路或晶体振荡器 ( 由掩膜选项决定 ) 作为内部系统时钟 在 RC 模式下,OSC2 的输出端信号是系统时钟四分频 如果使用 OSC3 和 OSC4 引脚上的 RTC 振荡器作为系统时钟, 则 OSC1 和 OSC2 引脚应该悬空 OSC3 和 OSC4 连接一个 32768Hz 的晶体振荡器形成一个定时用的实时时钟, 或是形成一个系统时钟 10

21 第一章硬件结构 引脚名称 I/O 掩膜选项说明 VMAX IC 最大电压, 连接到 V DD V LCD 或 V1 V1, V2, C1, C2 I 提供 LCD 电压泵 SEG0~SEG7 SEG8~SEG15 O O SEG0~SEG7 CMOS Output SEG8~SEG15 CMOS Output LCD 面板中 segment 的 LCD 驱动输出 由掩膜选项决定所有引脚作为 segment 驱动或是作为 CMOS 输出使用 LCD 面板中 segment 的 LCD 驱动输出 由掩膜选项决定各个引脚作为 segment 驱动或是作为 CMOS 输出使用 SEG16~SEG18 O LCD 面板中 segment 的 LCD 驱动输出 COM0~COM2 COM3/SEG19 O 1/2, 1/3 or 1/4 Duty 由 LCD 占空比周期掩膜选项确定 SEG19 是配置成 segment 的驱动还是 common 的输出驱动 COM0~COM2 是 LCD 的 common 输出 RES I 斯密特触发器复位输入 低电平有效 VDD 正电源供应 VSS 负电源供应, 接地 注意 : 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能 2. 引脚可以单独的选择带上拉电阻 11

22 A/D with LCD 型单片机使用手册 HT46R63/HT46C63 引脚名称 I/O 掩膜选项说明 PA0~PA7 PB0/AN0 PB1/AN1 PB2/AN2 PB3/AN3 PB4/AN4 PB5/AN5 PB6/AN6 PB7/AN7 I/O I/O Pull-high Wake-up Pull-high PC0~PC7 I/O Pull-high PD0/PWM0 PD1/PWM1 PD2/PWM2 PD3/PWM3 PD4/INT0 PD5/INT1 PD6/TMR PD7 OSC1 OSC2 OSC3 OSC4 I/O I O I O Pull-high PWM Interrupt Crystal or RC 8 位双向输入 / 输出口, 每个位可由掩膜选项配置成唤醒输入 软件指令决定引脚是 CMOS 输出或斯密特触发器输入 掩膜选项决定引脚 PA0~PA3 和 PA4~PA7 是否带上拉电阻, 引脚不能单独的选择带上拉电阻 8 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯密特触发器输入 掩膜选项决定引脚 PB0~PB3 和 PB4~PB7 是否带上拉电阻, 引脚不能单独的选择带上拉电阻 PB 与 A/D 输入引脚共用 A/D 输入通过软件指令选择, 一旦被选择作为 A/D 输入,I/O 功能和上拉电阻功能将自动无效 8 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯密特触发器输入 掩膜选项决定引脚 PC0~PC3 和 PC4~PC7 是否带上拉电阻, 引脚不能单独的选择带上拉电阻 8 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯密特触发器输入 掩膜选项决定引脚 PD0~PD3 和 PD4~PD7 是否带上拉电阻, 引脚不能单独的选择带上拉电阻 PD0~PD3 与 PWM0~PWM3 输入引脚共用, 该功能通过掩膜选项选择, 引脚 PD4 和 PD5 分别与外部中断 INT0 和 INT1 引脚共用, 掩膜选项决定中断使能 / 除能和中断低 / 高电平触发形式, 引脚 PD6 与外部定时器输入引脚 TMR 共用 OSC1 OSC2 连接 RC 电路或外部晶体振荡器 ( 由掩膜选项决定 ) 作为内部系统时钟 在 RC 模式下,OSC2 的输出端信号是系统时钟四分频 连接 32768Hz 的晶体振荡器产生实时时钟 12

23 第一章硬件结构 引脚名称 I/O 掩膜选项 说明 CMPN I 比较器反向输入 CMPP I 比较器正向输入 CMPO O 比较器输出 CHGO O 比较器以 32768Hz 输出 AVDD A/D 转换器参考电压输入, 由外部连接至 VDD VLCD LCD 电源供应 SEG0~SEG6 O LCD 面板中 segment 的 LCD 驱动输出 SEG7~SEG10 O SEG7~SEG10 LCD 面板中 segment 的 LCD 驱动输出, 由掩膜选项决定所有 CMOS Output 引脚作为 segment 驱动或是作为 CMOS 输出使用 SEG11~SEG14 O LCD 面板中 segment 的 LCD 驱动输出, 由掩膜选项决定所有更高的灌电流能力 SEG11~SEG14 引脚作为 segment 驱动或是作为 CMOS 输出使用 如果作为 CMOS Output CMOS 输出使用, 则这些引脚比 SEG7~SEG10 CMOS 输出有 SEG15~SEG18 O LCD 面板 segment 的 LCD 驱动输出, 由掩膜选项可以选择所的灌电流能力 SEG15~SEG18 有的引脚被使用为部分的驱动或 CMOS 输出 如果使用为 CMOS Output CMOS 输出, 则这些引脚比 SEG7~SEG10 CMOS 输出有更高 COM0~COM2 LCD 工作周期掩膜选项决定 SEG19 是否配置成部分的驱动或 O 1/3 or 1/4 Duty COM3/SEG19 是一般的输出驱动 COM0~COM2 是 LCD 的一般输出 RES I 触发复位输入 低电平动作 VDD 正电源供应 VSS 负电源供应, 接地 注意 : 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能 2. 引脚不能单独的选择带上拉电阻, 只有四个一组的引脚才可以选择上拉电阻掩膜选项 3. 引脚 PB4/AN4~PB7/AN7 只有在 100-pin 的 QFP 封装中才有 4. 引脚 PC4~PC7 只有在 100-pin 的 QFP 封装中才有 5. Segment 引脚 SEG15~SEG18 只有在 100-pin 的 QFP 封装中才有 6. 如果 SEG11~SEG18 的输出被配置成 CMOS 输出, 则它们比 SEG7~SEG10 的输出具有更高的灌电流能力 13

24 A/D with LCD 型单片机使用手册 HT46R64/HT46C64 引脚名称 I/O 掩膜选项 说明 PA0/BZ Pull-high 8 位双向输入 / 输出口, 每个位可由掩膜选项配置成唤醒输入 PA1/ BZ Wake-up 软件指令决定引脚为 CMOS 输出或斯密特触发器输入 掩膜 PA2 I/O Buzzer 选项决定端口上哪个位带上拉电阻 引脚 PA0 PA1 和 PA3 PA3/PFD PFD 分别与 BZ BZ 和 PFD 引脚共用, 该功能通过掩膜选项选择 PA4~PA7 PB0/AN0 PB1/AN1 8 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯 PB2/AN2 密特触发器输入 掩膜选项决定端口上的所有引脚是否带上拉 PB3/AN3 I/O Pull-high 电阻 PB 与 A/D 输入引脚共用 A/D 输入通过软件指令选择, PB4/AN4 一旦被选择作为 A/D 输入,I/O 功能和上拉电阻功能将自动无 PB5/AN5 效 PB6/AN6 PB7/AN7 PD0/PWM0 PD1/PWM1 8 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯 PD2/PWM2 密特触发器输入 掩膜选项决定端口上的所有引脚是否带上拉 Pull-high PD3/PWM3 电阻 PD0~PD3 与 PWM0~PWM3 输入引脚共用, 该功能由 I/O PWM PD4/INT0 掩膜选项选择, 引脚 PD4 和 PD5 分别与 INT0 和 INT1 引脚共 Interrupt PD5/INT1 用, 掩膜选项决定中断使能 / 除能和中断低 / 高电平触发形式, PD6/TMR0 引脚 PD6 和 PD7 与外部定时器输入引脚 TMR0 和 TMR1 共用 PD7/TMR1 OSC1 OSC2 连接外部 RC 电路或晶体振荡器 ( 由掩膜选项决 定 ) 作为内部系统时钟 对于外部 RC 系统时钟的操作,OSC2 OSC1 I Crystal or RC 的输出端信号是系统时钟四分频 如果使用 OSC3 和 OSC4 引 OSC2 O 脚上的 RTC 振荡器作为系统时钟, 则 OSC1 和 OSC2 引脚应 该被悬空 OSC3 OSC4 I O RTC or System Clock OSC3 和 OSC4 连接一个 32768Hz 的晶体振荡器形成一个定时用的实时时钟, 或是形成一个系统时钟 VLCD 提供 LCD 电源 VMAX IC 最大电压, 连接至 V DD V LCD 或 V1 14

25 第一章硬件结构 引脚名称 I/O 掩膜选项说明 V1, V2, C1, C2 I 提供 LCD 电压泵 SEG0~SEG7 O SEG0~SEG7 CMOS Output LCD 面板中 segment 的 LCD 驱动输出, 由掩膜选项决定所有引脚作为 segment 驱动或是作为 CMOS 输出使用 SEG8~SEG15 O SEG8~SEG15 LCD 面板中 segment 的 LCD 驱动输出, 由掩膜选项决定各个 CMOS Output 引脚作为 segment 驱动或是作为 CMOS 输出使用 SEG16~SEG31 O LCD 面板中 segment 的 LCD 驱动输出 由 LCD 占空比周期掩膜选项决定 SEG32 是配置成 segment 的 COM0~COM2 1/2, 1/3 or 1/4 O 驱动还是 common 的输出驱动 COM0~COM2 是 LCD 的 COM3/SEG32 Duty common 输出 RES I 触发复位输入 低电平有效 VDD 正电源供应 VSS 负电源供应, 接地 注意 : 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能 2. 引脚可以单独的选择带上拉电阻 3. 引脚 PB6/AN6 和 PB7/AN7 只有在 100-pin 的 QFP 封装中才有 4. 引脚 PD3/PWM3 只有在 100-pin 的 QFP 封装中才有 5. 引脚 PD7/TMR1 只有在 100-pin 的 QFP 封装中才有, 而在 56-pin 的 SOP 封装中只有 1 个外部定时器输入 TMR0 6. Segment 引脚 SEG0~SEG7 和 SEG27~SEG31 只有在 100-pin 的 QFP 封装中才有 15

26 A/D with LCD 型单片机使用手册 HT46R65/HT46C65 引脚名称 I/O 掩膜选项 说明 PA0/BZ Pull-high 8 位双向输入 / 输出口, 每个位可由掩膜选项配置成唤醒输入 PA1/ BZ Wake-up 软件指令决定引脚为 CMOS 输出或斯密特触发器输入 掩膜 PA2 I/O Buzzer 选项决定端口上哪个位带上拉电阻 引脚 PA0 PA1 和 PA3 PA3/PFD PFD 分别与 BZ BZ 和 PFD 引脚共用, 该功能通过掩膜选项选择 PA4~PA7 PB0/AN0 PB1/AN1 PB2/AN2 8 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯 PB3/AN3 密特触发器输入, 掩膜选项决定端口上哪个位带上拉电阻 I/O Pull-high PB4/AN4 PB 与 A/D 输入引脚共用 A/D 输入通过软件指令选择, 一旦 PB5/AN5 被选择作为 A/D 输入,I/O 功能和上拉电阻功能将自动无效 PB6/AN6 PB7/AN7 PD0/PWM0 PD1/PWM1 8 位双向输入 / 输出口 软件指令决定引脚为 CMOS 输出或斯 PD2/PWM2 密特触发器输入 掩膜选项决定端口上所有引脚是否带上拉电 Pull-high PD3/PWM3 阻 PD0~PD3 与 PWM0~PWM3 输入引脚共用, 该功能通过 I/O PWM PD4/INT0 掩膜选项选择, 引脚 PD4 和 PD5 分别与 INT0 和 INT1 引脚共 Interrupt PD5/INT1 用, 掩膜选项决定中断使能 / 除能和中断低 / 高电平触发形式, PD6/TMR0 引脚 PD6 和 PD7 与外部定时器输入引脚 TMR0 和 TMR1 共用 PD7/TMR1 OSC1 OSC2 连接外部 RC 电路或晶体振荡器 ( 由掩膜选项决 定 ) 作为内部系统时钟 对于外部 RC 系统时钟的操作,OSC2 OSC1 I Crystal or RC 的输出端信号是系统时钟四分频 如果使用 OSC3 和 OSC4 引 OSC2 O 脚上的 RTC 振荡器作为系统时钟, 则 OSC1 和 OSC2 引脚应 该被悬空 OSC3 OSC4 I O RTC or System Clock OSC3 和 OSC4 连接一个 32768Hz 的晶体振荡器形成一个定时用的实时时钟, 或是形成一个系统时钟 VLCD 提供 LCD 电源 VMAX IC 最大电压, 连接到 V DD V LCD 或 V1 16

27 第一章硬件结构 引脚名称 I/O 掩膜选项说明 V1,V2,C1,C2 I 提供 LCD 电压泵 SEG0~SEG7 SEG8~SEG15 O O SEG0~SEG7 CMOS Output SEG8~SEG15 CMOS Output LCD 面板中 segment 的 LCD 驱动输出, 由掩膜选项决定所有引脚作为 segment 驱动或是作为 CMOS 输出使用 LCD 面板中 segment 的 LCD 驱动输出, 由掩膜选项决定所有引脚作为 segment 驱动或是 CMOS 输出使用 SEG16~SEG23 O SEG16~SEG23 LCD 面板中 segment 的 LCD 驱动输出, 由掩膜选项决定各个 CMOS Output 引脚作为 segment 驱动或是 CMOS 输出使用 SEG24~SEG39 O LCD 面板中 segment 的 LCD 驱动输出 由 LCD 占空比周期掩膜选项决定 SEG40 是配置成 segment 的 COM0~COM2 1/2, 1/3 or 1/4 O 驱动还是 comon 的输出驱动 COM0~COM2 是 LCD 的 COM3/SEG40 Duty common 输出 RES I 触发复位输入 低电平有效 VDD 正电源供应 VSS 负电源供应, 接地 注意 : 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能 2. 引脚可以单独的选择带上拉电阻 3. 引脚 PB6/AN6 和 PB7/AN7 只有在 100-pin 的 QFP 封装中才有 4. 引脚 PD3/PWM3 只有在 100-pin 的 QFP 封装中才有 5. 引脚 PD7/TMR1 只有在 100-pin 的 QFP 封装中才有, 而在 56-pin 的 SSOP 封装中只有 1 个外部定时器输入 TMR0 6. Segment 引脚 SEG0~SEG15 和 SEG35~SEG39 只有在 100-pin 的 QFP 封装中才有 17

28 A/D with LCD 型单片机使用手册 极限参数 供应电压...V SS 0.3V to V SS +6.0V 输入电压... V SS 0.3V to V DD +0.3V 储存温度 C~125 C 工作温度 C~85 C 这里只强调额定功率, 超过极限参数功率的范围将对芯片造成损害, 芯片在所标示范围外的表现并不能预期, 而长期工作在标示范围外条件下也可能影响芯片的可靠性 直流电气特性 对于 HT46R63/HT46C63 Ta=25 C 符号 参数 测试条件 V DD 条件 最小 典型 最大 单位 V DD Operating Voltage f SYS =4MHz V f SYS =8MHz V V LCD LCD Highest Voltage 0 V DD V I DD1 Operating Current (RC OSC, 3V No load, 1 2 Analog Circuit Disabled) 5V f SYS =4MHz 3 5 ma I DD2 Operating Current 3V No load, 1 2 (RC OSC) 5V f SYS =4MHz 3 5 ma I DD3 Operating Current 5V No load, f SYS =8MHz 3 5 ma I STB1 Standby Current 3V No load, 5 (WDT OSC On, RTC Off, LCD Off) 5V system HALT 15 µa Standby Current 3V 1 I STB2 (WDT OSC Off, RTC Off, System HALT µa LCD Off) 5V 1 Standby Current 3V 5 I STB3 (WDT OSC Off, RTC On, System HALT µa LCD Off) 5V 15 I STB4 Standby Current 3V (WDT OSC Off, RTC On, System HALT LCD On with Low Current V LCD =V DD 5V Internal R Type Bias Option) µa 18

29 第一章硬件结构 符号 参数 测试条件 最小 典型 最大 单位 V DD 条件 I STB5 Standby Current 3V (WDT OSC Off, RTC On, System HALT LCD On with Middle Current V LCD =V DD 5V Internal R Type Bias Option) µa I STB6 Standby Current 3V (WDT OSC Off, RTC On, System HALT LCD On with High Current V LCD =V DD 5V Internal R Type Bias Option) µa V IL1 Input Low Voltage for I/O Ports 0 0.3V DD V V IH1 Input High Voltage for I/O Ports 0.7V DD V DD V V IL2 Input Low Voltage ( RES ) 0 0.4V DD V V IH2 Input High Voltage ( RES ) 0.9V DD V DD V I OL1 I/O Port Sink Current 3V V OL =0.1V DD 6 12 ma 5V I OH1 I/O Port Source Current 3V V OH =0.9V DD 2 4 ma 5V 5 8 I OL2 SEG7~SEG10 3V 8 V OL =0.1V DD Logical Sink Current 5V 16 ma I OH2 SEG7~SEG18 3V 2 4 V OH =0.9V DD Logical Source Current 5V 4 8 ma I OL3 SEG11~SEG18 3V 16 V OL =0.1V DD Logical Sink Current 5V 32 ma I OLTOTAL I/O Port Total Sink Current 100 ma I OHTOTAL I/O Port Total Source Current 100 ma R PH Pull-high Resistance 3V kω 5V V OS Comparator Input Offset Voltage mv V 1 Comparator Input Voltage Range 0.2 V DD 0.8 V V AD A/D Input Voltage 0 V DD V E AD A/D Conversion integral Nonlinearity Error ±0.5 ±1 LSB I ADC Additional Power Consumption 3V if A/D Converter is used 5V ma 19

30 A/D with LCD 型单片机使用手册 对于 HT46R62/HT46C62, HT46R64/HT46C64, HT46R65/HT46C65 Ta=25 C V DD I DD1 I DD2 符号 参数 Operating Voltage Operating Current (Crystal OSC) Operating Current (RC OSC) 测试条件最小典型最大单位 V DD 条件 f SYS =4MHz V f SYS =8MHz V 3V No load, f SYS =4MHz 1 2 5V ADC Off 3 5 3V No load, f SYS =4MHz 1 2 5V ADC Off 3 5 I DD3 Operating Current 5V No load, f SYS=8MHz 3 5 ma ADC Off Operating Current 3V I DD4 (f SYS =32768Hz) 5V No load, ADC Off ma I STB1 I STB2 I STB3 I STB4 I STB5 I STB6 Standby Current (f S =T1) Standby Current (f S =32,768kHz OSC) Standby Current (f S = WDT RC OSC) Standby Current (f S =32,768kHz OSC) Standby Current (f S =32,768kHz OSC) Standby Current (f S = WDT RC OSC) 3V No load, 1 system HALT 5V LCD Off 2 3V No load, system HALT 5V LCD On, C type V No load, 2 5 system HALT 5V LCD On, C type 6 10 No load, 3V system HALT, LCD On,R type, 1/2 bias, V LCD =V DD 5V (Low bias current option) No load, 3V system HALT, LCD On, R type, 1/3 bias, V LCD =V DD 5V (Low bias current option) No load, 3V system HALT, LCD On, R type, 1/2 bias, V LCD =V DD 5V (Low bias current option) ma ma µa µa µa µa µa µa 20

31 第一章硬件结构 符号 I STB7 V IL1 V IH1 参数 Standby Current (f S = WDT RC OSC) Input Low Voltage for I/O Ports, TMR, TMR0, TMR1, INT0, INT1 Input High Voltage for I/O Ports, TMR, TMR0, TMR1, INT0, INT1 V DD 测试条件 条件 最小典型最大单位 No load, 3V system HALT, LCD On, R type, 1/3 bias, V LCD =V DD 5V (Low bias current option) 0 0.3V DD V 0.7V DD V DD V V IL2 Input Low Voltage ( RES ) 0 0.4V DD V V IH2 Input High Voltage ( RES ) 0.9V DD V DD V I OL I OH R PH I/O Port Segment Logic Output Sink Current I/O Port Segment Logic Output Sink Current Pull-high Resistance 3V V OL =0.1V DD V V V OH =0.9V DD 2 4 5V 5 8 3V V V LVR Low Voltage Reset Voltage V V LVD Low Voltage Detector Voltage V V AD A/D Input Voltage 0 V DD V E AD I ADC A/D Conversion integral Nonlinearity Error Additional Power Consumption if A/D Converter is used µa ma ma kω ±0.5 ±1 LSB 3V V ma 21

32 A/D with LCD 型单片机使用手册 交流电气特性 对于 HT46R63/HT46C63 Ta=25 C 符号 f SYS1 System Clock 参数 测试条件最小典型最大单位 V DD 条件 2.2V~5.5V khz 3.3V~5.5V f SYS2 System Clock (32768Hz Crystal OSC) Hz 2.2V~5.5V f TIMER Timer Input Frequency 3.3V~5.5V khz t WDTOSC Watchdog Oscillator Period 3V µs 5V t WDT1 Watchdog Time-out Period (WDT OSC) 2 16 t WDTOSC t WDT2 Watchdog Time-out Period (f SYS /4) 2 18 *t SYS t WDT3 Watchdog Time-out Period (32768Hz RTC) 2 s t RES External Reset Low Pulse Width 1 µs t SST System Start-up Timer Period Power-up or Wake-up 1024 *t SYS from HALT t INT Interrupt Pulse Width 1 µs t AD A/D Clock Period 1 µs t ADC A/D Conversion Time 64 t AD t ADCS A/D Sampling Time 32 t AD t COMP Response Time of Comparator 3 µs *t SYS =1/f SYS 22

33 第一章硬件结构 对于 HT46R62/HT46C62, HT46R64/HT46C64, HT46R65/HT46C65 Ta=25 C 符号 f SYS1 f SYS2 参数 System Clock System Clock (32768Hz Crystal OSC) 测试条件 V DD 条件 最小 典型 最大 单位 2.2V~5.5V khz 3.3V~5.5V Hz f RTCOSC RTC Frequency Hz Timer I/P Frequency f TIMER (TMR0/TMR1) t WDTOSC Watchdog Oscillator Period 2.2V~5.5V V~5.5V V V khz µs t WDT1 Watchdog Time-out Period (WDT OSC) t WDTOSC t WDT2 Watchdog Time-out Period (f SYS /4) *t SYS t WDT3 Watchdog Time-out Period (32768Hz RTC) 1 2 s t RES External Reset Low Pulse Width 1 µs t SST System Start-up Timer Period Power-up or Wake-up from HALT 1024 *t SYS t LVR Low Voltage Width to Reset 1 ms t INT Interrupt Pulse Width 1 µs t AD A/D Clock Period 5V 1 µs t ADC A/D Conversion Time 76 t AD t ADCS A/D Sampling Time 32 t AD * t SYS =1/f SYS1 或 1/f SYS2 23

34 A/D with LCD 型单片机使用手册 系统结构 内部系统结构是盛群半导体公司 A/D with LCD 型单片机具有良好运行性能的主要因素 由于采用 RISC 结构, 此系列单片机具有高运算速度和高性能的特性 通过流水线的方式, 指令的取得和执行同时进行, 此举使得除了分支 调用和查表指令外, 其它指令都能在一个指令周期内完成 8 位的 ALU 参与指令集中所有的运算, 它可完成算术运算 逻辑运算 移位 加 减和分支等功能, 而内部的数据路径则以通过累加器或 ALU 的方式加以简化 有些寄存器在数据存储器中被实现, 且可以直接或间接寻址 简单的寄存器寻址方式和结构特性, 确保了在提供最大可靠度和灵活性的 I/O A/D 和 LCD 控制系统时, 仅需要少数的外部器件 这使得这些单片机适合用在低成本高产量的控制应用上, 可以提供 2K 至 8K 字的程序存储器和 88 至 384 字节数据储存 时序和流水线结构 (Pipelining) 系统时钟由晶体 / 陶瓷振荡器, 或是由 RC 振荡器提供, 细分为 T1~T4 四个内部产生的非重叠时序 程序计数器在 T1 时自动加一并抓取一条新的指令 剩下的 T2~T4 时钟完成解码和执行功能, 因此一个 T1~T4 时钟形成一个指令周期 虽然指令的取得和执行发生在连续的指令周期, 但单片机流水线的结构会保证指令在一个指令周期内被有效的执行, 特殊的情况发生在程序计数器的内容被改变的时候, 如子程序的调用或跳转, 在这情况下指令将需要多一个指令周期的时间去执行 注意 : 当使用 RC 振荡器时,OSC2 可以如同一个 T1 相时钟同步引脚一样地被使用, 这个 T1 相时钟有 f SYS /4 的频率, 具有 1:3 高 / 低的占空比 24

35 第一章硬件结构 I? E = J H+? 5 O I JA +? 2 D = I A +? 6 2 D = I A +? 6 2 D = I A +? 6! 2 D = I A +? 6 " 2 H C H= + K JA H EF A E E C. A J? D 1 I J N A? K JA 1 I J 2 +. A J? D 1 I J N A? K JA 1 I J 2 +. A J? D 1 I J N A? K JA 1 I J 2 + 系统时序和流水线如果指令牵涉到分支, 例如跳转或调用等指令, 则需要两个指令周期才能完成指令执行 需要一个额外周期的原因是程序先用一个周期取出实际要跳转或调用的地址, 再用另一个周期去实际执行分支动作, 因此程序设计师必须特别考虑额外周期的问题, 尤其是在执行时间要求比较严格的时候! " 8 ) 0 + ), - ) ; A J? D 1 I J - N A? K JA 1 I J. A J? D 1 I J - N A? K JA 1 I J. A J? D 1 I J!. K I D 2 EF A E A. A J? D 1 I J $ - N A? K JA 1 I J $ #. A J? D 1 I J % $, - ) ; 2 25

36 A/D with LCD 型单片机使用手册 程序计数器程序执行期间, 程序计数器用来指向下一条要执行的指令地址 除了 JMP 或 CALL 这些要求跳转到一个非连续的程序存储器地址之外, 它会在每条指令执行完后自动增加一 对于 A/D with LCD 系列的单片机, 根据所选择的单片机型号不同, 程序计数器宽度会因程序存储器容量的不同而不同 然而必须要注意只有较低的 8 位, 即程序计数器低字节寄存器 PCL, 是可以让使用者直接读写的 当执行的指令要求跳转到非连续的地址时, 如跳转指令 子程序调用 中断或复位等, 单片机通过载入所需的地址到程序计数器来控制程序 对于条件跳转指令, 一旦条件符合, 下一条在现在指令执行时所取得的指令即会被摒弃, 而由一个空指令周期来加以取代 程序计数器低字节, 即程序计数器低字节寄存器 PCL, 可以通过程序控制取得, 且它是可以读取和写入的寄存器 通过直接传送数据到这寄存器, 一个程序转跳转可以直接被执行, 然而因为只有低字节的运用是有效的, 因此跳转被限制在同页存储器, 即 256 个存储器地址的范围内, 当这样一个程序跳转要执行时, 需注意会插入一个空指令周期 注意 : 程序计数器低字节在程序控制下是完全可用的 PCL 的使用可能导致程序分支, 所以额外的周期需要预先取得 有关 PCL 寄存器更多的信息可在特殊功能寄存器部份中找到 26

37 第一章硬件结构 模式 程序计数器 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 复位 外部中断 外部中断 定时 / 计数器 0 中断 定时 / 计数器 1 中断 时基中断 ( 对于 HT46R63/HT46C63) 时基中断 (HT46R63/HT46C63 除外 ) A/D 转换器中断 ( 对于 HT46R63/HT46C63) 实时时钟中断 A/D 转换器中断 (HT46R63/HT46C63 除外 ) 条件跳转 Program Counter + 2 写入 PCL 寄存器 PC12 PC11 PC10 跳转或调用子程序 #12 #11 #10 #9 #8 #7 #6 #5 #4 #3 #2 #1 #0 由子程序返回 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0 注意 : 1. PC12~PC8: 目前程序计数器位 位 3. #12~#0: 指令码位 4. S12~S0: 堆栈寄存器位 5. 对于 HT46R65/HT46C65, 程序计数器有 13 个位, 即从 b12~b0 6. 对于 HT46R63/HT46C63 和 HT46R64/HT46C64, 由于程序计数器只有 12 个位, 表格中的列 b12 是无效的 7. 对于 HT46R62/HT46C62, 由于程序计数器只有 11 个位, 表格中的列 b11 和 b12 是无效的 8. 定时 / 计数器 1 溢出行, 只有 HT46R64/HT46C64 和 HT46R65/HT46C65 可用 9. 对于 HT46R62/HT46C62 和 HT46R63/HT46C63, 定时 / 计数器 0 即 TMR 27

38 A/D with LCD 型单片机使用手册 堆栈堆栈是存储器中一个特殊的部分, 它只用来储存程序计数器中的内容 根据选择的单片机, 堆栈可介于 6 8 或 16 层之间, 它们既不是数据部份也不是程序空间部份, 且既不是可读取也不是可写入的 当前层由堆栈指针 (Stack Pointer, SP) 加以指示, 同样也是不可读写的 在子程序调用或中断响应服务时, 程序计数器的内容被压入堆栈 当子程序或中断服务程序结束时, 返回指令 (RET 或 RETI) 使程序计数器从堆栈中重新得到它之前的值 当芯片复位之后,SP 将指向堆栈的顶部 如果堆栈已满, 且有非屏蔽的中断发生, 中断请求标志位会被置位, 但是中断响应将被禁止 当堆栈指针减少 ( 执行 RET 或 RETI), 中断将被响应 这个特性提供程序设计者简单的方法来预防堆栈溢出 然而即使堆栈已满,CALL 指令仍然可以被执行, 而造成堆栈溢出 使用时应避免堆栈溢出的情况发生, 因为这可能会造成不可预期的程序分支指令执行错误 2 H C H= + K JA H 5 J=? 2 E JA H 6 F B5 6 ) + 5 J=? A L A 5 J=? A L A 5 J=? A L A! 2 H C H= A HO * JJ B5 6 ) + 5 J=? A L A 注意 : 1. 对于 HT46R62/HT46C62 而言,N=6, 即有 6 层堆栈可使用 2. 对于 HT46R63/HT46C63 和 HT46R64/HT46C64 而言,N=8, 即有 8 层堆栈可使用 3. 对于 HT46R65/HT46C65 而言,N=16, 即有 16 层堆栈可使用 28

39 第一章硬件结构 算术及逻辑单位 ALU 算术逻辑单元是单片机中很重要的部份, 执行指令集中的算术和逻辑运算 ALU 连接到单片机的数据总线, 在接收相关的指令码后执行需要的算术与逻辑运算, 并将结果储存在指定的寄存器, 当 ALU 计算或操作时, 可能导致进位 借位或其它状态的改变, 而相关的状态寄存器会因此更新内容以显示这些改变,ALU 所提供的功能如下 : 算术运算 :ADD ADDM ADC ADCM SUB SUBM SBC SBCM DAA 逻辑运算 :AND OR XOR ANDM ORM XORM CPL CPLA 移位运算 :RRA RR RRCA RRC RLA RL RLCA RLC 增一和减一 :INCA INC DECA DEC 分支判断 :JMP SZ SZA SNZ SIZ SDZ SIZA SDZA CALL RET RETI 29

40 A/D with LCD 型单片机使用手册 程序存储器 程序存储器用来存放用户码即储存程序 对于 A/D with LCD 型的单片机而言, 有两种程序存储器可供使用 第一种是一次可编程存储器 (OTP), 使用者可编写他们的应用码到单片机中, 具有 OTP 存储器的单片机在名称上有 R 做标示 使用适当的烧录工具,OTP 单片机可以提供使用者灵活的方式来自由开发他们的应用, 这对于除错或需要经常升级与改变程序的产品是很有帮助的 对于中小型量产,OTP 亦为极佳的选择 另一种存储器为掩膜存储器, 单片机名称上有 C 做标示, 这些单片机对于大量生产提供最佳的成本效益 结构 14 位的程序存储器的容量是 2K,16 位的程序存储器的容量则是 8K, 这取决于选用哪种单片机 程序存储器用程序计数器来寻址, 其中也包含数据 表格和中断入口, 数据表格可以设定在程序存储器的任何地址, 由表格指针来寻址 以下是 A/D with LCD 型单片机程序存储器结构图 0 " 0 & " 0 & " $ 4 $ 0 6 " $ + $ 1 EJE= E = JE 8 A? J H - N JA H = JA HHK F J8 A? J H - N JA H = JA HHK F J8 A? J H 6 E A H + K JA H 1 JA HHK F J8 A? J H 6 E A * = I A 1 JA HHK F J8 A? J H JA HHK F J 8 A? J H ), + L A HJA H 1 JA HHK F J8 A? J H 0 6 " $ 4 $! 0 6 " $ + $! 1 EJE= E = JE 8 A? J H - N JA H = JA HHK F J8 A? J H - N JA H = JA HHK F J8 A? J H 6 E A H + K JA H 1 JA HHK F J8 A? J H 6 E A * = I A 1 JA HHK F J8 A? J H ), + L A HJA H 1 JA HHK F J8 A? J H JA HHK F J 8 A? J H 0 6 " $ 4 $ " 0 6 " $ + $ " 1 EJE= E = JE 8 A? J H - N JA H = JA HHK F J8 A? J H - N JA H = JA HHK F J8 A? J H 6 E A H + K JA H 1 JA HHK F J8 A? J H 6 E A H + K JA H 1 JA HHK F J8 A? J H 6 E A * = I A 1 JA HHK F J8 A? J H E JA HHK F J 8 A? J H ), + L A HJA H 1 JA HHK F J8 A? J H 0 6 " $ 4 $ # 0 6 " $ + $ # 1 EJE= E = JE 8 A? J H - N JA H = JA HHK F J8 A? J H - N JA H = JA HHK F J8 A? J H 6 E A H + K JA H 1 JA HHK F J8 A? J H 6 E A H + K JA H 1 JA HHK F J8 A? J H 6 E A * = I A 1 JA HHK F J8 A? J H E JA HHK F J 8 A? J H ), + L A HJA H 1 JA HHK F J8 A? J H %.. 0 & " > EJI # > EJI # > EJI $ > EJI J1 F A A 30

41 第一章硬件结构 特殊向量程序存储器内部某些地址保留用做诸如复位和中断入口等特殊用途 地址 000H 此向量是芯片复位后的程序起始地址 在芯片复位之后, 程序将跳到这个地址并开始执行 地址 004H 此向量用做 INT0 外部中断入口, 假如单片机外部中断引脚转成低电平, 而外部中断使能且堆栈没有满的情况下, 程序将跳到这个地址开始执行 地址 008H 此向量用做 INT1 外部中断入口, 假如单片机外部中断引脚转成低电平, 而外部中断使能且堆栈没有满的情况下, 程序将跳到这个地址开始执行 地址 00CH 此内部中断向量被定时 / 计数器所使用, 当定时器发生溢出, 而内部中断使能且堆栈没有满的情况下, 程序将跳到这个地址并开始执行 对于具有两组定时器的 HT46R64/HT46C64 和 HT46R65/HT46C65 而言, 这个定时器称为定时 / 计数器 0 或 TMR0, 而对于其他单片机而言, 则称为 TMR 地址 010H 对于 HT46R63/HT46C63, 此内部中断向量被时基中断所专用 当产生时基中断信号, 而内部中断使能且堆栈没有满的情况下, 程序将跳到这个地址并开始执行 对于 HT46R64/HT46C64 和 HT46R65/HT46C65, 这个向量被定时 / 计数器 1 所使用 当 TMR1 定时器发生溢出, 而内部中断使能且堆栈没有满的情况下, 程序将跳到这个地址并开始执行 请注意,HT46R62/ HT46C62 只有一组定时器, 所以不使用这个中断向量 地址 014H 对于 HT46R63/HT46C63, 此内部中断向量被 A/D 转换器使用 当 A/D 转换周期结束时, 如果 A/D 中断使能且堆栈没有满, 程序将跳到这个地址并开始执行 对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 这个内部向量被时基中断使用 当时基产生中断信号, 而内部中断使能且堆栈没有满的情况下, 程序将跳到这个地址并开始执行 地址 018H 这个内部中断向量被实时时钟中断使用 当实时时钟产生中断信号, 而内部中断使能且堆栈没有满的情况下, 程序将跳到这个地址并开始执行 地址 01CH 此向量只对 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 有效, 被 A/D 转换器使用 当 A/D 转换周期结束, 而 A/D 中断使能且堆栈没有满的情况下, 程序将跳到这个地址并开始执行 31

42 A/D with LCD 型单片机使用手册 查表程序存储器中的任何地址都可以定义成一个表格, 以便储存固定的数据 使用表格时, 表格指针必须先行设定, 其方式是将表格的低字节地址放在表格指针寄存器 TBLP 中 这个寄存器定义表格较低的 8 位地址 在设定完表格指针后, 表格数据可以使用 TABRDC [m] 或 TABRDL [m] 指令从目前程序所在的存储器页或存储器最后一页中来查表读取 当这些指令执行时, 程序存储器中表格数据低字节, 将被传送到使用者所指定的数据存储器, 程序存储器中表格数据的高字节, 则被传送到 TBLH 特殊寄存器, 而高字节中未使用的位将被读取为 0 下图是查表中寻址 / 数据流程图 2 H C H= + K JA H D EC D > O JA 6 * 2 2 H C H= A HO 6 * 0 5 F A? > O 0 EC D > O JA BJ= > A? JA JI M > O JA BJ= > A? JA JI 查表程序范例以下范例说明 HT46R63 A/D with LCD 型单片机中, 表格指针和表格数据如何被定义和执行 这个例子使用的表格数据用 ORG 伪指令储存在存储器的最后一页, 在此 ORG 伪指令中的值为 F00H, 即 4K 程序存储器 HT46R63 单片机中最后一页存储器的起始地址, 而表格指针的初始值则为 06H, 这可保证从数据表格读取的第一笔数据位于程序存储器地址 F06H 即最后一页起始地址后的第六个地址 值得注意的是, 假如 TABRDC [m] 指令被使用, 则表格指针指向当前页 在这个例子中, 表格数据的高字节等于零, 而当 TABRDL [m] 指令被执行时, 此值将会自动的被传送到 TBLH 寄存器 32

43 第一章硬件结构 tempreg1 db? ; temporary register #1 tempreg2 db? ; temporary register #2 : : mov a,06h ; initialize table pointer note that this ; address is referenced mov tblp,a ; to the last page or present page : : tabrdl tempreg1 ; transfers value in table referenced by table ; pointer to tempreg1 ; data at prog.memory address F06H transferred to ; tempreg1 and TBLH dec tblp ; reduce value of table pointer by one tabrdl : : org F00h tempreg2 ; transfers value in table referenced by table ; pointer to tempreg2 ; data at prog.memory address 705H transferred to ; tempreg2 and TBLH ; in this example the data 1A is transferred to ; tempreg1 and data 0F to register tempreg2 ; the value 0 will be transferred to the high byte ; register TBLH ; sets initial address of last page (for HT46R63) dc 00Ah, 00Bh, 00Ch, 00Dh, 00Eh, 00Fh, 01Ah, 01Bh : : 因为 TBLH 寄存器是只读寄存器, 不能重新储存, 若主程序和中断服务程序都使用表格读取指令, 应该注意它的保护 使用表格读取指令, 中断服务程序可能会改变 TBLH 的值, 若随后在主程序中再次使用这个值, 则会发生错误, 因此建议避免同时使用表格读取指令 然而在某些情况下, 如果同时使用表格读取指令是不可避免的, 则在执行任何主程序的表格读取指令前, 中断应该先除能, 另外要注意的是所有与表格相关的指令, 都需要两个指令周期去完成操作 表格地址指令 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 TABRDC [m] PC12 PC11 PC10 TABRDL [m] 注意 : 1. PC12~PC8: 当前程序计数器位 表格指针 TBLP 位 3. 对 HT46R65/HT46C65 来说, 表格地址是 13 位, 从 b12~b0 4. 对 HT46R63/HT46C63 和 HT46R64/HT46C64 来说, 表格地址是 12 位, 从 b11~b0 5. 对 HT46R62/HT46C62 来说, 表格地址是 11 位, 从 b10~b0 33

44 A/D with LCD 型单片机使用手册 数据存储器 数据存储器是内容可更改的 8 位 RAM 内部存储器, 用来储存临时数据, 且分为三部份 第一部份是特殊功能寄存器, 这些寄存器有固定的地址且与单片机的正确操作密切相关 大多数特殊功能寄存器都可在程序控制下直接读取和写入, 但有些被加以保护而不对用户开放 第二部份数据存储器是做一般用途使用, 都可在程序控制下进行读取和写入 对于 HT46R65/HT46C65 而言, 通用数据存储器分为两个独立的区域, 即存储区 0 和存储区 2, 想要选择需要的存储区, 就要对存储区指针进行正确的设定 第三部分为 LCD 存储器 数据存储器的这个特殊区域直接映射到 LCD 显示器, 写入这部分存储器的数据将直接影响显示的数据 LCD 存储器区和通用数据存储器区的地址重叠, 可以通过设定正确的存储区指针值, 对这两个区域进行切换 结构专用和通用数据存储器位于连续的地址 全部 RAM 为 8 位宽度, 但存储器长度因所选择的单片机而不同 所有芯片的数据存储器的起始地址都是 00H 常见的寄存器, 如 ACC 和 PCL 等, 全都有相同的数据存储器地址 LCD 数据存储器对应到数据存储器的存储区 1, 然而只有低四位可使用 如果通过程序读取高四位的值, 将会返回 0 所有芯片的 LCD 数据存储器的起始地址为 40H 由于 LCD 数据存储器位于存储区 1, 所以为了进入这个区域, 存储区指针必须先设定为 01H 要注意的是, 在上电后, 数据存储器的内容, 包括 LCD 数据存储器, 是未知的, 因此程序设计者必须对数据存储器进行适当的初始化 0 5 F A? E= 2 K HF I A, = J= A HO * = +, A HO % 0. 0!. 0 & 0! 0 " 0 + = F =? EJO EI, A L E? A, A F A J * = / A A H= 2 K HF I A, = J= A HO + = F =? EJO EI, A L E? A, A F A J % * = * = * = * = / A A H= 2 K HF I A, = J= A HO 0 6 " $ 4 $ # 0 6 " $ + $ A L E? A I O 注意 : 除了少数专用的位, 大部份的数据存储器的位都可以直接使用 SET [m].i 和 CLR [m].i 加以操作 也可以通过间接寻址指针寄存器 MP0 和 MP1 对数据存储器进行存取 34

45 第一章硬件结构 通用数据存储器所有的单片机程序需要一个读 / 写的存储区, 让临时数据可以被储存和再使用 该 RAM 区域就是通用数据存储器 这个数据存储区可让使用者进行读取和写入的操作 使用 SET [m].i 和 CLR [m].i 指令可对个别的位做置位或复位的操作, 方便用户在数据存储器内进行位操作 对于 HT46R62/HT46C62 HT46R63/HT46C63 和 HT46R64/HT46C64, 通用数据存储器位于存储区 0, 而对于 HT46R65/HT46C65, 通用数据存储器位于存储区 0 和存储区 2, 在对通用数据存储器进行存取操作之前, 必须先正确的设定存储区指针的值 当存储区指针设定为 01H 时, 将对 LCD 存储器进行存取 以下是 LCD 型单片机通用数据存储器的详细结构图 0 6 " $ 4 $ 0 6 " $ + $ 0 6 " $ 4 $! 0 6 " $ + $! 0 6 " $ 4 $ " 0 6 " $ + $ " 0 6 " $ 4 $ # 0 6 " $ + $ # & 0 " 0! 0 " 0 " 0 " 0 %. 0 * = & 0 $ 0 & 0 $ 0 & 0 / A A H= 2 K HF I A, = J= A HO.. 0 * = & & * O JA I & * O JA I.. 0 * =.. 0 ' * O JA I * = * =! & " * O JA I 注意 : HT46R65/HT46C65 中, 通用数据存储器的 384 个字节储存在两个独立的存储器区, 即存储区 0 和存储区 2 在读取或写入数据到通用数据存储器之前, 必须先确认是否正确的设定了存储区指针, 选择了正确的数据存储器区 35

46 A/D with LCD 型单片机使用手册 专用数据存储器这个区域的数据存储器是存放特殊寄存器的, 这些寄存器和单片机的正确操作密切相关, 大多数的寄存器可进行读取和写入, 只有一些是被保护而只能读取的, 相关细节的介绍请参考有关特殊功能寄存器的部份 要注意的是, 任何读取指令对存储器中未定义的地址进行读取将得到 00H 的值 以下是 A/D with LCD 型单片机中, 专用数据存储器的详细结构图 : 0 0 0! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % " $ 4 $ 0 6 " $ + $ 1) 4 2 1) 4 2 * 2 ) * 2 6 * ) ) 2 ) + 2 * 2 * + 2, 2, ), 4 ), 4 0 ), + 4 ) ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % 0 & " $ 4 $! 0 6 " $ + $! 1) 4 2 1) 4 2 * 2 ) * 2 6 * ) ) 2 ) + 2 * 2 * , 2, ! ), 4 ), + 4 ) ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0! " $ 4 $ " 0 6 " $ + $ " 1) 4 2 1) 4 2 * 2 ) * 2 6 * ) ) 2 ) + 2 * 2 * + 2, 2, ! ), 4 ), 4 0 ), + 4 ) ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0 ) 0 * 0 + 0, ! 0 " 0 # 0 $ 0 % 0 & 0 ' 0! " $ 4 $ # 0 6 " $ + $ # 1) 4 2 1) 4 2 * 2 ) * 2 6 * ) ) 2 ) + 2 * 2 * + 2, 2, ! ), 4 ), 4 0 ), + 4 ) F A? E= 2 K HF I A, = J= A HO 7 K I 4 A = I!. 0!. 0 36

47 第一章硬件结构 LCD 存储器 LCD 上显示的数据也是储存在一块可充分存取的数据存储器中 通过写入此 RAM 区域,LCD 的输出显示可以直接由应用程序控制 LCD 存储器位于存储区 1, 与通用数据存储器的地址形成映射, 因此在存取 LCD 存储器之前, 必须先确定存储区指针是否被设为 01H 当存储区指针为 00H 时, 是对通用数据存储器进行操作 以下是 A/D with LCD 型单片机 LCD 存储器的详细结构图 : " 0 #! " $ 4 $ 0 6 " $ + $ 0 6 " $ 4 $! 0 6 " $ + $! 0 6 " $ 4 $ " 0 6 " $ + $ " 0 6 " $ 4 $ # 0 6 " $ + $ # +, A HO * = " 0 $ 0 +, A HO * = " 0 $ & 0 +, A HO * = 37

48 A/D with LCD 型单片机使用手册 特殊功能寄存器为了确保单片机能成功的操作, 数据存储器中设置了一些内部寄存器 这些寄存器确保内部功能 ( 如定时器 中断等 ) 和外部功能 ( 如输入 / 输出数据控制和 A/D 转换器操作 ) 的正确操作 在数据存储器中, 这些寄存器以 00H 作为起始地址 在特殊功能寄存器和通用数据存储器的起始地址之间, 有一些未定义的数据存储器, 被保留用来做未来扩充, 若从这些地址读取数据将返回 00H 值 间接寻址寄存器 IAR0, IAR1 间接寻址的方法准许使用间接寻址指针做数据操作, 以取代定义实际存储器地址的直接存储器寻址方法 在间接寻址寄存器上的任何动作, 将对间接寻址指针 (MP) 所指定的存储器地址产生对应的读 / 写操作 对于所有的 A/D with LCD 系列单片机, 均提供两个间接寻址寄存器 (IAR0 和 IAR1), 两个间接寻址指针 (MP0 和 MP1) 要注意的是, 这些间接寻址寄存器并不是实际存在的, 间接读取 IAR 寄存器将返回 00H 的结果, 而间接写入此寄存器则不做任何操作 间接寻址指针 MP0, MP1 对于该系列的单片机, 均提供两个间接寻址指针, 即 MP0 和 MP1 由于这些指针在数据存储器中能象普通的寄存器一般被写入和操作, 因此提供了一个寻址和数据追踪的有效方法 当对间接寻址寄存器进行任何操作时, 单片机指向的实际地址是由间接寻址指针所指定的地址 注意 : 对 HT46R62/HT46C62 而言, 间接寻址指针的第 7 位没有作用 可是, 必须注意当间接寻址指针被读取时, 其值为 1 38

49 第一章硬件结构 以下的例子说明如何清除一个具 4 个 RAM 地址的区块, 它们已事先被定义成地址 adres1 到 adres4 data.section data adres1 db? adres2 db? adres3 db? adres4 db? block db? code.section at 0 code org 00h start: mov a,04h ; setup size of block mov block,a mov a,offset adres1 ; Accumulator loaded with first RAM address mov mp0,a ; setup memory pointer with first RAM address loop: clr [00h] ; clear the data at address defined by mp0 inc mp0 sdz block jmp loop continue: ; increment memory pointer ; check if last memory location has been ; cleared 在上面的例子中有一值得注意, 即并没有确定 RAM 地址 存储区指针 BP 请注意, 在数据存储器中, 通用数据存储器和 LCD 存储器具有相同的数据存储器地址 因此在使用指令存取 LCD 存储器或通用数据存储器时, 必须先确定是否选择了正确的区域 除了 HT46R65/HT46C65, 其它单片机的通用数据存储器位于存储区 0, 而 HT46R65/HT46C65 的通用数据存储器分为两个存储区块 ( 存储区 0 和存储区 2) LCD 存储器均位于存储区 1 可以使用存储区指针 BP 来选择正确的数据存储器区 当存储区指针 BP 的值为 00H 或在 HT46R65/HT46C65 中设定为 00H 或 02H 时, 选择通用数据存储器 当存储区指针 BP 的值为 01H 时, 则是选择了 LCD 存储器 复位后, 通用数据存储器会初始化到存储区 0, 但是在 HALT 模式下的 WDT 溢出复位, 不会改变通用数据存储器的存储区号 请注意, 特殊功能数据存储器不受存储区的影响, 也就是说, 不论是在存储区 0 存储区 1 或存储区 2, 都能对特殊功能寄存器进行读写操作 另外要注意的是, 尽管存储区指针寄存器只有一个或二个位被用来指示存储区号, 但该寄存器的 8 个位都可以使用 没有用到的那些位可以在程序用作其它用途 39

50 A/D with LCD 型单片机使用手册 累加器 ACC 对任何单片机来说, 累加器是相当重要的, 且与 ALU 所完成的运算有密切关系, 所有 ALU 得到的运算结果都会暂时储存在 ACC 累加器里 若没有累加器, ALU 必须在每次进行如加法 减法和移位的运算时, 将结果写入到数据存储器, 这样会造成程序编写和时间的负担 另外数据传送也常常牵涉到累加器的临时储存功能, 例如在一使用者定义的寄存器和另一个寄存器之间传送数据时, 由于两寄存器之间不能直接传送数据, 因此必须通过累加器来传送数据 程序计数器低字节寄存器 PCL 为了提供额外的程序控制功能, 程序计数器较低字节设置在数据存储器的特殊功能区域内, 程序员可对此寄存器进行操作, 很容易的直接跳转到其它程序地址 直接给 PCL 寄存器赋值将导致程序直接跳转到程序存储器的某一地址, 然而由于寄存器只有 8 位的长度, 因此只允许在本页的程序存储器范围内进行跳转, 而当使用这种运算时, 要注意会插入一个空指令周期 表格寄存器 TBLP, TBLH 这两个特殊功能寄存器对储存在程序存储器中的表格进行操作 TBLP 为表格指针, 指向表格的地址 它的值必须在任何表格读取指令执行前加以设定, 由于它的值可以被如 INC 或 DEC 的指令所改变, 这就提供了一种简单的方法对表格数据进行读取 表格读取数据指令执行之后, 表格数据高字节存储在 TBLH 中 其中要注意的是, 表格数据低字节会被传送到使用者指定的地址 实时时钟控制寄存器 RTCC RTCC 寄存器控制数个内部功能, 实时时钟 (RTC) 中断就是其中一个, 它的功能是提供一有周期固定的内部中断信号 RTC 中断的驱动时钟来自内部时钟源, 即 f S 它被进一步分频以获得更长的时间值, 并由此产生中断信号 RTCC 寄存器的第 0~2 位, 即 RT2~RT0, 用以确定分频系数 直接将值写入此 RTCC 寄存器位, 可产生 2 8 /f S 到 2 15 /f S 的溢出时间值 除了 HT46R63/HT46C63,RTCC 寄存器也可控制 RTC 振荡器的快速启动功能 此振荡器具有固定的频率 32768Hz, 通过设置第 4 位 ( 即 QOSC 位 ) 为 0, 可以以更快的速度启动 上电后, 此位的值将被设置为 0, 然而这样会加大功耗, 约 2 秒后 QOSC 位应该被设置为 1, 以降低功耗 除了 HT46R63/HT46C63, 低电压检测器是 RTCC 寄存器可以控制的另一个内部功能 通过把第 3 位 ( 即 LVDC 位 ) 置为 1 可以使能该功能 当电源供应的电压低于 DC 特性所标示的 VLVD 值时, 第 5 位 ( 即 LVDO 位, 此位为只读 ) 将被设置为 1 如果电源供应的电压高于这个值, 则这个位会保持 0 请注意, 对于 HT46R63/HT46C63,RTCC 寄存器的第 3 位 ~ 第 7 位没有定义, 而对于其它单片机,RTCC 寄存器的第 6 位与第 7 未定义 40

51 第一章硬件结构 > % > 8, , A = 6 E A +? + JH 4 A C EI JA H N? A F J0 6 " $ 4 $! 0 6 " $ + $! JA HHK F J2 A A & B5 ' B5 B5 B5 B5! B5 " B5 # B5 M 8 J= C A, A JA? J H+ JH A = > EI = > A I? E = J H3 K E? I J= EI = > A A = > A M 8 J= C A, A JA? J H K JF K J M L J= C A JA? H = L J= C A JE F A A HA = I > % > : : : A = 6 E A +? + JH 4 A C EI JA H " $ 4 $! 0 6 " $ + $! JA H H K F J2 A H JK I I J= JK I K M JE F A A HA = I 2 A & B5 ' B5 B5 B5 B5! B5 " B5 # B5 状态寄存器 STATUS 这 8 位寄存器 (0AH) 包含零标志位 (Z) 进位标志位(C) 辅助进位标志位(AC) 溢出标志位 (OV) 暂停标志位(PDF) 和看门狗溢出标志位 (TO) 它同时记录状态数据和控制运算顺序 除了 TO 和 PDF 标志位外, 状态寄存器中的位像其它大部份寄存器一样可以被改变, 但任何数据写入到状态寄存器将不会改变 TO 或 PDF 标志位 另外, 执行不同的指令后, 与状态寄存器有关的运算可能会得到不同的结果 TO 标志位只会受系统上电 看门狗溢出 或执行 CLR WDT 或 HALT 指令影响 PDF 标志位只会受执行 HALT 或 CLR WDT 指令或系统上电影响 41

52 Z OV AC 和 C 标志位通常反映最近运算的状态 A/D with LCD 型单片机使用手册 当加法运算的结果产生进位, 或减法运算的结果没有产生借位时, 则 C 被置位, 否则 C 被清零, 同时 C 也会被带进位 / 借位的移位指令所影响 当低半字节加法运算的结果产生进位, 或高半字节减法运算的结果没有产生借位时,AC 被置位, 否则 AC 被清零 当算术或逻辑运算结果是零时,Z 被置位, 否则 Z 被清零 当运算结果高两位的进位状态异或结果为 1 时,OV 被置位, 否则 OV 被清零 系统上电或执行 CLR WDT 指令会清零 PDF, 而执行 HALT 指令则会置位 PDF 系统上电或执行 CLR WDT 或 HALT 指令会清零 TO, 而当 WDT 溢出则会置位 TO > % > 6 2,. 8 ) ) A C EI JA H ) H EJD A JE? C E? F A H = JE B = C I + = HHO. = C ) K N E E= HO + = HHO. = C A H. = C L A HB M. = C 5 O I JA = = C A A JB = C I 2 M A H@ M B = C 9 = J? C JE A K JB = C JE F A A HA = I 另外当进入一个中断程序或执行子程序调用时, 状态寄存器不会自动压入到堆栈保存 假如状态寄存器的内容是重要的且子程序可能改变状态寄存器的话, 则需谨慎的去做正确的储存 中断控制寄存器 INTC0, INTC1 8 位的 INTC 寄存器用来控制外部和内部中断的动作 通过使用标准的位操作指令来设定这寄存器的位的值, 外部中断和内部中断的使能和除能功能可分别被控制 寄存器内的主中断位 (EMI) 控制所有中断的使能 / 除能, 用来设定所有中断使能位的开或关 当一个中断程序被响应时, 就会自动屏蔽其它中断,EMI 位将被清除, 而执行 RETI 指令则会置位 EMI 位 注意 : 若遇到在当前中断服务程序中要再响应其它的中断编程时, 可以在进入该中断服务程序后, 在程序中用手动的方式将 EMI 位置为 1 42

53 第一章硬件结构 定时 / 计数器寄存器该系列的单片机集成了一个或二个 8 位或 16 位的定时 / 计数器, 这取决于您选择的型号 对于具有一个 8 位定时器的 HT46R62/HT46C62 而言, 寄存器 TMR 是 8 位定时数值存放的位置 对应的控制寄存器 TMRC, 含有此定时 / 计数器的设定信息 对于具有一个 16 位定时器的 HT46R63/HT46C63 而言, 寄存器 TMRL/TMRH 是 16 位定时数值存放的位置 对应的控制寄存器 TMRC, 含有此定时 / 计数器的设定信息 HT46R64/HT46C64 具有一个 8 位定时 / 计数器, 对应的寄存器为 TMR0, 和一个 16 位定时 / 计数器, 对应的寄存器对为 TMR1L/ TMR1H, 均为定时数值存放的位置 对应的控制寄存器 TMR0C 和 TMR1C 含有这两个定时 / 计数器的设定信息 HT46R65/HT46C65 具有两个 16 位定时 / 计数器, 对应的寄存器对为 TMR0L/TMR0H 和 TMR1L/TMR1H, 均为 16 位定时数值存放的位置, 两个对应的控制寄存器 TMR0C 和 TMR1C 含有这两个定时 / 计数器的设定信息 请注意, 定时器寄存器可以预先写入固定的数据, 以允许设定不同的时间中断 输入 / 输出端口和控制寄存器在特殊功能寄存器中, 输入 / 输出寄存器和它们相对应的控制寄存器很重要 所有的输入 / 输出端口都有相对应的寄存器, 且被标示为 PA PB PC 等 如数据存储器结构图中所示, 这些输入 / 输出寄存器映射到数据存储器的特定地址, 用以传送端口上的输入 / 输出数据 每个输入 / 输出端口有一个相对应的控制寄存器, 分别为 PAC PBC 和 PCC 等, 也同样映射到数据存储器的特定地址 这些控制寄存器设定引脚的状态, 以决定哪些是输入口, 哪些是输出口 要设定一个引脚为输入, 控制寄存器对应的位必须设定成逻辑高, 若引脚设定为输出, 则控制寄存器对应的位必须设为逻辑低 程序初始化期间, 在从输入 / 输出端口中读取或写入数据之前, 必须先设定控制寄存器的位以确定引脚为输入或输出 使用 SET [m].i 和 CLR [m].i 指令可以直接设定这些寄存器的某一位 这种在程序中可以通过改变输入 / 输出端口控制寄存器中某一位而直接改变该端口输入 / 输出状态的能力是此系列单片机非常有用的特性 43

54 A/D with LCD 型单片机使用手册 脉宽调制寄存器 PWM0, PWM1, PWM2, PWM3 每款 A/D with LCD 系列的单片机都包含 3 个或 4 个集成的脉宽调制器 每个 PWM 都具有自己独立的控制寄存器 对于具有 3 个 PWM 的单片机, 它的控制寄存器为 PWM0~PWM2 对于具有 4 个 PWM 的单片机, 它的控制寄存器为 PWM0~PWM3 这些 8 位的寄存器定义相应的脉宽调制器的脉宽调制周期的占空比 A/D 转换寄存器 ADR, ADRL, ADRH, ADCR, ADSR 每款 A/D with LCD 系列的单片机都包含 6 或 8 通道的 A/D 转换器 A/D 转换器的正确操作需要使用 4 个寄存器 当一个模数转换周期结束后, 转换出的数字量将保存到高字节数据寄存器 ADRH 和低字节数据寄存器 ADRL 通道的选择和 A/D 转换器的设置通过寄存器 ADCR 控制,A/D 时钟频率由时钟源寄存器 ADSR 定义 44

55 第一章硬件结构 输入 / 输出端口盛群单片机的输入 / 输出端口控制具有很大的灵活性 这体现在每一个引脚在 使用者的程序控制下可以被指定为输入或输出 所有引脚的上拉选项 以及指定引脚的唤醒选择, 这些特性也使得此类单片机在广泛应用上都能符合开发的要求 依据所选单片机及封装类别的不同, 该系列单片机提供从 20 到 32 个不等双向输入 / 输出口, 标示为 PA PB PC 等, 这些输入 / 输出端口在数据存储器的对应指定地址如表所示 所有输入 / 输出口都可做为输入及输出之用 作为输入操作时, 输入 / 输出引脚不是锁存的, 也就是输入数据必须在指令 MOV A,[m] T2 上升沿准备好,m 表示端口地址 对于输出操作, 所有数据是锁存的, 而且持续到输出锁存被重写 上拉电阻 很多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功能 为了免去这个外加的电阻, 当引脚规划为输入时, 可由内部连接到一上拉电阻, 这些上拉电阻可通过掩膜选项来加以选择, 它用一个 PMOS 晶体管来实现 要注意的是, 在某些端口上, 引脚可以单独的选择带上拉电阻, 然而在其它的端口上, 引脚必须全部带上拉电阻或引脚不能带上拉电阻 PA 口的唤醒 本系列的单片机都具有暂停功能, 使得单片机进入暂停模式以节省功耗, 此功能对于电池及低功率应用是很重要的 唤醒单片机有很多种方法, 其中之一就是使 PA 口其中的一只引脚从高电平转为低电平 当使用暂停指令 HALT 迫使单片机进入暂停状态以后, 单片机将保持闲置即低功率状态, 直到 PA 口上被选为唤醒输入的引脚电平发生下降沿跳变 这个功能特别适合于通过外部开关来唤醒的应用 值得注意的是 PA 口的每个引脚都可单独的选择具有唤醒的功能 45

56 A/D with LCD 型单片机使用手册 输入 / 输出端口控制寄存器 每一个输入 / 输出端口都具有自己的控制寄存器 (PAC PBC PCC 等 ) 去控制输入 / 输出状态 利用此控制寄存器, 每一个 CMOS 输出或者斯密特触发器输入不管有没有上拉电阻设置, 均可利用软件控制方式加以动态的重新设置 所有输入 / 输出端口的引脚都各自对应于输入 / 输出端口控制寄存器的某一位 若输入 / 输出引脚要实现输入功能, 则对应的控制寄存器位必须设定为 1 这时程序指令可以直接读出输入引脚的逻辑状态 如果引脚的控制寄存器位被设定为 0, 则此引脚被设置为 CMOS 输出 当引脚被设置为输出状态, 程序指令读取的是输出端口寄存器的内容 请注意当输入 / 输出端口被设置为输出状态时, 此时如果对输出口做读取的动作, 则会读取到内部数据寄存器中的锁存值, 而不是输出引脚实际的逻辑状态 引脚共用功能引脚的共用功能可以增加单片机的灵活程度 有限的引脚个数会严重的限制设计者, 但是引脚的多功能特性, 可以解决很多此类问题 多功能输入 / 输出引脚的功能选择, 有些是由掩膜选项进行设定, 有些则是在应用程序中进行控制 蜂鸣器除了 HT46R63/HT46C63 没有包含蜂鸣器功能之外, 其余 AD with LCD 系列单片机均具有蜂鸣器功能, 蜂鸣器引脚 BZ 及 BZ 与输入 / 输出引脚 PA0 及 PA1 共用 引脚的输出功能通过掩膜选项进行选择并在烧录后保持不变 必须在端口控制寄存器 PAC 中将相应的引脚设为输出, 以使能蜂鸣器输出 如果在 PAC 中将引脚设为输入, 则就算是选择了蜂鸣器功能, 这些引脚仍将作为带上拉电阻的一般输入引脚使用 PFD 输出除了 HT46R63/HT46C63 没有包含 PFD 功能之外, 其余 AD with LCD 系列单片机均具有 PFD 输出功能,PFD 输出引脚与 PA3 共用 该引脚的输出功能通过掩膜选项进行选择并在烧录后保持不变 必须在端口控制寄存器 PAC 中将相应的引脚设为输出, 以使能 PFD 输出 如果在 PAC 中将引脚设为输入, 则就算是选择了 PFD 功能, 这些引脚仍将作为带上拉电阻的一般输入引脚使用 外部中断输入外部中断引脚 INT0 和 INT1 与输入 / 输出引脚 PD4 和 PD5 共用 如果不需要外部中断输入, 这些引脚可以作为一般输入 / 输出引脚使用 46

57 第一章硬件结构 外部定时器时钟输入每款 A/D with LCD 系列的单片机都包含一个或两个定时器, 定时器的个数取决于选用的型号 HT46R62/HT46C62 和 HT46R63/HT46C63 都具有一个定时器, 它们有一个与输入 / 输出引脚 PD6 共用的外部输入引脚 TMR HT46R64/ HT46C64 和 HT46R65/HT46C65 都具有两个定时器, 根据选用的封装形式, 会有一个或两个外部定时器引脚 对于 56-pin 的 SSOP 封装, 虽然具有两个定时器, 但只有一个外部计数器引脚 TMR0, 与输入 / 输出引脚 PD6 共用 对于 100-pin 的 QFP 封装, 有二个外部定时器引脚 TMR0 和 TMR1, 分别与输入 / 输出引脚 PD6 和 PD7 共用 要使这些共用引脚作为定时器输入, 必须正确地设置定时器控制寄存器中对应的控制位 在不需要外部定时器输入的场合, 这些外部定时器引脚可以当作一般输入 / 输出引脚使用 对于此种应用,TMRC 寄存器中的定时器模式位必须选为定时器模式 ( 内部时钟源 ), 以避免输入 / 输出引脚与定时器操作的冲突 PWM 输出所有单片机均包含三个或四个与 PD0~PD2 或 PD0~PD3 引脚共用的 PWM 输出 PWM 的输出个数取决选用的单片机 所有这些引脚的功能可以通过掩膜选项进行选择, 并且在程序设计后保持不变 请注意, 如要操作正确, 控制寄存器 PDC 对应的位必须设置为输出, 以使能 PWM 输出 如果 PDC 端口控制寄存器将引脚设置为输入状态, 则不论是否选择了 PWM 掩膜选项, 引脚都将作为带上拉选项的输入引脚使用 A/D 输入每款 A/D with LCD 系列的单片机都具有 6 个或 8 个 A/D 转换器输入 所有的模拟输入与 PB 口的 I/O 引脚共用 如果这些引脚被用来作为 A/D 输入而不是一般的 I/O 引脚, 则 A/D 转换控制寄存器 ADCR 中相应的位必须正确的设定 掩膜选项不包含 A/D 功能 如果这些引脚作为 I/O 引脚使用, 仍可以通过掩膜选项选择是否要接上拉电阻 然而如果作为 A/D 输入使用, 则这些引脚上的上拉电阻会自动断开 47

58 A/D with LCD 型单片机使用手册 SEG/COM 输出 SEG 和 COM 引脚用来直接驱动 LCD 上 segment 和 common 引脚 每款单片机均有一个引脚即可用作 segment 驱动也可用作 common 驱动, 根据选用的型号, 这些引脚称为 COM3/SEG19 COM3/SEG32 和 COM3/SEG40 由占空比掩膜选项决定这些引脚是作为 common 还是 segment 功能使用 如果选用 1/4 占空比掩膜选项, 则该引脚作为 COM3 驱动, 如果选用 1/2 或 1/3 占空比掩膜选项, 则选择作为 SEG 功能使用 对于小尺寸的 LCD 面板, 只需要部分的 segment 引脚与 LCD 的 segment 连接, 可以通过掩膜选项将其它剩余的 segment 引脚设置为 CMOS 输出使用 实际可以配置作为输出使用的 segment 引脚取决于选用的单片机型号 8,,, = J= * K I + JH * EJ, 3 2 K 0 EC D F JE 9 A = 2 K K F 9 HEJA + JH 4 A C EI JA H + D EF 4 A I A J A + JH 4 A C EI JA H, = J= * EJ, 3 1 F E 9 HEJA, = J= 4 A C EI JA H A = J= 4 A C EI JA H 7 : 5 O I JA 9 = A K F 9 = A K F F JE 2 ) O 没有引脚共用功能的输入 / 输出口 48

59 第一章硬件结构 8,,, = J= * K I + JH * EJ, 3 2 K 0 EC D F JE 9 A = 2 K K F 9 HEJA + JH 4 A C EI JA H + D EF 4 A I A J 4 A + JH 4 A C EI JA H 9 HEJA, = J= 4 A C EI JA H + 3 5, = J= * EJ, ) * 2 ) * 2 )! 2., 2 * ) 2 * % ) % 2, 2 9 2,! 2 9! 2, " 1 6 2, # 1 6 2, $ 6 4 2, % ) 2 ) 2 )! 2, 2, 2, 2,! * * 2., H2 9, = J= 7 : 4 A = J= 4 A C EI JA H 7 : 2., - 2 )! 5 O I JA 9 = A K F 2 ) O 9 = A K F F JE I 6 4 B H2, $ O 6 4 B H2, % O 1 6 B H2, " O 1 6 B H2, # O 1 JA HHK F J6 HEC C A H + BEC K H= JE F JE I 没有引脚共用功能的输入 / 输出口 HT46R63/HT46C63 除外 8,,, = J= * K I + JH * EJ, 3 2 K 0 EC D F JE 9 A = 2 K K F 9 HEJA + JH 4 A C EI JA H + D EF 4 A I A J 4 A + JH 4 A C EI JA H + 3 5, = J= * EJ, 3 2 * ) 2 * % ) % 2, 2 9 2,! 2 9! 2, " 1 6 2, # 1 6 2, $ HEJA, = J= 4 A C EI JA H , 2, 2, 2,! 2 9, = J= 4 A = J= 4 A C EI JA H 7 : 7 : 2., - 2 )! 6 4 B H2, $ O 6 4 B H2, % O 1 6 B H2, " O 1 6 B H2, # O 1 JA HHK F J6 HEC C A H + BEC K H= JE F JE I 没有引脚共用功能的输入 / 输出口 HT46R63/HT46C63 49

60 A/D with LCD 型单片机使用手册 编程注意事项在使用者的程序中, 最先要考虑的是端口的初始化 复位之后, 所有的输入 / 输出数据及端口控制寄存器都将被设为逻辑高 意思是说所有输入 / 输出引脚默认为输入状态, 而其电平则取决于其它相连接电路以及是否选择了上拉选项 假如 PAC PBC PCC 等端口控制寄存器接着被设定某些引脚为输出状态, 这些输出引脚会有初始高输出值, 除非数据寄存器端口 PA PB PC 被预先设定 要选择哪些引脚是输入及哪些引脚是输出, 可通过设置正确的值到适当的端口控制寄存器, 或者使用指令 SET [m].i 及 CLR [m].i 来设定端口控制寄存器中个别的位 要注意的是当使用这些位控制指令时, 一个读 - 修改 - 写的操作将会发生 单片机必须先读入整个端口上的数据, 修改个别的位, 然后重新把这些数据写入到输出端口 5 O I JA +? 6 6 6! 6 " 6 6 6! 6 " 2 HJ, = J= 9 HEJA J F HJ 4 A BH F HJ PA 口有唤醒的额外功能, 当芯片在 HALT 状态时有很多方法去唤醒此单片机, 其中之一就是 PA 口任一个引脚电平由高到低的转换, 可以设定 PA 口的一个或多个引脚有这项功能 50

61 第一章硬件结构 比较器 HT46R63/HT46C63 提供一个内部比较器电路 其输入为 CMPP(+) 和 CMPN(-), 而输出为 CMPO 和 CHGO 当 CMPN 输入电平低于 CMPP 电平, 则 CMPO 输出为 VDD 当 CMPN 输入电平高过 CMPP 电平, 则 CMPO 输出为 VSS CHGO 的输出是由 CMPO 信号与 32768Hz 实时时钟信号门控形成 由掩膜选项决定比较器的使能或除能 如果选择了比较器功能, 用户可能通过设置 ACSR 寄存器中的 CMPC 位打开 / 关闭比较器的功能, 以节省功耗 当系统进入 HALT 模式, 比较器会自动除能以减少电压耗损 如果比较器除能,CHGO 和 CMPO 输出引脚状态将会固定在 VSS - = > A, EI = > A > O + BEC K H= JE F JE > EJE ) ! % $ & / 51

62 A/D with LCD 型单片机使用手册 液晶显示 (LCD) 驱动器对大多数包含 LCD 的设计应用而言, 与较昂贵的以字符为基础的显示方式相 比, 用户自定义的显示方式能有效地降低成本 但因为需要有可变增益和时间的对应信号来驱动此类自定义显示器, 因此为了适当的操作此类 LCD 需要有特殊的考虑 盛群公司的 A/D with LCD 系列单片机有内部 LCD 信号产生电路及多种掩膜选项, 可以自动地产生时间与增益可变的信号直接驱动 LCD, 与用户的接口连接也相当容易 LCD 存储器 每款 A/D with LCD 系列单片机, 都为 LCD 数据提供特殊的数据存储器 这样的数据区域就是 LCD 存储器 任何写入此处的数据, 会自动地被内部 LCD 驱动电路读取, 进而自动地产生所需的 LCD 驱动信号 因此任何写入 LCD 存储器的数据, 会立即映射到连接单片机的 LCD 显示器上 每款 A/D with LCD 系列单片机的 LCD 存储器的起始地址为 40H 根据所选单片机 LCD 存储器容量的不同,LCD 存储器的结束地址在 53H 至 68H 之间 由于 LCD 数据存储器地址与通用数据存储器地址重叠, 因此 LCD 数据存储器储存在自已的数据存储区块 除了 HT46R65/HT46C65, 其余单片机的通用数据存储器均储存在存储区 0 HT46R65/HT46C65 的通用数据存储器, 除了存储区 0 外, 还有额外的储存在存储区 2 对于所有的单片机,LCD 数据存储器位于存储区 1 存储区的选择是通过使用存储区指针来完成, 它是数据存储器中的一个特殊功能寄存器, 名为 BP 对于 HT46R65/HT46C65, 当 BP 的值为 00H 或 02H 时, 只有通用数据存储器能被存取,LCD 存储器不会有读取及写入的动作发生 存取 LCD 存储器时, 首先要将存储区指针的值设为 01H, 以选中存储区 1 此后, 可以通过使用间接寻址指针 MP1 间接寻址来存取 LCD 存储器 存储区 1 被选中后, 可以使用 MP1 读取或写入数据到范围为 40H~53H 40H~60H 或 40H~68H( 根据选取的单片机 ) 的存储器 直接寻址在 LCD 存储器中是不适用的, 结果会是存取存储区 0 的数据 52

63 第一章硬件结构 > % > $ > # > " >! > > > > % > $ > # > " >! > > > " / " / " / " / 7 K I 4 A = I $ % /! ' $ % /! ' $ & / " $ & / " ! H!, K JO ", K JO LCD 存储器映射图 -HT46R65/HT46C65 以上是 HT46R65/HT46C65 LCD 存储器的结构, 它具有 或 40 4 格式的像素驱动能力,LCD 存储器结束地址为 68H 或 67H HT46R64/HT46C64 具有 或 32 4 格式的像素驱动能力,LCD 存储器结束地址为 60H 或 5FH HT46R63/HT46C63 具有 20 3 或 19 4 格式,HT46R62/HT46C62 具有 或 19 4 格式的像素驱动能力,LCD 存储器结束地址为 53H 或 52H 对所有 AD with LCD 单片机来说, 当选择 1/4 占空比掩膜选项时, 会自动地设定成 4-COM 格式, 当选择 1/2 或 1/3 占空比掩膜选项时, 会自动地设定成 3-COM 格式 注意 : 对所有 A/D with LCD 型单片机来说, 若选择 1/2 或 1/3 占空比掩膜选项, 则只提供 3-COM 连接, 且每个 LCD 存储器地址的第 3 位可以做为通用数据存储器使用 而选择 1/4 占空比掩膜选项时, 则提供 4-COM 连接, 但是会少一个 segment 连接提供,LCD 存储器的最后地址不使用且用户无法存取, 如果读取的话, 将会传回 00 53

64 A/D with LCD 型单片机使用手册 LCD 时钟 LCD 时钟是由内部时钟源 f S 驱动, 它由 WDT 振荡器 RTC 振荡器或 f SYS /4 提供, 由掩膜选项决定 为了适于 LCD 操作, 这个 f S 内部时钟源可通过一个分频器, 提供接近 4kHz 的 LCD 时钟源频率 f S 时钟源 LCD 时钟选择 WDT 振荡器 WDT/2 2 RTC 振荡器 RTC/2 3 f SYS/4 f SYS /4 ~ f SYS/ LCD 时钟频率选择 分频比例的选择根据内部时钟源 f S 而定 若时钟源 f S 来自 WDT 振荡器, 则分频比例是固定的 f S /2 2, 若时钟源 f S 来自 RTC 振荡器, 分频比例则是固定的 f S /2 3, 若时钟源 f S 来自 f S /4, 则 LCD 时钟频率范围为 f S /2 2 到 f S /2 8, 由掩膜选项进一步确定 这些分频比例可以保证 LCD 工作在接近 4kHz 的频率 对于具有 4kHz 的 LCD 时钟频率, 单片机的 LCD 驱动电路将会产生 55Hz 到 62Hz 的 LCD 帧频率 这与 25Hz 到 250Hz 之间的 LCD 操作频率范围是一致的 要注意的是, 若选择的 LCD 时钟频率太高, 会产生高于所需的帧频率, 引起较高的功耗, 而选择过低的频率又会导致不稳定 因此如果选择 f SYS /4 作为时钟源, 正确的选择掩膜选项, 获得尽可能接近 4kHz 的 LCD 时频率是非常重要的 LCD 驱动器输出 LCD 驱动器提供的 COM 和 SEG 输出数目, 以及偏压和占空比选项, 取决于选用的单片机和配置选项的选择 下表列出每一款 A/D with LCD 型单片机的不同选项 单片机型号占空比驱动数目偏压偏压类型 HT46R62 HT46C62 1/ / / HT46R63 1/ HT46C63 1/ HT46R64 HT46C64 HT46R65 HT46C65 1/ / / / / / LCD 驱动输出, 占空比与偏压选项 1/2 或 1/3 C 或 R 类型 1/3 R 类型 1/2 或 1/3 C 或 R 类型 1/2 或 1/3 C 或 R 类型

65 第一章硬件结构 由于 LCD 基本性质的缘故, 它们的像素点只能加上 AC 电压, 如果加上 DC 电压, 将会引起永久性的损害 因此 LCD 显示器的对比度由提供到每个像素的实际 RMS 电压控制, 这个值相当于 COM 引脚上的 RMS 电压值减去 SEG 引脚上的电压值 RMS 电压必须大于 LCD 的饱和电压, 以便能打开像素点, 但同时也要小于阈值电压, 以便能关闭像素点 此要求限制 DC 电压为零并且以最少数目的连接去控制尽可能多的像素, 为此需要产生时间与增益都可变的信号, 以提供 LCD 应用 这些时间与增益都可变的信号由单片机内的 LCD 驱动电路自动产生 占空比决定使用 common 口的个数, 也称为底板或 COMs 占空比值由掩膜选项选择,HT46R63/HT46C63 占空比值有 1/3 或 1/4, 表示 COM 的数目为 3 或 4, 而其它单片机的占空比值有 1/2 1/3 或 1/4, 表示 COM 的数目为 2 3 或 4, 定义了每个 LCD 信号帧内的时间分割数 下面的时序图描述单片机所产生的对于各种占空比值和偏压值的 LCD 信号, K H E C 4 A I A J H E 0 ) A + + ) I A C A J K JF K JI. H= A H = F A H = A + + ) I A C A JI.. + I A C A JI + I A C A JI ) I A C A JI LCD 驱动输出 (1/2 占空比,1/2 偏压 ) 8 ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 注意 : 1. 对于 1/2 偏压,R 与 C 型偏压的 VA=VLCD VB=VLCD 1/2 2. 可以通过掩膜选项选择在 HALT 模式下开启与关闭 LCD 功能 55

66 A/D with LCD 型单片机使用手册, K H E C 4 A I A J H E 0 ) A ) I A C A J K JF K JI H = F A H = A. H= A ) I A C A JI.. + I A C A JI + I A C A JI + I A C A JI + I A C A JI + I A C A JI + I A C A JI ) I A C A JI LCD 驱动输出 (1/3 占空比,1/2 偏压 ) 8 ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 注意 : 1. 对于 1/2 偏压,R 与 C 型偏压的 VA=VLCD VB=VLCD 1/2 2. 可以通过掩膜选项选择在 HALT 模式下开启与关闭 LCD 功能 56

67 第一章硬件结构, K H E C 4 A I A J H E 0 ) A ! ) I A C A J K JF K JI H = F A H = A ! ) I A C A JI.. + I A C A JI + I A C A JI + I A C A JI +! I A C A JI + I A C A JI + I A C A JI +! I A C A JI JD A H? > E = JE I = HA ) I A C A JI. H= A 8 ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * LCD 驱动输出 (1/4 占空比,1/3 偏压 ) HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 注意 : 1. 对于 1/3 R 型偏压,VA=VLCD VB=VLCD 2/3 VC=VLCD 1/3 对于 1/3 C 型偏压,VA=VLCD 1.5 VB=VLCD VC=VLCD 1/2 2. 可以通过掩膜选项选择在 HALT 模式下开启与关闭 LCD 功能 57

68 A/D with LCD 型单片机使用手册, K H E C 4 A I A J H E 0 ) A ) I A C A J K JF K JI. H= A H = F A H = A ) I A C A JI.. + I A C A JI + I A C A JI + I A C A JI + I A C A JI + I A C A JI + I A C A JI ) I A C A JI LCD 驱动输出 (1/3 占空比,1/3 偏压 ) 8 ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 注意 : 1. 对于 1/3 R 型偏压,VA=VLCD VB=VLCD 2/3 VC=VLCD 1/3 对于 1/3 C 型偏压,VA=VLCD 1.5 VB=VLCD VC=VLCD 1/2 2. 可以通过掩膜选项选择在 HALT 模式下开启与关闭 LCD 功能 58

69 第一章硬件结构, K H E C 4 A I A J H E 0 ) A ! ) I A C A J K JF K JI H = F A H = A ! ) I A C A JI = HA.. + I E@ A I A C A JI = HA + I E@ A I A C A JI = HA + I E@ A I A C A JI = HA +! I E@ A I A C A JI = HA + I E@ A I A C A JI = HA + I E@ A I A C A JI = HA +! I E@ A I A C A JI = HA JD A H? > E = JE I = HA H= A 8 ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) I A C A JI = HA LCD 驱动输出 (1/4 占空比,1/3 偏压 ) HT46R63/HT46C63 8 ) 8 * 注意 : 1. HT46R63/HT46C63 只有 1/3 R 型偏压,VA=VLCD VB=VLCD 2/3 VC=VLCD 1/3 2. 可以通过掩膜选项选择在 HALT 模式下开启与关闭 LCD 功能 59

70 A/D with LCD 型单片机使用手册, K H E C 4 A I A J H E 0 ) A ) I A C A J K JF K JI H = F A H = A ) I A C A JI = HA.. + I E@ A I A C A JI = HA + I E@ A I A C A JI = HA + I E@ A I A C A JI = HA + I E@ A I A C A JI = HA + I E@ A I A C A JI = HA JD A H? > E = JE I = HA ) I A C A JI = HA. H= A 8 ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * ) 8 * LCD 驱动输出 (1/3 占空比,1/3 偏压 ) HT46R63/HT46C63 注意 : 1. HT46R63/HT46C63 只有 1/3 R 型偏压,VA=VLCD VB=VLCD 2/3 VC=VLCD 1/3 2. 可以通过掩膜选项选择在 HALT 模式下开启与关闭 LCD 功能 60

71 第一章硬件结构 LCD 电压源与偏压盛群 A/D with LCD 类型的单片机能产生时间与增益都可变的信号, 此信号在操作时需要几种电压值 偏压类型以及信号使用的电压值数目取决于选用的单片机型号和偏压掩膜选项 LCD 偏压 HT46R63/HT46C63 HT46R63/HT46C63 具有固定的 R 型 1/3 偏压 VLCD 引脚必须连接外部电阻, 电阻的另一端必须连接外部电压, 一般为 VDD 由于具有固定的 1/3 偏压, 因此会用到 VSS VA VB 和 VC 四种电压值 VA 等于 VLCD VB 等于 VLCD 2/3 VC 等于 VLCD 1/3 可以通过掩膜选项选择三种偏压电流值: 高 中 低 实际的偏压电流值取决于掩膜选项的选择以及外部电阻的阻值 下表描述了对于 3V 的 LCD 面板所需要的外部电阻值以及偏压电流值 VDD=5V, VLCD=3V VDD=3V, VLCD=3V 选项 外部 R 偏压电流 选项 外部 R 偏压电流 低 240kΩ 8µA 低 0Ω 8µA 中 120kΩ 16µA 中 0Ω 16µA 高 40kΩ 48µA 高 0Ω 48µA 外部偏压电阻和偏压电流选择表 注意 : 对于 3V 的 LCD 面板来说, 如果 VDD=3V, 则不需要外部电阻,VDD 可以直接连接到 VLCD 同样地, 对于 5V 的 LCD 面板来说, 如果 VDD=5V, 则 VDD 可以直接连接到 VLCD 8,, - N JA H = 4 8 ) 8 +, 8 * 8 +,! ,! 8 +, , BB 4 JO F A! * E= I R 型偏压电压值 只对 HT46R63/HT46C63 61

72 A/D with LCD 型单片机使用手册 LCD 偏压 HT46R62/HT46C62, HT46R64/HT46C64 和 HT46R65/HT46C65 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 与 HT46R63/ HT46C63 的不同处在于这些单片机可以具有 R 型或 C 型的 1/2 或 1/3 偏压 对于 R 型偏压, 必须要在 VLCD 引脚上提供外部 LCD 电压源, 以产生内部偏压电压 这个外部电压源可以是单片机的电压源也可以是其它电压源 对于 R 型 1/2 偏压的掩膜选项, 要用到 VSS VA 和 VB 三种电压值 VA 等于 VLCD 引脚上的外部电压源,VB 由单片机内部产生, 其值等于 VLCD/2 对于 R 型 1/3 偏压的掩膜选项, 要用到 VSS VA VB 和 VC 四种电压值 VA 等于 VLCD, VB 等于 VLCD 2/3,VC 等于 VLCD 1/3 除了选择 1/2 或 1/3 偏压, 还可以通过掩膜选项选择两种偏压电流值 如下表所示, 实际值取决于掩膜选项 VLCD 引脚上的电压值以及选择的偏压值 VMAX 引脚的连接方式取决于加在 VLCD 上的电压, 如果 VDD 大于 VLCD 引脚上的电压, 则 VMAX 引脚连接到 VDD, 否则 VMAX 引脚连接到 VLCD 引脚 请注意, 如果使用 R 型偏压, 则不需要连接有外部电容或电阻 条件 选项 低偏压电流 (Typ.) 高偏压电流 (Typ.) VMAX 引脚连接 1/3 偏压 (VLCD/4.5) 15µA (VLCD/4.5) 45µA 1/2 偏压 (VLCD/3) 15µA (VLCD/3) 45µA 如果 VDD>VLCD, 则 VMAX 连接到 VDD, 否则 VMAX 连接到 VLCD R 型偏压电流 VMAX 连接 HT46R63/HT46C63 除外 8 ) 8 +, 8 * 8 +,! ,! 8 ) : 8 +, , 2 M A H5 K F F O 8 ) 8 +, 8 * 8 +, 8 ) : 8 +, 4 4 +, 2 M A H5 K F F O +, BB +, BB 4 JO F A! * E= I 4 JO F A * E= I R 型偏压电压值 HT46R63/HT46C63 除外 62

73 第一章硬件结构对于 C 型偏压, 必须在 VLCD 引脚上提供外部 LCD 电压源以产生内部偏压电压 C 型偏压使用内部充电泵电路, 在 1/3 偏压时可以产生高于 VLCD 的电压, 这项特性在单片机的提供电压小于 LCD 所需电压时非常有用 对于 C 型偏压, 为了产生所需的电压值, 必须要在引脚 C1 与 C2 之间连接充电泵电容, 在引脚 V1 与 V2 之间连接滤波电容 8 ) : 8 ) : 8 ) 8 +, # 8 * 8 +, , # 8 + K I B H! * E= I O + D = HC A 2 K F 8 +, , 2 M A H5 K F F O... 8 ) 8 +, 8 * 8 +, # + D = HC A 2 K F 8 +, , 2 M A H5 K F F O... + JO F A! * E= I + JO F A * E= I C 型偏压电压值 HT46R63/HT46C63 除外对于 C 型 1/2 偏压掩膜选项, 要用到 VSS VA 和 VB 三种电压值 VA 由内部产生, 其值等于 VLCD,VB 等于 VLCD 0.5 对于 C 型 1/2 偏压掩膜选项, 不使用 VC 对于 R 型 1/3 偏压掩膜选项, 要用到 VSS VA VB 和 VC 四种电压值 VA 由内部产生且等于 VLCD 1.5,VB 等于 VLCD,VC 等于 VLCD 0.5 VMAX 引脚的连接方式取决于偏压方式以及 VLCD 上的电压, 具体内容如下表所示 1/3 偏压 1/2 偏压 偏压类型 VMAX 引脚连接 VDD>VLCD 1.5 VMAX 连接至 VDD 除此之外 VMAX 连接至 V1 VDD>VLCD VMAX 连接至 VDD 除此之外 VMAX 连接至 VLCD C 型偏压 VMAX 连接 HT46R63/HT46C63 除外 63

74 A/D with LCD 型单片机使用手册 编程注意事项规划 LCD 时要采取一些预防措施, 其中之一就是在单片机上电后, 要保证 LCD 存储器正确地初始化 与通用数据存储器一样, 在上电后,LCD 存储器的内容是未知的 由于 LCD 存储器的内容会映射到实际的 LCD, 所以在上电后, 为获得正确的显示图形, 初始化此存储器内容是非常重要的 在实际应用中, 必须要考虑 LCD 的实际电容性负载 通过 LCD 像素出现在单片机中的负载, 通常可以模式化成为电容性, 一定要确保它不能过多 对可以连接多个 LCD 像素点的 COM 口来说, 这点特别正确 接下来的流程图描述 LCD 的等效电路 5 - / 5 - / 5 - / 5 - / ! LCD 面板等效电路在实际应用中, 设置正确的 LCD 时钟频率是另外一个需要特别注意的地方 为了使 LCD 工作在最佳帧频率, 此频率通常在 25Hz 到 250Hz 之间, 选择一个合适的 LCD 时钟频率的掩膜选项是非常重要的 正确的选择必须使得 LCD 时钟频率尽可能地接近 4kHz 选择这样的频率, 单片机内部的 LCD 驱动电路将会产生适当的 LCD 驱动信号, 以获得合适的 LCD 帧频率 另一个必须考虑的是单片机进入 HALT 状态时, 究竟会发生什么? 在 HALT 模式时, 为了减少功耗, 掩膜选项会允许 LCD 关闭电源 若选择此选项, 则在执行 HALT 指令后,LCD 驱动信号会停止, 从而产生一个空白显示的图形, 减少任何与 LCD 有关的功耗 由于 HALT 指令的执行并不影响 LCD 存储器, 当单片机被唤醒 LCD 驱动信号重新开始后, 将会恢复原来显示的图形 在 HALT 模式时, 如果掩膜选项选择 LCD 显示器保持打开状态, 则 LCD 驱动信号会持续产生,LCD 图形保持不受干扰, 然而应该注意的是, 这样的话会导致功耗 64

75 第一章硬件结构 定时 / 计数器定时 / 计数器在任何单片机中都是一个很重要的部分, 提供程序设计者一种实 现和时间有关功能的方法 在 A/D with LCD 型单片机中, 通常包含一个或两个 8 或 16 位的向上计数器, 这取决于选用哪款单片机 每个定时 / 计数器有三种不同的工作模式, 可以被当作一个普通定时器 外部的事件计数器或者脉冲宽度测量器使用 HT46R64/HT46C64 和 HT46R65/HT46C65 中的 TMR0 以及 HT46R62/HT46C62 中的 TMR 都提供了 7 级预分频器 (Prescaler), 这扩大了定时的范围 有两个和定时 / 计数器相关的寄存器 其中, 一个寄存器是存储实际的计数值, 赋值给此寄存器可以设定初始值, 读取此寄存器可获得定时 / 计数器的内容 另一个寄存器是定时 / 计数器的控制寄存器, 此寄存器设置定时 / 计数器的选项, 控制定时 / 计数器的使用 定时 / 计数器的时钟源可来自内部时钟源或在外部定时器引脚, 下表列举了对应定时 / 计数器寄存器的名称 HT46R62 HT46R63 HT46R64 HT46R65 HT46C62 HT46C63 HT46C64 HT46C65 8 位定时器编号 1 1 定时寄存器名称 TMR TMR0 定时控制寄存器 TMRC TMR0C 16 位定时器编号 定时寄存器名称 TMRL/TMRH TMR1L/TMR1H 定时控制寄存器 TMRC TMR1C TMR0L/TMR0H TMR1L/TMR1H TMR0C TMR1C 定时 / 计数器在事件计数模式下使用外部时钟源, 而时钟源从外部计数器的引脚输入, 即 TMR TMR0 或 TMR1, 这取决于选用哪种型号的单片机 这些外部引脚可能与其它 I/O 引脚共用, 这也取决于选用的单片机型号和封装 每当外部定时 / 计数器输入引脚由高电平到低电平或者由低电平到高电平 ( 由 TE 位决定 ) 进行转换时, 将使得计数器值增加一 65

76 A/D with LCD 型单片机使用手册 配置定时 / 计数器输入时钟源内部定时 / 计数器的时钟源可以来自系统时钟或外部时钟源 当定时 / 计数器在定时器模式或者在脉冲宽度测量模式时, 使用系统时钟作为计时来源 根据选用的单片机和使用的定时 / 计数器, 系统时钟的定时源可能先经过预分频器 (Prescaler) 分频, 分频率由定时 / 计数控制寄存器的 PSC2 PSC1 和 PSC0 三位决定 定时 / 计数器在事件计数器模式时使用外部时钟源, 根据选用的单片机和使用的定时 / 计数器, 时钟源由外部定时 / 计数器引脚 TMR TMR0 或 TMR1 提供 每次外部引脚由高电平到低电平或者由低电平到高电平 ( 由 TE 位决定 ) 进行转换时, 计数器增加一, = J= * K I M * O JA * K BBA H 6 6 $ * EJ 2 HA 4 A C EI JA H 4 A 6 4 B5 ; 5 " 6 E A H - L A J+ K JA A + JH 6 0 EC D * O JA M * O JA $ * EJ6 E A H - L A J+ K JA H L A HB M J 1 JA HHK F J 6-16 位定时 / 计数器结构 HT46R63/HT46C63, = J= * K I 2 HA 4 A C EI JA H 4 A B5 ; " $ 4 $ 0 6 " $ + $ " $ 4 $ " 0 6 " $ + $ " & % I J= C A F HA I? = A H E A H - L A J+ K JA A + JH 6 6 E A H - L A J + K JA H & * EJ6 E A H - L A J+ K JA H 8 位定时 / 计数器结构 HT46R62/HT46C62 TMR 和 HT46R64/HT46C64 TMR0 L A HB M J 1 JA HHK F J 2., 66

77 第一章硬件结构, = J= * K I M * O JA * K BBA H B5 ; & % I J= C A F HA I? = A H E A H - L A J+ K JA A + JH 6 $ * EJ 2 HA 4 A C EI JA H 0 EC D * O JA M * O JA $ * EJ6 E A H - L A J+ K JA H 16 位定时 / 计数器结构 HT46R65/HT46C65 TMR0 4 A L A HB M J 1 JA HHK F J 2.,, = J= * K I M * O JA * K BBA H B5 ; 5 " I? E = J H BEC K H= JE F JE 5 A A? J E A H - L A J+ K JA A + JH 6 $ * EJ 2 HA 4 A C EI JA H 0 EC D * O JA M * O JA $ * EJ6 E A H - L A J+ K JA H 4 A 16 位定时 / 计数器结构 HT46R64/HT46C64 和 HT46R65/HT46C65 TMR1 L A HB M J 1 JA HHK F J 2., 定时 / 计数寄存器 TMR, TMRL/TMRH, TMR0L/TMR0H, TMR1L/TMR1H 定时 / 计数寄存器是位于专用数据存储器内的特殊功能寄存器, 具有储存实际定时器值的用途 对 8 位定时 / 计数器来说, 这个寄存器为 HT46R62/HT46C62 的 TMR 和 HT46R64/HT46C64 的 TMR0 对于 16 位定时 / 计数器来说, 会用一对 8 位寄存器来储存 16 位定时 / 计数器的值 对于具有一组 16 位定时 / 计数器的 HT46R63/HT46C63 而言, 这样的寄存器对称为 TMRL 和 TMRH 而对于其它具有一组或两组 16 位定时 / 计数器的单片机而言, 根据选用的单片机和使用的定时 / 计数器, 这样寄存器对称为 TMR0L/TMR0H 或 TMR1L/TMR1H 在用作内部定时且收到一个内部计数脉冲或用作外部计数且外部定时 / 计数器引脚发生状态跳变时, 此寄存器的值将会加一 定时器将从预置寄存器所载入的值开始计数, 直到 8 位定时 / 计数器 FFH 或 16 位定时 / 计数器 FFFFH 储满, 此时定时器溢出且会产生一个内部中断信号 定时器的值随后被预置寄存器的值重设并继续计数 67

78 A/D with LCD 型单片机使用手册 请注意, 为了得到 8 位定时 / 计数器 FFH 或 16 位定时 / 计数器 FFFFH 的最大计算范围, 预置寄存器必须先清除为零 此时要注意的是, 上电后预置寄存器处于未知状态 定时 / 计数器在 OFF 条件下, 如果把数据写入预置寄存器, 这数据将被立即写入实际的定时器 而如果定时 / 计数器已经被打开且正在计数, 在这个周期内写入到预置寄存器的任何新数据将保留在预置寄存器, 只有在下一个溢出发生时才被写入实际定时器 当 TMR 寄存器被读取时, 定时器的计时时钟会停止计数以避免错误, 然而这可能造成某些时序的错误, 因此程序设计者必须考虑到这点 对于 16 位定时 / 计数器, 它有低字节与高字节两个定时 / 计数寄存器, 访问这些寄存器需要以指定方式进行 必须要注意的是当使用指令载入数据到低字节寄存器, 即 TMR0L 或 TMR1L 时, 数据只被载入到低字节缓冲器而不是直接送到低字节寄存器 当数据写入相应高字节寄存器, 即 TMR0H 或 TMR1H 时, 低字节缓冲器中的数据才真正被写入低字节寄存器 换句话说, 写入数据到高字节定时 / 计数寄存器时, 数据会被直接写入到高字节寄存器 同时在低字节缓冲器里的数据将被写入相应低字节寄存器 所以当写数据到 16 位定时 / 计数寄存器时, 低字节数据应该先写入 另外要注意的是读取低字节寄存器的内容时, 必须先读取高字节寄存器的内容, 相应低字节寄存器中的内容就会载入低字节缓冲器中并被锁存 在此动作执行之后, 低字节寄存器中的内容可使用一般的方式读取 请注意, 读取定时 / 计数器低字节寄存器实际是读取先前锁存在低字节缓冲器中的内容, 而非定时 / 计数器低字节寄存器的实际内容 定时 / 计数控制寄存器 TMRC, TMR0C, TMR1C 定时 / 计数器能工作在三种不同的模式, 至于选择工作在哪一种模式则是由各自的控制寄存器的内容决定 对于只有一个定时 / 计数器的单片机, 定时 / 计数控制寄存器为 TMRC, 而对于有两个定时 / 计数器的单片机, 定时 / 计数控制寄存器为 TMR0C 和 TMR1C 它们连同对应的定时/ 计数器寄存器控制定时 / 计数器的全部操作 在使用定时器之前, 必须先正确地设定定时 / 计数控制寄存器, 以便保证定时器能正确操作, 而这个过程通常在程序初始化期间完成 为了确定定时器工作在哪一种模式,TM0 和 TM1 位必须设定到要求的逻辑电平 定时器打开位 TON, 即定时 / 计数控制寄存器的第 4 位, 是定时器控制的开关, 设定为逻辑高时, 计数器开始计数, 而清零时则停止计数 对于具有预分频器 (Prescaler) 的定时器而言, 定时 / 计数控制寄存器的第 0 位 ~ 第 2 位决定输入定时预分频器 (Prescaler) 中的分频比例 如果使用外部计时源, 预分频器 (Prescaler) 的位将不作用 68

79 第一章硬件结构 > % > 6 E A H - L A J+ K JA H + JH 4 A C EI JA H " $ 4 $! 0 6 " $ + $! JE F A A HA = I - L A J+ K JA H=? JEL A C A I A A? J? K J B= E C C A? K J HEI E C C A 2 K I A 9 E@ JD A = I K HA A J=? JEL A C A I A A? J I J= HJ? K JE C HEI E C C A I J F B= E C C A I J= HJ? K JE C B= E C C A I J F HEI E C C A 6 E A H - L A J+ K JA H? K JE C A = > A A = > EI = > A JE F A A HA = I F A H= JE A I A A? J 6 A = L = E = > A A L A J? K JA A JE A A F K I A M E@ JD A = I K HA A A > % > E A H - L A J+ K JA H + JH 4 A C EI JA H " $ 4 $ 0 6 " $ + $ " $ 4 $ " 0 6 " $ + $ " 0 6 " $ 4 $ # 0 6 " $ + $ # 6 E A HF HA I? = A HH= JA I A A? J E A H4 = JA " & $! $ " & - L A J+ K JA H=? JEL A C A I A A? J? K J B= E C C A? K J HEI E C C A 2 K I A 9 E@ JD A = I K HA A J=? JEL A C A I A A? J I J= HJ? K JE C HEI E C C A I J F B= E C C A I J= HJ? K JE C B= E C C A I J F HEI E C C A 6 E A H - L A J+ K JA H? K JE C A = > A A = > EI = > A JE F A A HA = I F A H= JE A I A A? J 6 A = L = E = > A A L A J? K JA A JE A A F K I A M E@ JD A = I K HA A A 如果定时器工作在事件计数或脉冲宽度测量模式,TE 的逻辑电平, 即 TMRC 寄存器的第 3 位将可用来选择上升沿或下降沿触发 对于具有两组定时 / 计数器的 HT46R64/HT46C64 和 HT46R65/HT46C65 来说, 定时控制寄存器 TMR1C 有一个附加位 TS, 用来确定 TMR1 的时钟源为 f SYS /4 或是 32768Hz 的 RTC 振荡器 69

80 A/D with LCD 型单片机使用手册 HT46R64/HT46C64 和 HT46R65/HT46C65 具有两个内部定时 / 计数器 TMR0 和 TMR1, 因此额外再需要一个定时 / 计数控制寄存器 TMR1C > % > 6 E A H - L A J+ K JA H + JH 4 A C EI JA H " $ 4 $ " 0 6 " $ + $ " 0 6 " $ 4 $ # 0 6 " $ + $ # JE F A A HA = I - L A J+ K JA H=? JEL A C A I A A? J? K J B= E C C A? K J HEI E C C A 2 K I A 9 E@ JD A = I K HA A J=? JEL A C A I A A? J I J= HJ? K JE C HEI E C C A I J F B= E C C A I J= HJ? K JE C B= E C C A I J F HEI E C C A 6 E A H - L A J+ K JA H? K JE C A = > A A = > EI = > A E A H - L A J+ K JA HE JA H =?? I K H? A! % $ & 0 B5 ; 5 " F A H= JE A I A A? J 6 A = L = E = > A A L A J? K JA A JE A A F K I A M E@ JD A = I K HA A A 定时器模式在这个模式, 定时器可以用来测量固定时间间距, 当定时器发生溢出时, 就会提供一个内部中断信号 要工作在这个模式,TMRC 寄存器中位 TM1(bit7) 和 TM0(bit6) 必须分别设为 1 和 0 在这个模式, 内部时钟源被用来当定时器的计时源 请注意, 对于 HT46R62/HT46C62 中的 TMR 和 HT46R64/HT46C64 HT46R65/HT46C65 中的 TMR0 而言, 定时 / 计数器的输入计时频率被分频器 (Prescaler) 进一步分频, 这个值是由定时器控制寄存器的 PSC2~PSC0 位来决定 定时器打开位 TON 必须被设为逻辑高, 才能令定时器工作 每次内部时钟由高到低的电平转换都会使定时器值增加一 当定时器已满即溢出时, 会产生中断信号且定时器会重新载入已经载入到预置寄存器的值, 然后继续向上计数 定时器的溢出是中断的一种, 也是唤醒暂停模式的一种方法 这种内部中断可以通过将 INTC 寄存器的位 ETI 或 ET0I 和 ET1I 复位为 0 而除能 6 E A H+? H 2 HA I? = A H K JF K J 1? HA A J 6 E A H+ JH A H 6 E A H 6 E A H 6 E A H 6 E A H 定时器模式时序图 70

81 第一章硬件结构 事件计数器模式在这个模式, 发生在外部定时器引脚的外部逻辑事件改变的次数, 可以通过内部定时 / 计数器来记录 为使定时 / 计数器工作在事件计数器模式, 相应定时 / 计数器控制寄存器中 TM1 和 TM0 位必须分别设为 0 和 1 计数器打开位 TON 必须设为逻辑高, 令计数器开始计数 当 TE 为逻辑低时, 每次外部定时 / 计数器引脚接收到由低到高电平的转换将使计数器加一 而当 TE 为逻辑高时, 每次外部定时 / 计数器引脚接收到由高到低电平的转换将使计数器加一 与另外两个模式一样, 当计数器计满时, 计数器将溢出且产生一个内部中断信号, 同时定时 / 计数器将重新载入已经载入到预置寄存器的值 如果外部定时器引脚和其它输入 / 输出引脚共用, 为了确保它是工作在事件计数模式, 要注意两点 首先是要将 TM0 和 TM1 位设定在事件计数模式, 其次是确定端口控制寄存器将这个引脚设定为输入状态 虽然 56-pin SSOP 封装的 HT46R64/HT46C64 和 HT46R65/HT46C65 具有两组内部定时 / 计数器, 但只有 TMR0 外部输入引脚可以使用 TMR1 不能使用在事件计数器模式 计数器的溢出是中断的一种, 也是唤醒暂停模式的一种方法 - N JA H = - L A J 1? HA A J 6 E A H+ K JA H 6 E A H 事件计数器模式时序图 6 E A H 6 E A H! 71

82 A/D with LCD 型单片机使用手册 脉冲宽度测量模式这个模式, 可以测量外部定时 / 计数器引脚上的外部脉冲宽度 在脉冲宽度测量模式中, 定时 / 计数器的时钟源由内部时钟提供,TM0 和 TM1 位则必须都设为逻辑高 如果 TE 位是逻辑低, 当外部定时 / 计数器引脚接收到一个由高到低电平的转换时, 定时 / 计数器将开始计数直到外部定时 / 计数器引脚回到它原来的高电平 此时 TON 位将自动清除为零, 且定时 / 计数器停止计数 而如果 TE 位是逻辑高, 则当外部定时 / 计数器引脚接收到一个由低到高电平的转换时, 定时 / 计数器开始计数直到外部定时 / 计数器引脚回到原来的低电平 如上所述, TON 位将自动清除为 0, 且定时 / 计数器停止计数 请注意, 在脉冲宽度测量模式中, 当外部定时器引脚上的外部控制信号回到它原来的电平时,TON 位将自动地清除为 0 而在其它两种模式下,TON 位只能在程序控制下才会被清除为 0 这时定时 / 计数器中剩下的值可被程序读取, 并由此得知外部定时 / 计数器引脚接收到的脉冲的长度 当 TON 位被清除时, 任何在外部定时 / 计数器引脚的进一步的电平转换将被忽略 直到 TON 位再次被程序设定为逻辑高, 定时 / 计数器才又开始脉冲宽度测量 利用这种方法可轻松地完成单个脉冲的测量, 要注意的是在这种模式下, 定时 / 计数器是通过外部定时 / 计数器引脚上的逻辑转换来控制, 而不是通过逻辑电平 与另外两个模式一样, 当定时 / 计数器计满就会发生溢出, 且产生一个内部中断信号, 定时 / 计数器也将清零并载入预置寄存器的值 如果外部定时器引脚与其它 I/O 引脚共用, 为了确保它是工作在脉冲宽度测量模式, 要注意两点 首先是要将 TM0 与 TM1 位设定在脉冲宽度测量模式, 其次是确定此引脚的输入 / 输出端口控制寄存器对应位被设定为输入状态 虽然 56-pin SSOP 封装的 HT46R64/HT46C64 和 HT46R65/HT46C65 具有两个内部定时器, 但只有一个 TMR0 外部输入引脚可以使用 TMR1 不能使用在脉冲宽度测量模式 定时器的溢出是中断的一种, 也是唤醒暂停模式的一种方法 - N JA H = 6 E A H 2 E 1 F K J 6 M EJD 6-2 HA I? = A H K JF K J M EJD?? B5 ; 5 1? HA A J 6 E A H+ K JA H 6 E A H! " 2 HA I? = A H K JF K JEI I = F = JA L A HO B= E C C A B6 脉冲宽度测量模式时序图 72

83 第一章硬件结构 可编程分频器 - PFD HT46R63/HT46C63 不具有 PFD 功能, 此章节不适用于这款单片机 PFD 输出引脚与 I/O 引脚 PA3 共用 这个功能通过掩膜选项来选择, 如果不选择该功能, 则这个引脚就是作为正常的输入 / 输出引脚使用 定时器的溢出信号是 PFD 电路的时钟源 对于具有两组内部定时 / 计数器的 HT46R64/HT46C64 和 HT46R65/HT46C65 而言, 通过掩膜选项选择,PFD 的时钟源可以是两组定时 / 计数器中的任一个 定时器由内部系统时钟驱动, 向预置寄存器内写值可以控制它的初始值 定时器从预置寄存器内的值开始向上计数, 直到溢出, 并由此产生溢出信号而导致 PFD 改变输出状态 接下来定时器会自动重新载入预置寄存器内的值并继续计数 PFD 的频率是定时 / 计数器溢出信号频率的一半 关于定时 / 计数器设置与操作的详细内容, 请参考相关章节 只有 PA3 被设置为 1 时,PFD 输出才有效 这个输出数据位相当于 PFD 输出的开 / 关控制位 请注意, 如果 PA3 输出数据位被清除为 0, 则 PFD 输出逻辑低 为了实现 PFD 的输出功能, 还必须将端口控制寄存器 PAC 中的 PAC.3 位清除为 0, 将引脚设置为输出状态 如果 PAC.3 位被设置为 1, 即使掩膜选项选择该引脚为 PFD 输出,PA3 还是作为输入端口使用 6 E A H L A HB M 2., +? 2 )!, = J= 2., K JF K J= J2 )! PFD 输出控制 假如系统时钟使用晶体振荡器, 则使用这种频率产生的方法可以产生非常精确的频率值 73

84 A/D with LCD 型单片机使用手册 预分频器 (Prescaler) HT46R62/HT46C62 中的 TMR 和 HT46R64/HT46C64 HT46R65/HT46C65 中的 TMR0 都具有预分频器 (Prescaler) 相应定时/ 计数器控制寄存器的第 0 位 ~ 第 2 位 (PSC0~PSC2) 可以用来定义定时 / 计数器中内部时钟源的预分频级数 定时 / 计数器溢出信号可用来驱动 PFD 或产生定时器中断 输入 / 输出接口当运行在事件计数器或脉冲宽度测量模式时, 定时 / 计数器需要使用外部定时 / 计数器引脚以确保正确的动作 外部定时 / 计数器引脚与 PD 输入共用引脚 定时器可以设置为驱动引脚共用的 PFD 当通过掩膜选项选择 PFD 引脚时, 定时器可以根据定时控制寄存器的内容和时钟源频率, 以不同的频率来驱动 PFD 编程注意事项当定时 / 计数器运行在定时器模式时, 定时器的时钟源使用内部系统时钟或实时时钟振荡器, 与单片机所有运算都能同步 在这个模式下, 当定时器寄存器溢出时, 单片机将产生一个内部中断信号, 使程序进入相应的内部中断向量 对于脉冲宽度测量模式, 定时器的时钟源也是使用内部系统时钟, 但定时器只有在正确的逻辑条件出现在定时器输入引脚时才执行动作 当这个外部事件没有和内部定时器时钟同步时, 只有当下一个定时器时钟到达时, 单片机才会看到这个外部事件, 因此在测量值上可能有小的差异, 需要程序设计者在程序应用时加以注意 同样的情况发生在定时器配置为外部事件计数模式时, 它的时钟来源是外部事件, 与内部系统时钟或者定时器时钟不同步 当读取定时 / 计数器时, 计数时钟会被阻隔以避免错误发生, 但这样做可能会导致计数错误, 所以程序设计师应该考虑到这点 在第一次使用定时 / 计数器之前, 要仔细确认有没有正确地设定初始值 中断控制寄存器中的定时器使能位必须正确的设置, 否则相应定时 / 计数器内部中断仍然无效 定时 / 计数器控制寄存器中的边界选择 定时 / 计数器工作模式和时钟源控制位也必须正确的设定, 以确保定时 / 计数器按照应用需求而正确的配置 在定时 / 计数器打开之前, 必须确保先载入定时 / 计数器寄存器的初始值, 这是因为在上电后, 定时 / 计数器寄存器中的初始值是未知的 定时 / 计数器初始化后, 可以使用定时 / 计数器控制寄存器中的使能位来打开或关闭定时器 74

85 第一章硬件结构 脉冲宽度调制器每款 A/D with LCD 型单片机都提供一个或多个脉冲宽度调制 (PWM) 输出 这在马达速度控制等应用中十分有用, 通过给相应的 PWM 寄存器设置特殊的值, PWM 功能可提供占空比可调而频率固定的波形 在数据存储器中, 单片机为每一个 PWM 都指定了对应的寄存器 对于有三个 PWM 输出的单片机, 寄存器为 PWM0 PWM1 和 PWM2; 当有四个 PWM 输出时, 则再需要一个寄存器 PWM3 此寄存器为 8 位, 表示输出波形中每个调制周期的占空比 为了提高 PWM 调制频率, 每一个调制周期被调制成两个或四个独立的调制子区段, 即 7+1 模式或 6+2 模式 除了 HT46R63/HT46C63 只有固定的 6+2 模式外, 其余各单片机可通过掩膜选项选择使用哪一种工作模式 通过掩膜选项选定工作模式后, 它会应用在此单片机所有的 PWM 输出上 要注意的是, 使用 PWM 时, 只要将所需的值写入相应的 PWM 寄存器内, 并在掩膜选项中选择所需的工作模式即可, 单片机的内部硬件会自动地将波形细分为子调制周期 对所有的单片机而言,PWM 时钟源就是系统时钟 f SYS 单片机型号通道 PWM 模式输出引脚 PWM 寄存器名称 HT46R62/HT46C62 HT46R63/HT46C63 HT46R64/HT46C64 (56-pin 封装 ) HT46R64/HT46C64 (100-pin 封装 ) HT46R65/HT46C65 (56-pin 封装 ) HT46R65/HT46C65 (100-pin 封装 ) 或 7+1 PD0/PD1/PD PD0/PD1/PD2/PD 或 7+1 PD0/PD1/PD 或 7+1 PD0/PD1/PD2/PD 或 7+1 PD0/PD1/PD 或 7+1 PD0/PD1/PD2/PD3 PWM 菜单 PWM0/PWM1/ PWM2 PWM0/PWM1/ PWM2/PWM3 PWM0/PWM1/ PWM2 PWM0/PWM1/ PWM2/PWM3 PWM0/PWM1/ PWM2 PWM0/PWM1/ PWM2/PWM3 75

86 A/D with LCD 型单片机使用手册 将原始调制周期分成 2 个或 4 个子周期的方法, 使产生更高的 PWM 频率成为可能, 这样可以提供更广泛的应用 只要产生的 PWM 脉冲周期小于负载的时间常数,PWM 输出就比较合适, 这是因为长时间常数负载将会平均 PWM 输出的脉冲 读者必须理解 PWM 频率与 PWM 调制频率的不同之处 当 PWM 时钟为系统时钟 f SYS, 而 PWM 值为 8 位时, 整个 PWM 周期的频率为 f SYS /256 然而, 当 PWM 工作在 7+1 模式时,PWM 调制频率为 f SYS /128, 工作在 6+2 模式时,PWM 调制频率将会是 f SYS /64 PWM 调制频率 PWM 频率 PWM 占空比 f SYS /64 for (6+2) bits mode f SYS /128 for (7+1)bits mode f SYS /256 [PWM]/256 76

87 第一章硬件结构 6+2 PWM 模式 通过一个 8 位的 PWM 寄存器控制, 每个完整的 PWM 周期由 256 个时钟周期组成 在 6+2 PWM 模式中, 每个 PWM 周期又被分成四个独立的子周期, 称为调制周期 0~ 调制周期 3, 在表格中以 i 表示 四个子周期各包含 64 个时钟周期 在这个模式下, 得到以 4 为因数增加的调制频率 8 位的 PWM 寄存器被分成两个部分, 这个寄存器的值表明整个 PWM 波形的占空比 第一部分包括第 2 位 ~ 第 7 位, 表示 DC 值, 第二部分为第 0 位 ~ 第 1 位, 表示 AC 值 在 6+2 PWM 模式中, 四个调制子周期的占空比, 分别如下表所示 参数 AC (0~3) DC (Duty Cycle) 调制周期 i (i=0~3) i<ac i AC 6+2 模式调制周期值 DC 下图表示 6+2 模式下 PWM 输出的波形 请特别注意单个的 PWM 周期是如何分成四个独立的调制周期以及 AC 值与 PWM 值的关系 DC 64 B5 ; # $ " # $ " # $ " # $ " # $ " $ $ " # $ " # $ " # $ " $ $ " $ $ " $ $ " # $ " # $ " $ $ " 2 9! 2 9 $ $ " $ $ " $ $ " # $ " $ $ " 2 K = JE F A $ " B5 ; K = JE? O? K = JE? O? K = JE? O? K = JE? O? K = JE? O? A 2 9? O? A # $ B5 ; PWM 模式 > % > A C EI JA H A ) + L = K A, + L = K A 6+2 模式的 PWM 寄存器 77

88 A/D with LCD 型单片机使用手册 7+1 PWM 模式 通过一个 8 位的 PWM 寄存器控制, 每个完整的 PWM 周期由 256 个时钟周期组成 在 7+1 PWM 模式中, 每个 PWM 周期又被分成两个独立的子周期, 称为调制周期 0 和调制周期 1, 在表格中以 i 表示 每个子周期各包含 128 个时钟周期 在这个模式下, 得到以 2 为因数增加的调制频率 8 位的 PWM 寄存器被分成两个部分, 这个寄存器的值表明整个 PWM 波形的占空比 第一部分包括第 1 位 ~ 第 7 位, 表示 DC 值, 第二部分为第 0 位, 表示 AC 值 在 7+1 PWM 模式中, 两个调制子周期的占空比, 分别如下表所示 参数 AC (0~1) DC (Duty Cycle) i<ac DC+ 1 调制周期 i 128 (i=0~1) DC i AC 模式调制周期值 下图表示 7+1 模式下 PWM 输出的波形 请特别注意单个的 PWM 周期是如何分成两个独立的调制周期以及 AC 值与 PWM 值的关系 B5 ; # & # & # & # & # & # & # & # & # & 2 9! 2 9 # & # & # & 2 K = JE F A & B5 ; K = JE? O? K = JE? O? K = JE? O? A 2 9? O? A # $ B5 ; PWM 模式 > % > A C EI JA H A ) + L = K A, + L = K A 7+1 模式的 PWM 寄存器 78

89 第一章硬件结构 PWM 输出控制在所有单片机中,PWM 输出与 PD 端口的 I/O 引脚共用 要使某个引脚作为 PWM 输出而非普通的 I/O 引脚, 必须选择正确的 PWM 掩膜选项 I/O 端口控制寄存器 PDC 中相应的位也必须写 0, 以确保所需要的 PWM 输出引脚设置为输出状态 在完成这两个初始化步骤, 以及将所要求的 PWM 值写入 PWM 寄存器之后, 将 1 写入到 PD 输出数据寄存器的相应位, 则 PWM 数据就会出现在引脚上 将 0 写入到 PD 输出数据寄存器的相应位, 则会除能 PWM 输出功能并强制输出低电平 通过这种方式,PD 数据输出寄存器作为 PWM 功能的开 / 关控制来使用 假如掩膜选项已经选择 PWM 功能, 但是在 PDC 控制寄存器中相应的位又写入 1, 使其成为输入引脚, 则此引脚仍是作为带上拉电阻的正常输入端使用 下面这个简单的程序范例表示如何被设定与控制 PWM 输出, 首先应该选取相应的 PWM 输出掩膜选项 clr PDC.0 clr PDC.1 clr PDC.2 clr PDC.3 ; set pin PD0 as output ; set pin PD1 as output ; set pin PD2 as output ; set pin PD3 as output set pd.0 ; PD.0=1; enable pin PD0/PWM0 to be the PWM channel 0 mov a,64h ; PWM0=100D=64H mov pwm0,a set pd.1 ; PD.1=1; enable pin PD1/PWM1 to be the PWM channel 1 mov a,65h ; PWM1=101D=65H mov pwm1,a set pd.2 ; PD.2=1; enable pin PD2/PWM2 to be the PWM channel 2 mov a,66h ; PWM2=102D=66H mov pwm2,a set pd.3 ; PD.3=1; enable pin PD3/PWM3 to be the PWM channel 3 mov a,67h ; PWM3=103D=67H mov pwm3,a clr pd.0 clr pd.1 clr pd.2 clr pd.3 ; disable PWM0 output PD.0 will remain low ; disable PWM1 output PD.1 will remain low ; disable PWM2 output PD.2 will remain low ; disable PWM3 output PD.3 will remain low 79

90 A/D with LCD 型单片机使用手册 模数转换器对于大多的电子系统而言, 处理真实世界的模拟信号是共同的需求 为了完全由单片机来处理这些信号, 首先必须通过 A/D 转换器将模拟信号转换成数字信号 将 A/D 转换器电路集成入单片机, 可有效的减少外部器件, 随之而来, 具有低成本和减少器件空间需求的优势 每一款的盛群 A/D with LCD 型单片机都包含了四个或八个通道的 A/D 转换器, 它们可以直接接入外部模拟信号 ( 来自传感器或其它控制信号 ) 并直接将这些信号转换成 9 位或 10 位的数字量 单片机型号输入通道转换位数输入引脚 HT46R62/HT46C PB0~PB5 HT46R63/HT46C63 (56-pin 封装 ) HT46R63/HT46C63 (100-pin 封装 ) HT46R64/HT46C64 (56-pin 封装 ) HT46R64/HT46C64 (100-pin 封装 ) HT46R65/HT46C65 (56-pin 封装 ) HT46R65/HT46C65 (100-pin 封装 ) 4 8 PB0~PB3 8 8 PB0~PB PB0~PB PB0~PB PB0~PB PB0~PB7 A/D 转换器数据寄存器 -ADR, ADRL/ADRH 具有一个 8 位 A/D 转换器的 HT46R63/HT46C63, 使用寄存器 ADR 来储存 8 位模数转换值 其余具有 9 位或 10 位 A/D 转换器的单片机则需要两个寄存器, 一个高字节寄存器 ADRH, 一个低字节寄存器 ADRL 在转换过程发生后, 单片机可以直接读取这两个寄存器, 以获得数字化的转换值 对于使用两个 A/D 转换器数据寄存器的单片机来说, 要注意的是, 只有高位寄存器 ADRH 完全利用了 8 位 而低位寄存器 ADRL 只利用了 8 位中的 1 或 2 位, 它包含的只是 9 或 10 位转换值中低的一或两位 在下表中,D0~D8 或 D9 是 A/D 换转数据结果位 寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADRL D ADRH D8 D7 D6 D5 D4 D3 D2 D1 A/D 数据寄存器 HT46R62/HT46C62 80

91 第一章硬件结构 寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADR D7 D6 D5 D4 D3 D2 D1 D0 A/D 数据寄存器 HT46R63/HT46C63 寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADRL D1 D ADRH D9 D8 D7 D6 D5 D4 D3 D2 A/D 数据寄存器 HT46R64/HT46C64 和 HT46R65/HT46C65 A/D 转换控制寄存器 ADCR 寄存器 ADCR 用来控制 A/D 转换器的功能和操作 这个 8 位的寄存器所定义的功能包括选择哪一个模拟通道连接至内部 A/D 转换器, 哪个引脚是模拟输入, 哪个引脚是正常 I/O, 并控制和监视 A/D 转换器的开始和复位功能 寄存器 ADCR 包含 ACS2~ACS0 位, 它们定义通道的编号 由于每个单片机只包含一个实际的模数转换电路, 因此这 4 6 或 8 个模拟输入中的每一个都必须分别被发送到转换器 ADCR 寄存器中 ACS2~ACS0 位的功能正是决定哪个模拟通道真正连接到内部 A/D 转换器 对于 56-pin SSOP 封装的 HT46R63/ HT46C63, 由于封装限制它只有四个模拟输入通道, 如果 ACS2~ACS0 的值等于或大于 100, 则没有模拟输入引脚可以使用 同样地, 对于 56-pin SSOP 封装的 HT46R64/HT46C64 和 HT46R65/HT46C65, 由于封装限制它们只有六个模拟输入通道, 如果 ACS2~ACS0 的值等于 110 或 111, 则没有模拟输入引脚可以使用 ADCR 寄存器中的 PCR2~PCR0 位, 用来定义 PB 端口上哪些引脚为 A/D 转换器的模拟输入, 哪些引脚为正常的 I/O 对于 56-pin SSOP 封装的 HT46R63/ HT46C63, 它只有四个模拟输入通道, 如果 PCR2~PCR0 的值等于或大于 100, 则引脚 AN0~AN3 都将被设为模拟输入 对于 56-pin SSOP 封装的 HT46R64/ HT46C64 和 HT46R65/HT46C65, 它们只有六个模拟输入通道, 如果 PCR2~ PCR0 的值等于 110 或 111, 则引脚 AN0~AN5 都将被设为模拟输入 要注意的是, 如果 PCR2~PCR0 全都设为 0, 则所有 PB 端口的引脚都被设为正常的 I/O, 这时内部 A/D 转换器电路的电源将被关闭以减少功耗 ADCR 寄存器中的 START 位, 用于打开和复位 A/D 转换器 当单片机设定此位从逻辑低到逻辑高, 然后再到逻辑低, 就会产生一个模数转换周期 当 START 位从逻辑低到逻辑高, 但不再回到逻辑低时, 则会将 ADCR 寄存器中的 EOCB 位置为 1, 复位模数转换器 START 位用于控制内部模数换转器的开 / 关动作 81

92 A/D with LCD 型单片机使用手册 ADCR 寄存器中的 EOCB 位用于表明模数转换过程的完成 在转换周期结束后,EOCB 位会被单片机自动地置为 0 此外, 也会置位中断控制寄存器内相应的 A/D 中断请求标志位, 如果中断使能, 就会产生适当的内部中断信号 A/D 内部中断信号将引导程序到相应的 A/D 内部中断入口 如果 A/D 内部中断被除能, 单片机可以轮询 ADCR 寄存器中的 EOCB 位, 检查此位是否被清除, 以做为另一种侦测 A/D 转换周期结束的方法 > % > 5 6 ) * ) + 5 ) + 5 ) + 5 ), A C EI JA H 0 6 " $ 4 $ 0 6 " $ + $ 5 A A? J),? D = A ) + 5 ) + 5 ) + 5 : ) ) ) )! ) " ) # A BE = J> A K I 2 HJ* ),? D = A? BEC K H= JE I : 2 HJ* ),? D = A I = BB 2 * A = > = I ) 2 * 2 * A = > = I ) ) 2 * 2 * A = > = I ) ) 2 * 2 *! A = > = I ) )! 2 * 2 * " A = > = I ) ) " 2 * 2 * # A = > = I ) ) # B),? L A HI E B = C B),? L A HI E ),? L A HI E M = EJE C HE F H C HA I I B),? L A HI E ),? L A HI E 5 J= HJJD A ),? L A HI E 5 J= HJ 4 A I A J),? L A HJA I A J- + * J > % > 5 6 ) * ) + 5 ) + 5 ) + 5 ), A C EI JA H 0 6 " $ 4 $! 0 6 " $ + $! 0 6 " $ 4 $ " 0 6 " $ + $ " 0 6 " $ 4 $ # 0 6 " $ + $ # 5 A A? J),? D = A ) + 5 ) + 5 ) + 5 ) ) ) )! ) " ) # ) $ ) % 2 HJ* ),? D = A? BEC K H= JE I HJ* ),? D = A I = BB 2 * A = > = I ) 2 * 2 * A = > = I ) ) 2 * 2 * A = > = I ) ) 2 * 2 *! A = > = I ) )! 2 * 2 * " A = > = I ) ) " 2 * 2 * # A = > = I ) ) # 2 * 2 * % A = > = I ) ) % B),? L A HI E B = C B),? L A HI E ),? L A HI E M = EJE C HE F H C HA I I B),? L A HI E ),? L A HI E J= HJJD A ),? L A HI E 5 J= HJ 4 A I A J),? L A HJA I A J- + * J

93 第一章硬件结构 A/D 转换器时钟源寄存器 ACSR A/D 转换器的时钟源为系统时钟 f SYS 的分频, 而分频率由 ACSR 寄存器中的 ADCS1 和 ADCS0 位决定 对于 HT46R63/HT46C63 而言, 这个寄存器还包含一个内部比较器电路的使能位 > % > ), + 5 ), + 5 ) A C EI JA H A N? A F J0 6 " $ 4 $! 0 6 " $ + $! 5 A A? J),? L A HJA H?? I K H? A ), + 5 ), + 5 I O I JA?? I O I JA?? & I O I JA??! A BE JE F A A HA = I. HJA I A K I A O > % > ), + 5 ), + 5 ) A C EI JA H 0 6 " $ 4 $! 0 6 " $ + $! 5 A A? J),? L A HJA H?? I K H? A ), + 5 ), + 5 I O I JA?? I O I JA?? & I O I JA??! A BE + F = H= J H? JH A = > A A = > EI = > A = I? A = J = K J = JE? = O E JD A 0 ) A JE F A A HA = I. HJA I A K I A O 虽然 A/D 时钟源是由系统时钟 f SYS ADCS1 和 ADCS0 决定, 但可选择的最大 A/D 时钟源速度则有一些限制 由于允许的 A/D 时钟周期 t AD 的最小值是 1µs, 因此, 当系统时钟速度超过 2MHz 时,ADCS1 和 ADCS0 位不能设为 00 否则的话, 将导致 A/D 时钟周期小于 1µs, 产生不准确的 A/D 转换值 参考下面表格中的一些例子, 被标上星号 * 的数值是不允许的, 因为它们的 A/D 时钟周期小于规定的最小值 A/D 时钟周期 (t AD ) f SYS ADCS1, ADCS0=00 ADCS1, ADCS0=01 ADCS1, ADCS0=10 ADCS1, ADCS0=11 (f SYS /2) (f SYS /8) (f SYS /32) 1MHz 2µs 8µs 32µs 未定义 2MHz 1µs 4µs 16µs 未定义 4MHz 500ns* 2µs 8µs 未定义 8MHz 250ns* 1µs 4µs 未定义 A/D 时钟周期例子 83

94 A/D with LCD 型单片机使用手册 A/D 输入引脚所有的 A/D 模拟输入引脚都与 PB 端口的 I/O 引脚共用 ADCR 寄存器中的 PCR2~PCR0 位, 决定是将输入引脚设置为正常的 PB 端口输入 / 输出引脚, 还是将它们设置为模拟输入引脚, 而不是由掩膜选项来决定 通过这种方式, 引脚的功能可由程序来控制, 从正常的 I/O 操作功能到模拟输入, 反过来也一样 当输入引脚作为正常的 I/O 引脚使用时, 可通过掩膜选项设置上拉电阻, 若设置为 A/D 输入, 则上拉电阻会自动断开 请注意,PBC 端口控制寄存器并不需要为使能 A/D 输入, 而先设定 A/D 引脚为输入引脚, 当 PCR2~PCR0 位使能 A/D 输入时, 不考虑端口控制寄存器的状态 对于 HT46R63/HT46C63, 模拟电压供应引脚 AVDD 作为 A/D 转换器的参考电压, 它必须连接到外部的 VDD 对于其它单片机, 电源供应脚 VDD 在内部连接到 A/D 转换器, 作为它的参考电压 需要适当的量测 VDD, 以确保该电压的稳定及减少噪声 A/D 转换的步骤下面总结实现 A/D 转换过程的各个步骤 步骤 1 选择 PB 端口的 A/D 输入引脚, 并通过 ADCR 中的 PCR2~PCR0 位, 将它们规划为 A/D 输入引脚 步骤 2 通过 ADCR 中的 ACS2~ACS0 位, 选择连接至内部 A/D 转换器的通道 步骤 3 通过 ACSR 中的 ADCS1 和 ADCS0 位, 选择所需的 A/D 转换时钟 步骤 4 如果要使用中断, 则中断控制寄存器必须正确地设置, 以确保 A/D 功能的动作 根据使用的单片机, 主中断控制位 EMI ( 位于 INTC0 内 ) 必须置位为 1, A/D 转换器的中断使能位 EADI ( 位于 INTC0 或 INTC1 内 ) 也必须置位为 1 步骤 5 通过设定 ADCR 寄存器中的 START 位从 0 到 1 再回到 0, 可以开始模数转换的过程 该位需初始化为 0 84

95 第一章硬件结构 步骤 6 可以轮询 ADCR 寄存器中的 EOCB 位, 检查模数转换过程是否完成 当此位成为逻辑低时, 表示转换过程已经完成 转换完成后, 可读取 A/D 数据寄存器 ADRL 和 ADRH 获得转换后的值 另一种方法是, 若中断使能且堆栈未满, 则转换完成后, 程序会进入 A/D 中断服务子程序 注意 : 若使用轮询 ADCR 寄存器中 EOCB 位的状态的方法来检查转换过程是否结束时, 步骤 4 可以省略 下列时序图表示模数转换过程中不同阶段的图形与时序 E E K A E I JHK? JE? O? A A 5 6 ) * ), I = F E C JE A! J), ), I = F E C JE A! J), * * * * 2 * F HJI A JK F = I 1 I ),? L A HJA HEI F M A BB J K? A F M A H? I K F JE ) + 5 ) + 5 * 2 M A H 4 A I A J 4 A I A J),? L A HJA H, A BE A 2 *? BEC K H= JE 5 A A? J= = C? D = A * 5 J= HJ B),? L A HI E % $ J), ),? L A HI E JE A 4 A I A J),? L A HJA H B),? L A HI E * 5 J= HJ B),? L A HI E B),? L A HI E % $ J), ),? L A HI E JE J? = HA JA ),?? K I J> A B5 ; 5 B5 ; 5 & HB5 ; 5! A/D 转换时序 注意 : 该时序图是针对 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 而言, 对于 HT46R63/HT46C63,A/D 转换时间是 64 t AD 而不是 76 t AD A/D 转换器没有对应的掩膜选项, 它的功能设定与操作完全由应用程序控制 由应用程序控制开始 A/D 转换过程后, 单片机的内部硬件就会开始进行转换, 在这个过程中, 程序可以继续其它功能 有两种方法判断 A/D 转换过程是否结束, 第一种方法是应用程序去轮询 ADCR 寄存器中的 EOCB 位, 第二种方法则是等待 A/D 内部中断的发生 下面两个短程序的例子用来说明这两个方法, 它们是根据具有两个 A/D 数据寄存器的 HT46R62/HT46C62 HT46R64/ HT46C64 和 HT46R65/HT46C65 而撰写的 对于只有一个 A/D 数据寄存器的 HT46R63/HT46C63 而言, 可使用 EADI 位屏蔽中断 85

96 范例 : 使用 EOCB 轮询方法侦测转换的结束 clr INTC0.7 mov a, b mov ADCR,a A/D with LCD 型单片机使用手册 ; disable A/D interrupt in interrupt control ; register ; setup ADCR register to configure Port ; PB0~PB3 as A/D inputs and select AN0 to be ; connected to the A/D converter mov a, b mov ACSR,a ; setup the ACSR register to select f SYS /8 ; as the A/D clock Start_conversion: clr ADCR.7 set ADCR.7 clr ADCR.7 ; reset A/D ; start A/D Polling_EOC: sz ADCR.6 jmp polling_eoc mov a,adrh mov adrh_buffer,a mov a,adrl ; poll the ADCR register EOCB bit to detect ; end of A/D conversion ; continue polling ; read conversion result from the high byte ; ADRH register ; save result to user defined register ; read conversion result from the low byte ; ADRL register ; save result to user defined register mov adrl_buffer,a : : jmp start_conversion ; start next A/D conversion 86

97 第一章硬件结构 范例 : 使用中断方法侦测转换的结束 set INTC0.7 mov a, b mov ADCR,a ; enable A/D interrupt in interrupt control ; register ; setup ADCR register to configure Port ; PB0~PB3 as A/D inputs and select AN0 to be ; connected to the A/D converter mov a, b mov ACSR,a ; setup the ACSR register to select f SYS /8 ; as the A/D clock start_conversion: clr ADCR.7 set ADCR.7 clr ADCR.7 : : ; interrupt service routine EOCB_service routine: mov a_buffer,a mov a,adrh mov adrh_buffer,a mov a,adrl mov adrl_buffer,a ; reset A/D ; start A/D ; save ACC to user defined register ; read conversion result from the high byte ; ADRH register ; save result to user defined register ; read conversion result from the low byte ; ADRL register ; save result to user defined register clr ADCR.7 set ADCR.7 clr ADCR.7 mov a,a_buffer reti ; reset A/D ; start A/D ; restore ACC from terporary storage 87

98 A/D with LCD 型单片机使用手册 A/D 转换功能 HT46R63/HT46C63 含有一组 8 位的 A/D 转换器, 它转换的最大值可达 FF 由于模拟输入最大值等于 VDD 的电压值, 因此每一位可表示 V DD /256 的模拟输入值 HT46R62/HT46C62 含有一组 9 位的 A/D 转换器, 它转换的最大值可达 1FF, 每一位表示 V DD /512 的模拟输入值 同样地,HT46R64/HT46C64 和 HT46R65/HT46C65 均含有一组 10 位的 A/D 转换器, 它们转换的最大值可达 3FF, 每一位表示 V DD /1024 的模拟输入值 下图显示 8 位 9 位和 10 位 A/D 转换器内, 模拟输入值和数字输出值之间理想的转换功能.. 0 # 5 *. - 0 ), + L A HI E 4 A I K J., 0! 0 0 # 5 * 0! #! # " # # # $ ) = C 1 F K J8 J= C A 理想的 A/D 转换功能 HT46R63/HT46C63 8,, # $.. 0 # 5 *. - 0 ), + L A HI E 4 A I K J., 0! 0 0 # 5 * 0! # ' # # # ) = C 1 F K J8 J= C A 理想的 A/D 转换功能 HT46R62/HT46C62 8,, # 88

99 第一章硬件结构!.. 0 # 5 *!. - 0 ), + L A HI E 4 A I K J!., 0! 0 0 # 5 * 0!! " ) = C 1 F K J8 J= C A 8,, " 理想的 A/D 转换功能 HT46R64/HT46C64 和 HT46R65/HT46C65 为了减少量化错误,A/D 转换器输入端会加入 0.5 LSB 的偏移量 除了数字化数值 0, 其后的数字化数值会在精确点之前的 0.5 LSB 处改变, 而数字化数值的最大值将在 VDD 之前的 1.5 LSB 处改变 A/D 转换器有最大为 ±1 LSB 的非线性积分误差, 这是理想线性转递功能的偏离 对于 HT46R63/HT46C63,8 位结果的 A/D 转换器有 7 位精准度, 对于 HT46R62/HT46C62,9 位结果的 A/D 转换器有 8 位精准度, 对于 HT46R64/ HT46C64 和 HT46R65/HT46C65,10 位结果的 A/D 转换器有 9 位精准度 89

100 A/D with LCD 型单片机使用手册 中断 每一款 A/D with LCD 系列单片机均包含外部与内部中断功能 外部中断由外部引脚 INT0 和 INT1 的动作控制 而定时计数器和 A/D 转换器等内部功能都利用内部中断功能进行操作 对于 A/D with LCD 型单片机, 提供了两个中断控制寄存器 (INTC0 和 INTC1) 来控制所有的中断控制特性 一但中断子程序被响应, 所有其它的中断将被屏蔽 ( 通过清除 EMI 位 ) 这个方式可以防止任何进一步的中断嵌套 其它的中断请求可能发生在此期间, 但只有中断请求标志位会被记录 如果某个中断服务子程序正在执行, 此时有另一个中断要求响应,EMI 位和 INTC 相关的位可以被置位, 以允许此中断被响应 如果堆栈已满, 即使此中断使能, 中断请求也不会被响应, 直到 SP 减少为止 如果要求立刻动作, 则堆栈必须避免成为储满状态 在暂停模式中, 所有的中断都具有唤醒单片机的能力 当中断被响应时, 首先将程序计数器的值压入堆栈, 并跳转到程序存储器中特殊地址的子程序 只有程序计数器的值会被压入堆栈 如果累加器 状态寄存器或是其它寄存器的内容会被中断服务程序改变, 而这些变化可能会破坏原先想要的控制顺序, 则这些内容应该预先加以储存 90

101 第一章硬件结构 > % > - ), A C EI JA H 0 6 " $ 4 $ 0 6 " $ + $ = I JA HE JA HHK F JC > = A = > A C > = A = > A C > EI = > A - N JA H = E JA HHK F J A = > A A = > EI = > A - N JA H = E JA HHK F J A = > A A = > EI = > A 6 E A H - L A J+ K JA HE JA HHK F JA = > A A = > EI = > A - N JA H = E JA HHK F J HA G K A I JB = C =? JEL A E =? JEL A - N JA H = E JA HHK F J HA G K A I JB = C =? JEL A E =? JEL A 6 E A H - L A J+ K JA HE JA HHK F JHA G K A I JB = C =? JEL A E =? JEL A ), + L A HJA H = I = > A E JA HHK F JA = > A A = > EI = > A > % > * * A C EI JA H 0 6 " $ 4 $ 0 6 " $ + $ JE F A A HA = I 6 E A * = I A E JA HHK F JA = > A A = > EI = > A 4 A = 6 E A +? E JA HHK F JA = > A A = > EI = > A JE F A A HA = I 6 E A * = I A HA G K A I JB = C =? JEL A E =? JEL A 4 A = 6 E A +? HA G K A I JB = C =? JEL A E =? JEL A JE F A A HA = I 91

102 A/D with LCD 型单片机使用手册 > % > A C EI JA H 0 6 " $ 4 $! 0 6 " $ + $! = I JA HE JA HHK F JC > = A = > A C > = A = > A C > EI = > A - N JA H = E JA HHK F J A = > A A = > EI = > A - N JA H = E JA HHK F J A = > A A = > EI = > A 6 E A H - L A J+ K JA HE JA HHK F JA = > A A = > EI = > A - N JA H = E JA HHK F J HA G K A I JB = C =? JEL A E =? JEL A - N JA H = E JA HHK F J HA G K A I JB = C =? JEL A E =? JEL A 6 E A H - L A J+ K JA HE JA HHK F JHA G K A I JB = C =? JEL A E =? JEL A JE F A A HA = I > % > 4 6. ),. 6 * ), 1-6 * A C EI JA H 0 6 " $ 4 $! 0 6 " $ + $! 6 E A * = I A E JA HHK F JA = > A A = > EI = > A ), + L A HJA HE JA HHK F JA = > A A = > EI = > A 4 A = 6 E A +? E JA HHK F JA = > A A = > EI = > A JE F A A HA = I 6 E A * = I A E JA HHK F JHA G K A I JB = C =? JEL A E =? JEL A ),? L A HJA HHA G K A I JB = C =? JEL A E =? JEL A E JA HHK F JHA G K A I JB = C =? JEL A E =? JEL A JE F A A HA = I 92

103 第一章硬件结构 > % > - ), A C EI JA H 0 6 " $ 4 $ " 0 6 " $ + $ " 0 6 " $ 4 $ # 0 6 " $ + $ # = I JA HE JA HHK F JC > = A = > A C > = A = > A C > EI = > A - N JA H = E JA HHK F J A = > A A = > EI = > A - N JA H = E JA HHK F J A = > A A = > EI = > A 6 E A H - L A J+ K JA H E JA HHK F JA = > A A = > EI = > A - N JA H = E JA HHK F J HA G K A I JB = C =? JEL A E =? JEL A - N JA H = E JA HHK F J HA G K A I JB = C =? JEL A E =? JEL A 6 E A H - L A J+ K JA H E JA HHK F JHA G K A I JB = C =? JEL A E =? JEL A ), + L A HJA H = I = > A E JA HHK F JA = > A A = > EI = > A > % > * * A C EI JA H 0 6 " $ 4 $ " 0 6 " $ + $ " 0 6 " $ 4 $ # 0 6 " $ + $ # 6 E A H - L A J+ K JA H E JA HHK F JA = > A A = > EI = > A 6 E A * = I A E JA HHK F JA = > A A = > EI = > A 4 A = 6 E A +? E JA HHK F JA = > A A = > EI = > A JE F A A HA = I 6 E A H - L A J+ K JA H E JA HHK F JHA G K A I JB = C =? JEL A E =? JEL A 6 E A * = I A HA G K A I JB = C =? JEL A E =? JEL A 4 A = 6 E A +? HA G K A I JB = C =? JEL A E =? JEL A JE F A A HA = I 93

104 A/D with LCD 型单片机使用手册 各个中断使能位以及相应的请求标志位, 以优先级的顺序如下图所示 ) K J = JE? = O + A = > O 15 4 = K = O 5 A J H+ A = > O 5 BJM = HA ), + L A HJA H = I = > A 1 JA HHK F J 4 A G K A I J. = C - ), 1 ) K J = JE? = O, EI = > > O = > A - = > = K = O 2 HE HEJO 0 EC D - N JA H = 1 JA HHK F J 4 A G K A I J. = C N JA H = 1 JA HHK F J 4 A G K A I J. = C E A H - L A J+ K JA H 1 JA HHK F J4 A G K A I J. = C JA HHK F J 2 E C 6 E A * = I A 1 JA HHK F J4 A G K A I J. = C 6 *. - 6 * 1 4 A = 6 E A +? 1 JA HHK F J4 A G K A I J. = C M 中断优先权 HT46R62/HT46C62 ) K J = JE? = O + A = > O 15 4 = K = O 5 A J H+ A = > O 5 BJM = HA ) K J = JE? = O, EI = > > O = > A - = > = K = O - N JA H = 1 JA HHK F J 4 A G K A I J. = C HE HEJO 0 EC D - N JA H = 1 JA HHK F J 4 A G K A I J. = C E A H - L A J+ K JA H 1 JA HHK F J4 A G K A I J. = C 6. 6 E A * = I A 1 JA HHK F J4 A G K A I J. = C 6 * * 1 1 JA HHK F J 2 E C ), + L A HJA H 1 JA HHK F J4 A G K A I J. = C ),. - ), 1 4 A = 6 E A +? 1 JA HHK F J4 A G K A I J. = C M 中断优先权 HT46R63/HT46C63 94

105 第一章硬件结构 ) K J = JE? = O + A = > O 15 4 = K = O 5 A J H+ A = > O 5 BJM = HA ), + L A HJA H = I = > A 1 JA HHK F J 4 A G K A I J. = C - ), 1 ) K J = JE? = O, EI = > > O = > A - = > = K = O 2 HE HEJO 0 EC D - N JA H = 1 JA HHK F J 4 A G K A I J. = C N JA H = 1 JA HHK F J 4 A G K A I J. = C E A H - L A J+ K JA H 1 JA HHK F J4 A G K A I J. = C JA HHK F J 2 E C 6 E A H - L A J+ K JA H 1 JA HHK F J4 A G K A I J. = C E A * = I A 1 JA HHK F J4 A G K A I J. = C 6 *. - 6 * 1 4 A = 6 E A +? 1 JA HHK F J4 A G K A I J. = C M 中断优先权 HT46R64/HT46C64 和 HT46R65/HT46C65 注意 : HT46R63/HT46C63 的 A/D 转换器中断是可屏蔽的中断, 有相应的中断请求标志位 ADF, 对于其余的单片机,A/D 中断无法屏蔽也没有中断请求标志位 外部中断 A/D with LCD 系列单片机具有两组外部中断功能, 由外部引脚 INT0 和 INT1 控制 要使外部中断发生, 必须正确选择掩膜选项将引脚设定为中断输入引脚, 另外相应的外部中断使能位必须先被设定 外部中断使能位 EEI0 和 EEI1 为 INTC0 寄存器的第 1 位和第 2 位 外部中断通过 INT0 或 INT1 端口上的电平转换来触发, 之后相应的中断请求标志位 (EIF0 EIF1;INTC0 的第 4 位 第 5 位 ) 将被设定 每个外部中断输入引脚都有掩膜选项可进行外部中断电平触发类型的设置 有四种选项可供选择 : 下降沿触发 上升沿触发 上升沿或下降沿触发或者除能 如果选择除能, 则外部中断功能将被除能且该引脚作为一般 I/O 使用 当中断使能 堆栈未满且掩膜选项中设置的逻辑电平转换发生在引脚 INT0 或 INT1 上时, 将调用位于地址 04H 或 08H 处的子程序 当外部中断被响应时, 中断请求标志位 EIF0 或 EIF1 会被复位且 EMI 位会被清零以除能其它中断 95

106 A/D with LCD 型单片机使用手册 定时 / 计数器中断要使定时器内部中断发生, 相应的内部中断使能位必须先被设定 对于具有一组定时器的单片机, 中断使能位 ETI 为 INTC0 寄存器的第 3 位 对于具有两组定时器的单片机, 定时器 0 的中断使能位 ET0I 为第 3 位, 而定时器 1 的中断使能位 ET1I 为第 0 位 当定时器溢出后, 就会置位定时 / 计数器中断请求标志位, 产生定时 / 计数器中断 对于具有一组定时器的单片机, 请求标志位 TF 为 INTC0 寄存器的第 6 位 对于具有两组定时器的单片机, 定时器 0 的请求标志位 T0F 为 INTC0 寄存器的第 6 位, 而定时器 1 的请求标志位 T1F 为 INTC1 寄存器的第 4 位 当主设备的中断使能位被置位 堆栈未满且对应的内部中断使能位被置位时, 一旦定时 / 计数器溢出, 就会产生内部中断 对于具有一组定时器的单片机, 该中断将产生地址 00CH 处的子程序调用 而对于具有两组定时器的单片机, 由定时器 0 产生的中断, 调用地址 00CH 处的子程序, 而由定时器 1 产生的中断, 调用地址 010H 处的子程序 当内部中断被响应时, 中断请求标志位 TF T0F 或 T1F 会被复位且 EMI 位会被清零以除能其它中断 时基中断要使时基中断发生, 相应的内部中断使能位 ETBI 必须被置位 对于 HT46R63/ HT46C63, 此位为 INTC1 寄存器的第 0 位, 而对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 则为 INTC1 寄存器的第 1 位 当时基产生暂停信号时, 就会置位中断请求标志位 TBF, 产生时基中断 在 HT46R63/HT46C63 中, 此位为 INTC1 寄存器的第 4 位, 而在 HT46R62/ HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 中, 则为 INTC1 寄存器的第 5 位 当主中断使能位被置位 堆栈未满且对应的时基中断使能位被置位时, 一旦时基产生暂停信号, 就会产生内部时基中断 对于 HT46R63/HT46C63, 将调用地址 010H 处的子程序, 而对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 将调用地址 14H 处的子程序 当时基中断被响应, 中断请求标志位 TBF 会被复位且 EMI 位将被清零以除能其它中断 96

107 第一章硬件结构 时基中断的目的是要提供一个具有固定时间周期的中断信号 时基中断的时钟源是内部时钟 f S, 这个 f S 输入时钟先通过一个分频器, 分频比例可通过掩膜选项进行选择, 以提供更长的时基中断周期 时基中断的暂停周期范围由 2 12 /f S 至 2 15 /f S 产生 f S 的时钟源同时也决定时基中断的周期, 它有三种不同的来源, 分别为 RTC 振荡器 看门狗定时振荡器或系统振荡器 /4, 至于选择何种时钟源作为 f S 时钟源则是由掩膜选项来选择 要注意的是, 对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 如果选择 RTC 振荡器作为系统时钟, 则 f S 和相应的时基中断也将使用 RTC 振荡器作为时钟源 B5 ; 5 " 9, 6 I? E = J H I? E = J H B5 5 K H? A + BEC K H= JE F JE B5 + BEC K H= JE F JE, EL E@ A > O # 6 E A * = I A 1 JA HHK F J B5 # B5 时基中断 实时时钟中断 RTC 要使实时时钟中断发生, 相应的内部中断使能位 ERTI 必须被置位 对于所有 A/D with LCD 系列单片机, 此位为 INTC1 寄存器的第 2 位 当实时时钟产生暂停信号时, 就会置位中断请求标志位 RTF, 产生实时时钟中断 当主中断使能位被置位 堆栈未满且相应的实时时钟中断使能位被置位时, 一旦实时时钟产生暂停信号, 就是产生内部实时时钟中断, 将调用地址 18H 处的子程序 当实时时钟中断被响应时, 中断请求标志位 RTF 会被复位且 EMI 位将被清零以除能其它中断 不要混淆 RTC 中断与 RTC 振荡器 相似于时基中断,RTC 中断的目的也是要提供一个具有固定时间周期的中断信号 RTC 中断的时钟源来自于内部时钟源 f S, 这个 f S 输入时钟先通过一个分频器, 分频比例可通过写入数据到 RTCC 寄存器中适当的位, 以获得更长的 RTC 中断周期, 其范围由 2 8 /f S 至 2 15 /f S 产生 f S 的时钟源同时也决定 RTC 中断的周期, 它有三种不同的来源, 分别为 RTC 振荡器 看门狗定时振荡器或系统振荡器 /4, 至于选择何种时钟源作为 f S 时钟源则是由掩膜选项来选择 请注意, 对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 如果选择 RTC 振荡器作为系统时钟, 则 f S 和相应的 RTC 中断也将使用 RTC 振荡器作为时钟源 97

108 A/D with LCD 型单片机使用手册 B5 ; 5 " 9, 6 I? E = J H I? E = J H B5 5 K H? A + BEC K H= JE F JE B5, EL E@ A > O & # 5 A J> O A C EI JA HI JA HHK F J & B5 # B RTC 中断请注意,RTC 中断周期是由掩膜选项和内部寄存器 RTCC 控制 掩膜选项用于选择内部时钟 f S 的时钟源, 而 RTCC 寄存器的 RT2 RT1 和 RT0 位, 则是选择 2 8 /f S 至 2 15 /f S 的分频比例 对于 RTC 的中断周期, 请参考 RTCC 寄存器的章节 注意 : 在单片机被唤醒后, 系统需要 1024 个时钟周期来恢复正常运行 如果 32768Hz 的 RTC 振荡器被选择作为系统时钟, 对于唤醒后对定时灵敏的 RTC 中断的应用程序而言, 在选择 和 2 10 的 RTC 中断分频时必须特别小心 对于这些分频比例, 在唤醒后的 1024 个时钟周期内, 接下来的 RTC 中断事件会被遗漏 A/D 中断取决于选用的单片机, 有两种与 A/D 转换器相关的中断形式, 分别为可屏蔽中断和不可屏蔽中断 HT46R63/HT46C63 的 A/D 中断与其它中断一样, 是可屏蔽中断, 具有使能位和请求标志位 而 HT46R62/HT46C62 HT46R64/ HT46C64 和 HT46R65/HT46C65 的 A/D 中断则不同, 是不可屏蔽中断, 没有相应的请求标志位 在 HT46R63/HT46C63 中, 要使 A/D 中断发生, 相应的中断使能位 EADI 必须先被设定 此位为 INTC1 寄存器的第 1 位 当 A/D 转换程序完成时, 就会置位 A/D 转换器请求标志位 ADF, 产生 A/D 中断 对于 HT46R63/HT46C63, ADF 为 INTC1 寄存器的第 5 位 当主设备的中断使能位被置位 堆栈未满且对应的 A/D 中断使能位被置位时, 一旦先前请求的 A/D 转换程序完成, 就会产生内部中断 对于 HT46R63/HT46C63, 该中断将调用地址 14H 处的子程序 当 A/D 中断被响应, 中断请求标志位 ADF 会被复位且 EMI 位会被清零以除能其它中断 98

109 第一章硬件结构 对于具有不可屏蔽式 A/D 中断的 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 要使 A/D 中断发生, 相应的中断使能位 EADI 必须先被设定 此位为 INTC0 寄存器的第 7 位 如果 EADI 位被设定, 当 A/D 转换程序完成时, 不管 EMI 位的状态如何, 立即就会产生 A/D 中断, 对于 HT46R62/ HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 将调用地址 1CH 处的子程序 对于这些单片机而言, 由于没有提供请求标志位, 所以会立即跳转到中断子程序入口地址 请注意, 如果使用 A/D 中断, 至少要预留一层可用的堆栈 中断优先权当中断是发生在两个连续的 T2 脉冲上升沿之间时, 如果相应的中断请求被允许, 中断将在后一 T2 脉冲响应 下表指出在同时提出请求的情况下所提供的优先权 除了 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 的 A/D 中断外, 这些中断可以通过重新设定 EMI 位来加以屏蔽 中断源 HT46R62 HT46C62 优先权 HT46R63 HT46C63 优先权 HT46R64 HT46C64 优先权 HT46R65 HT46C65 优先权 外部中断 外部中断 TMR/TMR0 溢出 TMR1 溢出 N/A N/A 5 5 时基中断 RTC 中断 A/D 转换器中断 注意 :1. 只有在具有两组定时 / 计数器的 HT46R64/HT46C64 和 HT46R65/HT46C65 中才有定时 / 计数器 1, 而 HT46R62/HT46C62 和 HT46R63/HT46C63 只具有一组定时 / 计数器 TMR HT46R64/HT46C64 和 HT46R65/HT46C65 具有两组定时 / 计数器 TMR0 和 TMR1 2. HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 是不可屏蔽式 A/D 中断, 所以这个中断的优先权高于其它中断 99

110 A/D with LCD 型单片机使用手册 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 中的不可屏蔽式 A/D 中断的中断优先权总是高于其它中断 然而, 除了不可屏蔽式 A/D 中断, 当外部和内部中断均使能且外部和内部中断同时发生时, 外部中断将具有优先权, 首先被响应 使用 INTC0 和 INTC1 寄存器适当的屏蔽个别中断, 可以防止同时发生的情况 如果正确的选择了掩膜选项, 而且引脚也设置为输入, 则与输入引脚 PD4 和 PD5 共用的外部中断引脚 INT0 和 INT1, 只能作为外部中断的输入引脚使用 编程注意事项中断请求标志位 TF T0F T1F EIF0 EIF1 TBF 和 RTF 与中断使能位 ETI ETI0 ETI1 EEI0 EEI1 ETBI EADI 和 ERTI 共同形成数据存储器中的中断控制寄存器 INTC0 和 INTC1 通过除能中断使能位, 可以屏蔽中断请求 然而, 一旦中断请求标志位被设定, 它们会被保留在 INTC0 和 INTC1 寄存器内, 直到相应的中断服务子程序执行或被软件指令清除 建议用户在中断服务子程序中不要使用 调用子程序 指令 中断通常发生在不可预料的情况或需要立刻执行的某些应用 假如只剩下一层堆栈且没有控制好中断, 当 调用子程序 在中断服务子程序中执行时, 将破坏原来的控制序列 100

111 第一章硬件结构 复位和初始化复位功能是任何单片机中基本的部分, 使得单片机可以设定一些与外部参数无关的先置条件 最重要的是, 复位条件在初次提供电源给单片机后, 经短暂延迟, 内部电路将使得单片机被定义在良好的状态且准备执行第一条程序语句 上电复位之后, 在程序未开始执行前, 部分重要的内部寄存器将会被预先设定状态 程序计数器就是其中之一, 它会被清除为零, 使得单片机从最低的程序存储器地址开始执行程序 除了上电复位外, 即使单片机正在执行状态, 有些情况的发生也迫使单片机必须加以复位 其中一个例子是当提供电源给单片机以执行程序后,RES 引脚被强制拉下至低电平 这个例子为正常操作复位, 单片机中只有一些寄存器受影响, 而大部分寄存器则是不受影响, 以便复位引脚回复至高电平后, 单片机仍可以正常操作 复位的另一种形式是看门狗定时器溢出而复位单片机, 所有复位操作类型导致不同的寄存器条件被加以设定 另外一种复位以低电压即 LVR 的型态存在, 在电源提供电压低于某一临界值的情况下, 一种和 RES 引脚复位类似的完全复位将会被执行 101

112 A/D with LCD 型单片机使用手册 复位 通过内部与外部事件触发复位, 单片机共有五种复位方式 : 上电复位这是最基本而不可避免的复位, 发生在单片机上电后 除了保证程序存储器会从起始地址开始执行, 上电复位也使得其它寄存器被设定在预设条件, 所有的输入 / 输出口寄存器和输入 / 输出端口控制寄存器在上电复位时会保持高电平, 以确保上电后所有引脚被设为输入状态 虽然单片机有一个内部 RC 复位功能, 由于接通电源不稳定, 还是推荐使用和 RES 引脚连接的外部 RC 电路 由 RC 电路所造成的时间延迟使得 RES 引脚在电源供应稳定前的一段延长周期内保持在低电平 在这段时间内, 单片机的正常操作是被禁止的 RES 引脚达到一定电压值后, 再经过延迟时间 t RSTD, 单片机可开始进行正常操作 下图中 SST 是系统延迟周期 System Start-up Timer 的缩写 8,, 4-5 ' 8,, J4 5 6, E A K J 1 JA H = 4 A I A J 上电复位时序图 RES 引脚复位当单片机正常工作, 而 RES 引脚通过外部硬件 ( 如外部开关 ) 被强迫拉至低电平时, 此种复位型式即会发生 这种复位形式与其它复位的例子一样, 程序计数器会被清除为零且程序从头开始执行 E A K J " 8,, ' 8,, J4 5 6, 1 JA H = 4 A I A J RES 引脚复位时序图 102

113 第一章硬件结构 低电压复位 LVR 单片机具有低电压复位电路, 可以监测它的电源电压 例如在更换电池的情况下, 单片机供应的电压可能会落在 0.9V~V LVR 的范围内, 这是 LVR 将会自动从内部复位单片机 LVR 包含以下的规格 : 有效的 LVR 信号, 即在 0.9V~V LVR 的低电压, 必须存在超过 1ms 如果低电压存在不超过 1ms, 则 LVR 将会忽略它且不会执行复位功能 E A K J 1 JA H = 4 A I A J J4 5 6, 低电压复位时序图 正常操作时看门狗溢出复位除了看门狗溢出标志位 TO 将被设为 1 之外, 正常操作时看门狗溢出复位和 RES 复位相同 9, 6 6 E A K J J4 5 6, E A K J 1 JA H = 4 A I A J 正常操作时看门狗溢出复位时序图 暂停时看门狗溢出复位暂停时看门狗溢出复位有些不同于其它种类的复位, 除了程序计数器与堆栈指针将被清除为 0 及 TO 标志位被设为 1 外, 绝大部份的条件保持不变 图中 t SST 的细节请见 A.C. 特性 9, 6 6 E A K J E A K J J5 5 6 暂停时看门狗溢出复位时序图 103

114 A/D with LCD 型单片机使用手册 不同的复位方法以不同的方式影响复位标志位 这些标志位, 即 PDF 和 TO, 被放在状态寄存器中, 由如暂停功能或看门狗计数器等几种控制器操作控制 复位标志位如下所示 : TO PDF 复位条件 u 表示不变化 0 0 上电时的 RES 复位 u u 一般运行时的 RES 复位或 LVR 低压复位 1 u 一般运行时的 WDT 溢出复位 1 1 HALT 暂停时的 WDT 溢出复位 在单片机复位之后, 各功能单元初始化的情形, 列于下表 项目程序计数器中断看门狗定时器 / 实时时钟中断 / 时基定时 / 计数器预分频器输入 / 输出口堆栈指针 复位后情况清除为零所有中断被除能复位后清除, 看门狗定时器重新计时所有定时 / 计数器停止定时 / 计数器之预分频器内容清除所有输入 / 输出口设为输入模式堆栈指针指向堆栈顶端 不同的复位以不同的方式影响单片机中的内部寄存器 为保证复位发生后程序的正常执行, 在特定的复位发生后, 了解单片机内的情况是非常重要的 下表描述了不同的复位如何影响单片机的内部寄存器 104

115 第一章硬件结构 HT46R62/HT46C62 寄存器 RES 复位 ( 上电时 ) RES 或 LVR 复位 ( 一般运行时 ) WDT 溢出复位 ( 一般运行时 ) WDT 溢出复位 (HALT 暂停时 ) MP0 1xxx xxxx 1uuu uuuu 1uuu uuuu 1uuu uuuu MP1 1xxx xxxx 1uuu uuuu 1uuu uuuu 1uuu uuuu ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu PCL BP uuuu uuuu TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu TBLH xx xxxx uu uuuu uu uuuu uu uuuu RTCC uu uuuu STATUS 00 xxxx uu uuuu 1u uuuu 11 uuuu INTC uuuu uuuu INTC uu uu TMR xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMRC uu u uuuu PA uuuu uuuu PAC uuuu uuuu PB uu uuuu PBC uu uuuu PD uuu uuu PDC uuu uuu PWM0 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM1 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM2 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADRL x x x u ADRH xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADCR uuuu uuuu ACSR uu u 表示不变化 x 表示不确定 表示不存在 105

116 A/D with LCD 型单片机使用手册 HT46R63/HT46C63 寄存器 RES 复位 ( 上电时 ) RES 或 LVR 复位 ( 一般运行时 ) WDT 溢出复位 ( 一般运行时 ) WDT 溢出复位 (HALT 暂停时 ) MP0 xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu MP1 xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu PCL BP uuuu uuuu TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu TBLH xxx xxxx uuu uuuu uuu uuuu uuu uuuu RTCC xx x111 xx x111 xx x111 uu uuuu STATUS 00 xxxx uu uuuu 1u uuuu 11 uuuu INTC uuu uuuu INTC uuu uuu TMRL xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMRH xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMRC uu u u PA uuuu uuuu PAC uuuu uuuu PB uuuu uuuu PBC uuuu uuuu PC uuuu uuuu PCC uuuu uuuu PD uuuu uuuu PDC uuuu uuuu PWM0 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM1 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM2 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM3 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADR xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADCR uuuu uuuu ACSR u uuu u 表示不变化 x 表示不确定 表示不存在 106

117 第一章硬件结构 HT46R64/HT46C64 寄存器 RES 复位 ( 上电时 ) RES 或 LVR 复位 ( 一般运行时 ) WDT 溢出复位 ( 一般运行时 ) WDT 溢出复位 (HALT 暂停时 ) MP0 xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu MP1 xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu PCL BP uuuu uuuu TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu TBLH xxx xxxx xxx xxxx xxx xxxx uuu uuuu RTCC uu uuuu STATUS 00 xxxx uu uuuu 1u uuuu 11 uuuu INTC uuuu uuuu INTC uuu uuu TMR0 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMR0C uu u uuuu TMR1H xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMR1L xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMR1C uuuu u PA uuuu uuuu PAC uuuu uuuu PB uuuu uuuu PBC uuuu uuuu PD uuuu uuuu PDC uuuu uuuu PWM0 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM1 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM2 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM3 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADRL x x xx xx uu ADRH xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADCR uuuu uuuu ACSR uu u 表示不变化 x 表示不确定 表示不存在 107

118 A/D with LCD 型单片机使用手册 HT46R65/HT46C65 寄存器 RES 复位 ( 上电时 ) RES 或 LVR 复位 ( 一般运行时 ) WDT 溢出复位 ( 一般运行时 ) WDT 溢出复位 (HALT 暂停时 ) MP0 xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu MP1 xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu PCL BP uuuu uuuu TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu TBLH xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu RTCC uu uuuu STATUS 00 xxxx uu uuuu 1u uuuu 11 uuuu INTC uuuu uuuu INTC uuu uuu TMR0H xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMR0L xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMR0C uu u uuuu TMR1H xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMR1L xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMR1C uuuu u PA uuuu uuuu PAC uuuu uuuu PB uuuu uuuu PBC uuuu uuuu PD uuuu uuuu PDC uuuu uuuu PWM0 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM1 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM2 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu PWM3 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADRL x x xx xx uu ADRH xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADCR uuuu uuuu ACSR uu u 表示不变化 x 表示不确定 表示不存在 108

119 第一章硬件结构 振荡器 不同的振荡器选择可以让使用者在不同的应用需求中获得更多范围的功能 A/D with LCD 系列单片机除了系统振荡器外, 还含有看门狗振荡器 对于 HT46R63/HT46C63, 有两种系统时钟可供选择, 而对于其它单片机, 则有三种系统时钟可供选择 看门狗定时器也有多种时钟源选择, 提供用户更大的灵活性 此外, 连接到这些振荡器的内部电路也提供了多种定时和中断功能, 其频率和操作可通过掩膜选项和内部寄存器决定 系统时钟配置对于 HT46R63/HT46C63, 有两种方法产生系统时钟 : 使用外部晶体 / 陶瓷振荡器或外部 RC 电路 而对于其它单片机, 则有三种方法产生系统时钟 : 使用外部晶体 / 陶瓷振荡器 外部 RC 电路或外部 RTC 32768Hz 的晶体产生实时时钟 可以通过掩膜选项来选择 4 + I? E = J H + HO I J= I? E = J H A A? J + BEC K H= JE F JE 5 O I JA +? + BEC K H= JE F JE B5 ; 5! % $ & I? E = J H A N? A F J0 6 " $ 4 $! 0 6 " $ + $! 系统时钟配置 系统晶体 / 陶瓷振荡器对于晶体振荡器的结构配置, 晶体只要简单的连接至 OSC1 和 OSC2, 则会产生所需的相移及反馈 为了确保某些低频率的晶体振荡和所有陶瓷共振器的应用, 建议使用两个小电容和电阻, 具体数值如表所示, 请如下图方式连接 晶体 / 陶瓷振荡器 109

120 A/D with LCD 型单片机使用手册 下表表示对于几种晶体 / 陶瓷振荡器频率下的典型的 C1 C2 和 R1 的值 晶体或共振器 C1 C2 R1 4MHz 晶体 0pF 10kΩ 4MHz 共振器 (3 脚 ) 0pF 12kΩ 4MHz 共振器 (2 脚 ) 10pF 12kΩ 3.58MHz 晶体 0pF 10kΩ 3.58MHz 共振器 (2 脚 ) 25pF 10kΩ 2MHz 晶体和共振器 (2 脚 ) 25pF 10kΩ 1MHz 晶体 35pF 27kΩ 480kHz 共振器 300pF 9.1kΩ 455kHz 共振器 300pF 10kΩ 429kHz 共振器 300pF 10kΩ 系统电阻电容振荡器所有 A/D with LCD 系列单片机均可使用 RC 振荡作为系统时钟, 根据选用的单片机, 有两种不同的电路可供选择 每一种电路都要求连接外部器件, 在 HT46R63/HT46C63 中, 需要一个外部电阻, 而在其它单片机中, 则需要外部电阻和电容 对于使用 RC 系统振荡器的 HT46R63/HT46C63, 为了起振, 要在 OSC1 和 VDD 之间连接一个外部电阻 其阻值在 24kΩ 到 1MΩ 之间 对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 为了起振, 要在 OSC1 和地之间连接一个外部电阻 其阻值在 30kΩ 到 750kΩ 之间 产生的系统时钟 4 分频后提供给 OSC2 作输出, 以达到与外部同步化的目的 对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 如果 OSC2 输出引脚用于同步化的目的, 则需要在 OSC1 和 VDD 之间连接一个的电容以增加振荡器稳定性 8,, 8,, " % F. " % F B5 ; 5 " 5 F A, H= E 5 + B5 ; 5 " 5 F A, H= E I? E = J H B H 0 6 " $ 4 $! 0 6 " $ + $! 电阻电容振荡器 4 + I? E = J H A N? A F J0 6 " $ 4 $! 0 6 " $ + $! 110

121 第一章硬件结构 虽然此振荡器配置成本较低, 但振荡频率会因 VDD 温度和芯片本身的制成而改变, 因此不适合用来做计时严格或需要精确振荡器频率的场合 对于外部电阻 R OSC 的阻值, 请参考附录章节中典型 RC 振荡器 vs. 温度以及 vs. V DD 特性曲线的分析 注意 : 虽然电阻电容振荡器的图示中都标有电容器, 但决定振荡器频率的只有外部电阻 图中显示的外部电容不会影响振荡频率 如果应用电路中用到 OSC2 的 open-drain 输出, 则应该加上这个电容以改善振荡器的稳定性 RTC 振荡器当单片机进入暂停即 HALT 状态, 内部时钟通常被关闭以停止单片机的运作以节省电源 然而在一些单片机的应用中, 在 HALT 状态下也必须要维持某些内部功能, 如定时器的运行 为了提供这特性, 所有盛群 A/D with LCD 系列单片机都加上一个 RTC 振荡器, 它可以在任何时刻保持振荡, 甚至是单片机进入 HALT 模式 这个时钟源具有固定的频率值 32768Hz, 并要求在 OSC3 和 OSC4 引脚间连接一个 32768Hz 的晶体 F.! % $ & 0 + HO I J= 5 +! 5 + " RTC 振荡器电路图 注意 : 在提供振荡的 32768Hz 晶体上并不需要连接外部电阻和电容 而在需要精确 RTC 频率的应用中, 由于晶体有着不同的制造公差, 可以加上这些元件作为频率补偿 RTC 振荡器可以和连接在 OSC1 和 OSC2 引脚上的 RC 或晶体系统振荡器联合使用 此外, 除了 HT46R63/HT46C63,RTC 振荡器也可以单独使用以实现单片机的所有功能, 包括系统振荡器 ( 这时 OSC1 和 OSC2 引脚不使用 ) 由于这个振荡器的频率很低, 既使在 HALT 模式下仍然可以振荡, 整体的功耗也相对很低 111

122 A/D with LCD 型单片机使用手册 RTC 振荡器可以通过掩膜选项进行控制 除了 HT46R63/HT46C63,RTCC 寄存器中的 QOSC 位, 提供对 RTC 振荡器快速起振功能的控制 当 RTC 振荡器不做系统振荡器时, 必须要在 OSC1 和 OSC2 引脚上连接 RC 或晶体系统振荡器 ( 对于 HT46R63/HT46C63 是必要条件, 而对于其它单片机则是非必要条件 ) 当单片机进入 HALT 状态, 较高频率的系统时钟将停止振荡以减少功耗, 但 RTC 仍保持振荡 此时 RTC 振荡器的主要功能是保持一些内部功能的运行, 如看门狗定时器 内部 RTC 定时器及以时基功能的运行 除了 HT46R63/ HT46C63, 如果 RTC 振荡器通过掩膜选项的选择作为系统振荡器使用, 就不再需要其它振荡器, 引脚 OSC1 和 OSC2 悬空 当单片机进入 HALT 模式,RTC 振荡器将保持振荡以维持内部定时器功能, 但不执行指令以节省功耗 除了 HT46R63/HT46C63 之外, 如果掩膜选项选择实时时钟振荡器为系统时钟, 则内部时钟源, 即 f S, 和看门狗定时器, 内部实时时钟中断和以时间为主的功能也必须使用实时时钟振荡器当作它们的时钟源 在上电时,RTC 振荡器有一个等待起振的时间延迟, 为了减少这个延迟的时间, RTCC 寄存器的第 4 位 (QOSC) 提供快速起振功能 (HT46R63/HT46C63 除外 ) 在上电时, 这个位被清为 0 以实现 RTC 振荡器快速起振功能 由于快速起振功能有额外的功耗, 为了减少这种功耗, 建议在上电约 2 秒后, 在应用程序中将 QOSC 位置为 1 请注意, 无论 QOSC 位如何设置,RTC 振荡器仍保持正常功能, 只是快速起振会有较大的功耗 注意 : 与其它单片机不同,HT46R63/HT46C63 中的 RTC 振荡器只能作为实时时钟使用, 不能配置为系统时钟 HT46R63/HT46C63 中的 RTCC 寄存器不存在 QOSC 位 看门狗定时振荡器 WDT 振荡器是一个完全独立在芯片上且自由动作的振荡器, 它在 5V 时的周期时间典型值为 65µs 且不需外部的器件搭配 它可以通过掩膜选项成为内部时钟源 f S 当单片机进入暂停模式时, 系统时钟将停止动作, 但 WDT 振荡器继续自由动作且保持 f S 内部时钟源有效 通过这种方式, 所有使用 f S 作为时钟源的内部功能仍然有效, 如看门狗定时器 RTC 中断 时基 LCD 时钟和蜂鸣器等 请注意, 当单片机进入 HALT 模式时, 如果看门狗定时振荡器仍然有效, 则功耗将有微量的增加 如果 f S 没有选为时钟源, 则它的振荡功能将无效以节省功耗 112

123 第一章硬件结构 内部时钟源内部时钟源 f S 由内部产生并可作为其它内部功能的时钟源, 如看门狗定时器 内部 RTC 中断 时基中断 LCD 时钟和蜂鸣器功能 f S 有三种不同的时钟源, 可以来自 RTC 振荡器 看门狗定时振荡器或是系统振荡器的四分频, 由 f S 时钟源掩膜选项决定 对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/ HT46C65, 如果选择 RTC 振荡器作为系统时钟 f SYS, 则 f S 也将由 RTC 振荡器得到 B5 ; 5 " 9, 6 I? E = J H I? E = J H B5 5 K H? A + BEC K H= JE F JE B5 9 = J? C 6 E A H * K A H 2 ) * 2 ) * +, +? / 6 E A * = I A 1 JA HHK F J JA HHK F J 内部时钟源结构 系统时钟源 f S 时钟源选项 RTC 振荡器 ( 除了 HT46R63/HT46C63) RTC 振荡器 晶体振荡器 RTC 振荡器 WDT 振荡器或 f SYS /4 电阻电容振荡器 RTC 振荡器 WDT 振荡器或 f SYS /4 内部时钟源选项 113

124 A/D with LCD 型单片机使用手册 暂停模式下的暂停和唤醒暂停模式是通过 HALT 指令实现且造成如下结果 : 系统振荡器将被关闭 在 RAM 芯片和寄存器上的内容保持不变 假如 WDT 时钟源来自 WDT 振荡器,WDT 将被清零然后再重新计数 所有输入 / 输出端口保持不变 PDF 标志位被置位而 TO 标志位被清零 系统可以通过外部复位 内部中断 PA 口上外部下降沿信号或 WDT 溢出来离开暂停模式 外部复位将初始化芯片, 而 WDT 溢出可以从暂停模式启动 WDT 溢出复位, 通过检查 TO 和 PDF 标志位, 可以判定复位来源 PDF 标志位可以通过系统上电或执行 CLR WDT 指令来清零, 而执行 HALT 指令则可置位 PDF 标志位 如果 WDT 溢出发生,TO 标志位将被置位, 同时造成一个只复位 PC 和 SP 的唤醒, 而其它的标志位则保持原来状态 PA 口唤醒和中断唤醒方法可以视为一般执行的延续 PA 口中的每个位可以通过掩膜选项独立选择唤醒功能 输入 / 输出口唤醒后, 程序将在下一条指令处继续执行 如果系统是通过中断唤醒, 则有两种可能, 假如相关的中断被禁止或中断允许但堆栈已满, 程序将在下一条指令处继续执行 ; 假如相关的中断允许且堆栈未满, 则正常的中断响应将会发生 假设在进入暂停模式之前中断请求标志位被设为 1, 相应中断的唤醒功能将无效 一旦唤醒事件发生, 回到正常运算将需要 1024 个系统时钟周期, 换句话说, 一个空周期将插在唤醒之后 如果在唤醒后是接着去响应中断, 则真实的中断子程序执行将延迟一个或数个周期, 如果唤醒后接着是去执行下一条指令, 则它将在若干个空周期结束后立刻执行 114

125 第一章硬件结构 低电压检测器 LVD 除 HT46R63/HT46C63 外, 其余 A/D with LCD 单片机都包含低电压检测功能 这个内部功能提供使用者一个监测的工具, 警告使用者系统电源电压低于 DC 特性中所描述的固定值 RTCC 寄存器的第 3 位和第 5 位用来控制 LVD 的整体功能 第 3 位 LVDC 是使能 / 除能控制位, 当设定为逻辑低时,LVD 为除能状态 第 5 位 LVDO 是 LVD 检测器的输出位 在正常操作下, 当电源电压高于 DC 特性中的 VLVD 值时, LVDO 位将保持 0 一旦电源电压低于这个 VLVD 值, 则 LVDO 位将变为 1, 表示低电压状态 请注意,LVDO 位是只读位, 通过检测 RTCC 寄存器中的 LVDO 位, 应用程序可以判断是否出现低电压状态 在上电或复位后, 通过清除 RTCC 寄存器中的 LVDC 位为 0 可将 LVD 关闭 请注意, 如果 LVD 使能, 会由于它的内部电路而增加一些功耗, 可以通过清除 LVDC 位为 0 减少功耗 请不要混淆 LVR 和 LVD 的功能 在 LVR 功能中, 单片机会产生自动复位 (HT46R63/HT46C63 不包含此功能 ), 而在 LVD 功能中, 只有 LVDO 位会受影响, 不会影响单片机的其它功能 115

126 A/D with LCD 型单片机使用手册 看门狗定时器看门狗定时器的功能在防止如电的干扰等外部不可控制事件, 所造成的程序不正常动作或跳转到未知的地址 当 WDT 计数器溢出时, 它产生一个 芯片复位 的动作 要注意的是假如 WDT 掩膜选项设为除能, 则任何相关指令将无效 看门狗定时器时钟源来自内部时钟源 f S 在 HT46R63/HT46C63 中, 此内部时钟 f S 通过一个内部分频器, 其分频系数被内部 16 位计数器固定且不能改变 对于其它单片机, 此内部时钟 f S 通过一个内部分频器, 其分频系数可以通过选择不同的掩膜选项来改变, 可以得到 2 12 到 2 15 范围的分频系数, 而实际的看门狗定时器溢出周期为 2 13 /f S 到 2 16 /f S 实际的看门狗定时器溢出时间由 f S 使用的时钟源和内部分频器的分频系数决定 产生 f S 的时钟源, 同时也控制溢出时间, 有三种不同的来源,RTC 振荡器 看门狗定时振荡器或系统振荡器的四分频, 由掩膜选项决定选择哪种 f S 的时钟源 请注意, 如果选择 RTC 振荡器作为系统时钟, 则 f S 和看门狗定时器也将把 RTC 振荡器作为它们的时钟源 (HT46R63/ HT46C63 除外 ) 系统时钟源 RTC 振荡器 ( 除了 HT46R63/HT46C63) RTC 振荡器 WDT 时钟源选项 晶体 / 陶瓷振荡器 RTC 振荡器 WDT 振荡器或 f SYS /4 电阻电容振荡器 RTC 振荡器 WDT 振荡器或 f SYS /4 看门狗定时器时钟源选项 在 LCD 系列的单片机中没有与看门狗定时器相关的内部寄存器 内部看门狗定时振荡器是看门狗定时器的一个时钟源, 它在 5V 电压下有接近 65µs 的周期 要注意的是这个内部时钟周期会因 VDD 温度和制成而变化 看门狗定时器时钟源的选项还有指令时钟 ( 系统时钟的四分频 f SYS /4) 和 RTC 振荡器 无论看门狗定时器的时钟源是来自它本身的内部 WDT 振荡器 指令时钟或 RTC 振荡器, 它们都将通过一个内部的计数器来分频, 以得到更长的看门狗溢出时间 对于 HT46R63/HT46C63, 此分频系数是固定, 看门狗定时器溢出时间为 2 16 /f S 而对于其它单片机, 此分频系数可以通过掩膜选项进行选择, 分频系数的范围为 2 12 /f S 到 2 15 /f S 要注意的是, 对于这些单片机, 不管通过掩膜选项选择的分频系数是多少, 但由于清除指令只复位计数链的最后一级, 因此实际的分频系数和相应的 WDT 溢出时间会有因数为 2 的变化 实际的分频系数依据清除指令被执行前 WDT 计数器剩余的值 请注意, 对于 HT46R63/HT46C63, 没有独立的内部寄存器或掩膜选项设置看门狗定时器的溢出时间, 它完全由内部时钟源频率 f S 决定 116

127 第一章硬件结构 如前所述, 内部时钟源 f S 和由此得到的看门狗定时器时钟源, 来自于内部看门狗定时振荡器 系统时钟的四分频或 RTC 振荡器 如果使用 f SYS /4 作为 WDT 时钟源, 要注意的是, 当系统进入暂停模式后, 指令时钟会停止且 WDT 会失去其保护目的 在这种情况下, 系统只能通过外部逻辑重新复位 当系统操作在干扰严重的环境时, 建议使用内部 WDT 振荡器或 32kHz RTC 振荡器 + 4 9, 6. = C + 4 9, 6. = C + JH C E? H 1 I JHK? JE I B5 ; 5 " 9, 6 I? E = J H I? E = J H B5 5 K H? A + BEC K H= JE F JE B5 + 4 $ > EJ+ K JA H 9, 6 6 E A K J $ B5 看门狗定时器 HT46R63/HT46C , 6. = C + 4 9, 6. = C + JH C E? H 1 I JHK? JE I B5 ; 5 " 9, K JF K J 9, 6 5 K H? A + BEC K H= JE F JE B5 & > EJ, EL E@ A H B5 & % > EJ2 HA I? = A H + 4 9, 6 6 E A K J! B5 " B5 # B5 H $ B5 + BEC F JE B5 B5! B5 " HB5 # 看门狗定时器 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65 注意 : 对于 HT46R62/HT46C62 HT46R64/HT46C64 和 HT46R65/HT46C65, 因为只有计数链中的最后一级被指令清除,WDT 溢出周期可变 例如, 选择的溢出周期为 2 13 /f S, 它的范围可能从 2 16 /f S 到 2 15 /f S 117

128 A/D with LCD 型单片机使用手册 系统在正常运行状态下,WDT 溢出将导致 芯片复位, 且置位状态标志位 TO 然而如果系统处于暂停模式, 则只有一个从暂停模式来的 WDT 溢出复位发生, 它只复位程序计数器和 SP 有三种方法可以用来清除 WDT 的内容 第一种是外部硬件复位 (RES 引脚低电平 ), 第二种是通过软件指令, 而第三种是通过 HALT 指令 使用软件指令有两种方法去清除看门狗寄存器, 必须由掩膜选项选择 第一种选择是使用单一 CLR WDT 指令, 而第二种是使用 CLR WDT1 和 CLR WDT2 两个指令 对于第一种选择, 只要执行 CLR WDT 便清除 WDT 而第二种选择, 必须交替执行 CLR WDT1 和 CLR WDT2 两者才能成功的清除 WDT 关于第二种选择要注意的是, 如果 CLR WDT1 正被使用来清除 WDT, 接着再执行这条指令将是无效的, 只有执行 CLR WDT2 指令才能清除 WDT 同样的 CLR WDT2 指令已经执行后, 只有接着执行 CLR WDT1 指令才可以清除看门狗定时器 118

129 第一章硬件结构 蜂鸣器 HT46R63/HT46C63 不具有蜂鸣器功能, 此章节不适用于这款单片机 与可编程分频器的作用相似, 单片机中蜂鸣器的功能在于提供可变频率的输出, 以适用于像压电蜂鸣器驱动或其它需要精确频率输出的场合 引脚 BZ 和 BZ 形成互补对且和输入 / 输出引脚 PA0 和 PA1 共用 掩膜选项可以选择三种蜂鸣器选项的其中一个 第一个选项为 PA0 和 PA1 引脚作为一般的输入 / 输出引脚使用, 第二个选项为两个引脚都作为 BZ 和 BZ 蜂鸣器引脚使用, 第三选项为只有 PA0 引脚作为 BZ 蜂鸣器引脚使用而 PA1 引脚则保持一般的输入 / 输出引脚功能 要注意的是 BZ 引脚是 BZ 引脚的反向输出, 可以提供更多的功率差动输出到接口, 如蜂鸣器 蜂鸣器由内部时钟源 f S 驱动, 然后通过一个分频器, 分频比例由掩膜选项选择, 可以产生范围由 f S /2 2 到 f S /2 9 的蜂鸣器频率 产生 f S 的时钟源有三种不同的来源,RTC 振荡器 看门狗定时振荡器或系统振荡器的四分频, 这也同时控制蜂鸣器的频率 选择哪一种则是由 f S 时钟源掩膜选项决定 请注意, 如果选择 RTC 振荡器作为系统时钟, 则 f S 和相应的蜂鸣器也将把 RTC 振荡器作为它们的时钟源 蜂鸣器的频率由掩膜选项确定, 它可以选择内部时钟 f S 的来源和分频比例, 但不存在与蜂鸣器频率相关的内部寄存器 如果掩膜选项选择 PA0 和 PA1 引脚作为 BZ 和 BZ 蜂鸣器的输出互补对, 为了使蜂鸣器正确运行, 必须将 PAC 端口控制寄存器的 PAC0 位和 PAC1 位清 0, 将这两个引脚设定为输出 PA 数据寄存器中的 PA0 位必须设为逻辑高以使能蜂鸣器的输出, 如果设为逻辑低,PA0 和 PA1 引脚将维持逻辑低 因此 PA 数据寄存器中的 PA0 位可做为 BZ 和 BZ 输出的开启 / 关闭控制位 而 PA 寄存器中的 PA1 位无法控制 BZ 蜂鸣器引脚 PA0/PA1 引脚功能控制 PAC 寄存器 PAC0 PAC 寄存器 PAC1 119 PA 寄存器 PA0 PA 寄存器 PA x x x x 1 0 x D 1 1 x x x 表示不考虑 D 表示数据为 0 或 1 输出功能 PA0 = BZ PA1 = BZ PA0 = 0 PA1 = 0 PA0 = BZ PA1 = input line PA0 = 0 PA1 = input line PA0 = input line PA1 = D PA0 = input line PA0 = input line

130 A/D with LCD 型单片机使用手册 如果掩膜选项选择 PA0 引脚作为 BZ 蜂鸣器输出引脚, 那么 PA1 引脚可以作为一般输入 / 输出引脚使用 为了使 PA0 引脚作为 BZ 蜂鸣器引脚使用, 必须将 PAC 控制寄存器的 PAC0 位清 0,PA 寄存器中的 PA0 位也必须设为逻辑高以使能蜂鸣器输出, 如果设定为逻辑低,PA0 将维持逻辑低 因此 PA0 位可做为 BZ 蜂鸣器输出的开启 / 关闭控制位, 如果 PAC 控制寄存器的 PAC0 位设定为逻辑高, 即使掩膜选项选择了 BZ 蜂鸣器输出, 引脚 PA0 仍作为输入使用 无论选择蜂鸣器掩膜选项中的哪一项, 如果端口控制寄存器将引脚设定为输入功能, 那就会忽略掩膜选项的选择, 这个引脚仍作为输入引脚使用 这样做, 可以同时实现蜂鸣器输出和引脚输入功能 引脚的实际功能可以通过应用程序中对相应端口控制寄存器的位写入不同的值而改变 1 JA H = +? 5 K H? A 2 ), = J= * K JF K J= J2 ) 2 ), = J= * K JF K J= J2 ) 蜂鸣器输出引脚控制 注意 : 上图所示为 PA0 和 PA1 引脚通过掩膜选项选择作为 BZ 和 BZ 蜂鸣器引脚输出 这两个引脚的端口控制寄存器位必须设定为输出 PA1 上设定的数据不会影响蜂鸣器的输出 120

131 第一章硬件结构 掩膜选项 通过 HT-IDE 的软件介面, 使用者可以选择掩膜选项 对于 OTP 版单片机, 单片机掩膜选项会被储存在选项存储器 所有的位必须安照适合的系统功能去设定, 具体内容可由下表得到 请注意, 当使用者把掩膜选项烧入单片机之后, 就不可以再被应用程序修改 对于掩膜版单片机, 掩膜选项一经定义则会在工厂生产时制作完成, 使用者不能再重新配置 HT46R63/HT46C63 选项输入 / 输出选项 1 PA0~PA7: 唤醒功能的使能或除能 ( 位选项 ) 2 PA0~PA3: 上拉电阻的使能或除能 ( 半字节选项 ) 3 PA4~PA7: 上拉电阻的使能或除能 ( 半字节选项 ) 4 PB0~PB3: 上拉电阻的使能或除能 ( 半字节选项 ) 5 PB4~PB7: 上拉电阻的使能或除能 ( 半字节选项 ) 6 PC0~PC3: 上拉电阻的使能或除能 ( 半字节选项 ) 7 PC4~PC7: 上拉电阻的使能或除能 ( 半字节选项 ) 8 PD0~PD3: 上拉电阻的使能或除能 ( 半字节选项 ) 9 PD4~PD7: 上拉电阻的使能或除能 ( 半字节选项 ) LCD 选项 10 LCD 时钟 :f S /2 2, f S /2 3, fs/2 4, fs/2 5, f S /2 6, f S /2 7, f S / LCD 占空比 :1/2 1/3 或 1/4 12 SEG7~SEG10:LCD 或 CMOS 输出 ( 半字节选项 ) 13 SEG11~SEG14:LCD 或 CMOS 输出 ( 半字节选项 ) 14 SEG15~SEG18:LCD 或 CMOS 输出 ( 半字节选项 ) 15 HALT 期间 LCD 的显示 : 开或关 16 LCD 电流 : 低电流 中电流或高电流振荡器选项 17 振荡器类型选择 : 电阻电容或晶体振荡器 18 f S 内部时钟源 :RTC 振荡器 WDT 振荡器或 f SYS /4 19 HALT 期间的 RTC 振荡器或 WDT 振荡器 : 使能或除能中断选项 20 INT0 功能 : 使能或除能 21 触发沿 : 上升沿 下降沿或两者都可 22 INT1 功能 : 使能或除能 23 触发沿 : 上升沿 下降沿或两者都可 PWM 选项 24 PD0~PD3:PWM0~PWM3 功能选择 时基选项 25 时基分频系数 :f S /2 12, f S /2 13, f S /2 14, fs/2 15 看门狗定时器选项 26 WDT: 使能或除能 27 CLR WDT 指令 :1 条或 2 条指令 LVR 选项 28 LVR 复位功能 : 使能或除能比较器选项 29 比较器 : 使能或除能 121

132 A/D with LCD 型单片机使用手册 HT46R62/HT46C62, HT46R64/HT46C64, HT46R65/HT46C65 选项输入 / 输出选项 1 PA0~PA7: 唤醒的使能或除能 ( 位选项 ) 2 PA0~PA7: 上拉电阻的使能或除能 ( 位选项 ) 3 PB0~PB7: 上拉电阻的使能或除能 ( 位选项 ) 4 PD0~PD7: 上拉电阻的使能或除能 ( 位选项 ) LCD 选项 5 LCD 时钟 :f S /2 2, f S /2 3, f S /2 4, f S /2 5, f S /2 6, f S /2 7, f S /2 8 6 SEG0~SEG7:LCD 或 CMOS 输出 ( 字节选项 ) 7 SEG8~SEG15:LCD 或 CMOS 输出 (HT46R65/HT46C65 为字节选项, 其它单片机为位选项 ) 8 SEG16~SEG23:LCD 或 CMOS 输出 ( 在 HT46R65/HT46C65 中为位选项 ) 9 LCD 占空比 :1/2 1/3 或 1/4 10 LCD 偏压 :1/2 或 1/3 11 LCD 偏压类型 :R 型或 C 型 12 HALT 期间的 LCD 显示 : 开或关 13 LCD R 型偏压驱动电流 : 低电流或高电流振荡器选项 14 振荡器类型选择 : 电阻电容或晶体振荡器 15 f SYS 时钟源 : 振荡器或 RTC 振荡器 16 f S 内部时钟源 :RTC 振荡器 WDT 振荡器或 f SYS /4 中断选项 17 INT0 功能 : 使能或除能 18 触发沿 : 上升沿 下降沿或两者都可 19 INT1 功能 : 使能或除能 20 触发沿 : 上升沿 下降沿或两者都可 PWM 选项 21 PD0~PD3:PWM0~PWM3 功能选择 22 PWM 模式 :6+2 或 7+1 模式选择 PFD 选项 23 PA3: 一般输入 / 输出或 PFD 输出 24 PFD 时钟选择 :TMR0 或 TMR1(HT46R62/HT46C62 除外 ) 蜂鸣器选项 25 PA0/PA1: 一般输入 / 输出或 BZ/ BZ 或 PA0=BZ PA1 为一般输入 / 输出 26 蜂鸣器频率 :f S /2 2, f S /2 3, f S /2 4, f S /2 5, f S /2 6, f S /2 7, f S /2 8, f S /2 9 时基选项 27 时基溢出周期 :2 12 /f S, 2 13 /f S, 2 14 /f S, 2 15 /f S 看门狗定时器选项 28 WDT: 使能或除能 29 CLR WDT 指令 :1 条或 2 条指令 30 WDT 溢出周期 :2 12 /f S ~2 13 /f S, 2 13 /f S ~2 14 /f S, 2 14 /f S ~2 15 /f S, 2 15 /f S ~2 16 /f S LVD/LVR 选项 31 LVD 功能 : 使能或除能 32 LVR 复位功能 : 使能或除能 注意 : 并不是每一款单片机都具有列出的所有输入 / 输出端口 segment 引脚和 PWM 引脚, 因此有些列出的输入 / 输出端口选项在某些单片机中并不提供 122

133 第一章硬件结构 应用电路 电阻电容或晶体系统振荡器和 RTC 振荡器 (HT46R63/HT46C63 除外 ) 8,, ,, ! 5 - / " 5 - / 5 - /! ' 8 +, +, 2 ) - +, 2 M A H5 K F F O ) : EH? K EJ A A > A M! % $ & 0 5 +! 8. F. 5 + " 2, " 1 6 2, # 1 6 2, $ 6 4 2, % ) * 2 ) * 2 ) 2 )! 2., 2 ) " 2 ) % 2 * ) 2 * % ) % 2, 2 9 2,! 2 9! 0 6 " $ 4 $ # 0 6 " $ + $ # 8,, " % F O I JA I? E = J H! % # B5 ; 5 " H O I J= 5 O I JA I? E = J H H? F A JL = K A I? I K J I? E = J HI A? JE EH? K EJ 注意 : 1. 这个应用电路是以 HT46R65/HT46C65 为例, 它也可以应用在 HT46R62/HT46C62 和 HT46R65/HT46C65 上 2. VMAX 引脚的连接是由 LCD 偏压类型 偏压值等多项因素决定的, 详情请参考 LCD 偏压章节的内容 123

134 A/D with LCD 型单片机使用手册 32768Hz 晶体振荡器用作系统时钟 (HT46R63/HT46C63 除外 ) 8,, 8,, ! 5 - / " 5 - / 5 - /! ' 8 +, +, 2 ) - +, 2 M A H5 K F F O ) : ! % $ & 0 5 +! 8. F. 5 + " 2, " 1 6 2, # 1 6 2, $ 6 4 2, % ) * 2 ) * 2 ) 2 )! 2., 2 ) " 2 ) % 2 * ) 2 * % ) % 2, 2 9 2,! 2 9! 0 6 " $ 4 $ # 0 6 " $ + $ # 注意 : 1. 这个应用电路是以 HT46R65/HT46C65 为例, 它也可以应用在 HT46R62/HT46C62 和 HT46R64/HT46C64 上 HT46R63/HT46C63 不能使用 32768Hz RTC 晶体作为系统时钟, 此图不适用于这款单片机 2. VMAX 引脚的连接是由 LCD 偏压类型 偏压值等多项因素决定的, 详情请参考 LCD 偏压章节的内容 124

135 第一章硬件结构 电阻电容或晶体系统振荡器和 RTC 振荡器 ( 对于 HT46R63/HT46C63) 8,, 8,, ! 5 - / 5 - / & +, 2 ) EH? K EJ 5 A A > A M! % $ & 0 F ! 5 + " / 8 +, ) 8,, 2 ) 2 ) % 2 * ) 2 * % ) % % 2, 2 9 2,! 2 9! 2, " 1 6 2, # 1 6 2, $ 6 4 2, % 0 6 " $ 4 $! 0 6 " $ + $! 8,, 8,, 8,, " % F O I JA I? E = J H " B5 ; 5 " H O I J= 5 O I JA I? E = J H. H? F A JL = K A I? I K J I? E = J HI A? JE EH? K EJ 125

136 126 A/D with LCD 型单片机使用手册

137 第二部份程序语言 第二部份 程序语言 127

138 128 A/D with LCD 型单片机使用手册

139 第二章指令集介绍 第二章 指令集介绍 2 指令集 任何单片机成功运作的核心在于它的指令集, 此指令集为一组程序指令码, 用来指导单片机如何去执行指定的工作 在盛群单片机中, 提供了丰富且易变通的指令, 共超过六十条, 程序设计师可以事半功倍地实现他们的应用 为了更加容易了解各式各样的指令码, 接下来按功能分组介绍它们 指令周期大部分的操作均只需要一个指令周期来执行 分支 调用或查表则需要两个指令周期 一个指令周期相当于四个系统时钟周期, 因此如果在 8MHz 的系统时钟振荡器下, 大部分的操作将在 0.5µs 中执行完成, 而分支或调用操作则将在 1µs 中执行完成 虽然需要两个指令周期的指令通常指的是 JMP CALL RET RETI 和查表指令, 但如果牵涉到程序计数器低字节寄存器 PCL 也将多花费一个周期去加以执行 即指令改变 PCL 的内容进而导致直接跳转至新地址时, 需要多一个周期去执行 例如 CLR PCL 或 MOV PCL, A 对于跳转命令必须注意的是, 如果比较的结果牵涉到跳转动作将多花费一个周期, 如果没有则需一个周期即可 129

140 A/D with LCD 型单片机使用手册 数据的传送单片机程序中数据传送是使用最为频繁的操作之一, 使用三种 MOV 的指令, 数据不但可以从寄存器转移至累加器 ( 反之亦然 ), 而且能够直接移动立即数到累加器 数据传送最重要的应用之一是从接收端口接收数据或者传送数据到输出端口 算术运算算术运算和数据处理是大部分单片机应用所需具备的能力, 在盛群单片机内部的指令集中, 可直接实现加与减的运算 当加法的结果超出 255 或减法的结果少于 0 时, 要注意正确的处理进位和借位的问题 INC INCA DEC 和 DECA 指令提供了对一个指定地址的值加一或减一的功能 逻辑和移位运算标准逻辑运算例如 AND OR XOR 和 CPL 全都包含在盛群单片机内部的指令集中 大多数牵涉到数据运算的指令, 数据的传送必须通过累加器 在所有逻辑数据运算中, 如果运算结果为零, 则零标志位将被置位, 另外逻辑数据运用形式还有移位指令, 例如 RR RL RRC 和 RLC 提供了向左或向右移动一位的方法 移位指令常用于串行端口的程序应用, 数据可从内部寄存器转移至进位标志位, 而此位则可被检验, 移位运算还可应用在乘法与除法的运算组成中 分支和控制的转换程序分支是采取使用 JMP 指令跳转至指定地址或使用 CALL 指令调用子程序的形式, 两者之不同在于当子程序被执行完毕后, 程序必须马上返回原来的地址 这个动作是由放置在子程序里的返回指令 RET 来实现, 它可使程序跳回 CALL 指令之后的地址 在 JMP 指令中, 程序则只是跳到一个指定的地址而已, 并不需如 CALL 指令般跳回 一个非常有用的分支指令是条件跳转, 跳转条件是由数据存储器或指定位来加以决定 遵循跳转条件, 程序将继续执行下一条指令或略过且跳转至接下来的指令 这些分支指令是程序走向的关键, 跳转条件可能是外部开关输入, 或者是内部数据位的值 位运算提供数据存储器中单个位的运算指令是盛群单片机的特性之一 这特性对于输出端口位的规划尤其有用, 其中个别的位或端口的引脚可以使用 SET [m].i 或 CLR [m].i 指令来设定其为高位或低位 如果没有这特性, 程序设计师必须先读入输出口的 8 位数据, 处理这些数据, 然后再输出正确的新数据 这种读入 - 修改 - 写出的过程现在则被位运算指令所取代 130

141 第二章指令集介绍 查表运算数据的储存通常由寄存器完成, 然而当处理大量固定的数据时, 它的存储量常常造成对个别存储器的不便 为了改善此问题, 盛群单片机允许在程序存储器中设定一块数据可直接存储的区域, 只需要一组简易的指令即可对数据进行查表 其它运算除了上述功能指令外, 其它指令还包括用于省电的 HALT 指令和使程序在极端电压或电磁环境下仍能正常工作的看门狗定时器控制指令 这些指令的使用则请查阅相关的章节 指令设定一览表 惯例 x: 立即数 m: 数据存储器地址 A: 累加器 i:0~7 号位 addr: 程序存储器地址 助记符 指令简易描述 周期影响标志位 算术运算 ADD A, [m] ACC 与数据存储器相加, 结果放入 ACC ADDM A, [m] ACC 与数据存储器相加, 结果放入数据存储器 ADD A, x ACC 与立即数相加, 结果放入 ACC ADC A, [m] ACC 与数据存储器 进位标志相加, 结果放入 ACC ADCM A, [m] ACC 与数据存储器 进位标志相加, 结果放入数据存储器 SUB A, x ACC 与立即数相减, 结果放入 ACC SUB A, [m] ACC 与数据存储器相减, 结果放入 ACC SUBM A, [m] ACC 与数据存储器相减, 结果放入数据存储器 SBC A, [m] ACC 与数据存储器 进位标志相减, 结果放入 ACC SBCM A, [m] ACC 与数据存储器 进位标志相减, 结果放入数据存储器 DAA [m] 将加法运算中放入 ACC 的值调整为十进制数, 并将结果放入数据存储器 1 Z,C,AC,OV 1 Note Note Note 1 Z,C,AC,OV 1 Note 1 Note Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV C 131

142 A/D with LCD 型单片机使用手册 助记符指令简易描述周期影响标志位 逻辑运算 AND A, [m] OR A, [m] XOR A, [m] ANDM A, [m] ORM A, [m] XORM A, [m] AND A, x OR A, x XOR A, x CPL [m] CPLA [m] 递增和递减 INCA [m] INC [m] DECA [m] DEC [m] 移位 RRA [m] RR [m] RRCA [m] RRC [m] RLA [m] RL [m] RLCA [m] RLC [m] 数据传送 MOV A, [m] MOV [m], A MOV A, x 位运算 CLR [m].i SET [m].i ACC 与数据存储器做 与 运算, 结果放入 ACC ACC 与数据存储器做 或 运算, 结果放入 ACC ACC 与数据存储器做 异或 运算, 结果放入 ACC ACC 与数据存储器做 与 运算, 结果放入数据存储器 ACC 与数据存储器做 或 运算, 结果放入数据存储器 ACC 与数据存储器做 异或 运算, 结果放入数据存储器 ACC 与立即数做 与 运算, 结果放入 ACC ACC 与立即数做 或 运算, 结果放入 ACC ACC 与立即数做 异或 运算, 结果放入 ACC 对数据存储器取反, 结果放入数据存储器对数据存储器取反, 结果放入 ACC 递增数据存储器, 结果放入 ACC 递增数据存储器, 结果放入数据存储器递减数据存储器, 结果放入 ACC 递减数据存储器, 结果放入数据存储器 数据存储器右移一位, 结果放入 ACC 数据存储器右移一位, 结果放入数据存储器带进位将数据存储器右移一位, 结果放入 ACC 带进位将数据存储器右移一位, 结果放入数据存储器数据存储器左移一位, 结果放入 ACC 数据存储器左移一位, 结果放入数据存储器带进位将数据存储器左移一位, 结果放入 ACC 带进位将数据存储器左移一位, 结果放入数据存储器 将数据存储器送至 ACC 将 ACC 送至数据存储器将立即数送至 ACC 清除数据存储器的位设置数据存储器的位 Note 1 Note 1 Note Note Note 1 1 Note 1 1 Note 1 1 Note 1 1 Note 1 1 Note 1 1 Note 1 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z None None C C None None C C None None None 1 Note None 1 Note None 132

143 第二章指令集介绍 转移 助记符指令简易描述周期影响标志位 JMP addr SZ [m] SZA [m] SZ [m].i SNZ [m].i SIZ [m] SDZ [m] SIZA [m] SDZA [m] CALL addr RET RET A, x RETI 查表 TABRDC [m] TABRDL [m] 其它 NOP CLR [m] SET [m] CLR WDT CLR WDT1 CLR WDT2 SWAP [m] SWAPA [m] HALT 无条件跳转如果数据存储器为零, 则跳过下一条指令数据存储器送至 ACC, 如果内容为零, 则跳过下一条指令如果数据存储器的第 i 位为零, 则跳过下一条指令如果数据存储器的第 i 位不为零, 则跳过下一条指令递增数据存储器, 如果结果为零, 则跳过下一条指令递减数据存储器, 如果结果为零, 则跳过下一条指令递增数据存储器, 将结果放入 ACC, 如果结果为零, 则跳过下一条指令递减数据存储器, 将结果放入 ACC, 如果结果为零, 则跳过下一条指令子程序调用从子程序返回从子程序返回, 并将立即数放入 ACC 从中断返回 读取当前页的 ROM 内容, 并送至数据存储器和 TBLH 读取最后页的 ROM 内容, 并送至数据存储器和 TBLH 空指令清除数据存储器设置数据存储器清除看门狗定时器预清除看门狗定时器预清除看门狗定时器交换数据存储器的高低字节, 结果放入数据存储器交换数据存储器的高低字节, 结果放入 ACC 进入暂停模式 2 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note None None None None None None None None None None None None None 2 Note None 2 Note None 1 1 Note 1 Note Note 1 1 None None None TO, PDF TO, PDF TO, PDF None None TO, PDF 注意 :1. 对跳转指令而言, 如果比较的结果牵涉到跳转即需 2 个周期, 如果没有跳转发生, 则只需一个周期即可 2. 任何指令若要改变 PCL 的内容将需要 2 个周期来执行 3. 对于 CLR WDT1 和 CLR WDT2 指令而言,TO 和 PDF 标志位也许会受执行结果影响, CLR WDT1 和 CLR WDT2 被执行后,TO 和 PDF 标志位会被清除, 除此之外 TO 和 PDF 标志位保持不变 133

144 134 A/D with LCD 型单片机使用手册

145 第三章指令定义 第三章 指令定义 3 ADC A, [m] 指令说明功能表示影响标志位 Add Data Memory to ACC with Carry 将指定数据存储器 累加器和进位标志位的内容相加后, 把结果储存回累加器 ACC ACC + [m] + C OV, Z, AC, C ADCM A, [m] Add ACC to Data Memory with Carry 指令说明将指定数据存储器 累加器和进位标志位的内容相加后, 把结果储存回指定数据存储器 功能表示 [m] ACC + [m] + C 影响标志位 OV, Z, AC, C ADD A, [m] 指令说明功能表示影响标志位 Add Data Memory to ACC 将指定数据存储器和累加器的内容相加后, 把结果储存回累加器 ACC ACC + [m] OV, Z, AC, C ADD A, x 指令说明功能表示影响标志位 Add immediate data to ACC 将累加器和立即数的内容相加后, 把结果储存回累加器 ACC ACC + x OV, Z, AC, C 135

146 A/D with LCD 型单片机使用手册 ADDM A, [m] Add ACC to Data Memory 指令说明 将指定数据存储器和累加器的内容相加后, 把结果储存回指定数据存储器 功能表示 [m] ACC + [m] 影响标志位 OV, Z, AC, C AND A, [m] 指令说明功能表示影响标志位 Logical AND Data Memory to ACC 将存在累加器和指定数据存储器中的数据作 AND 的运算, 然后把结果储存回累加器 ACC ACC AND [m] Z AND A, x 指令说明功能表示影响标志位 Logical AND immediate data to ACC 将存在累加器中的数据和立即数作 AND 的运算, 然后把结果储存回累加器 ACC ACC AND x Z ANDM A, [m] Logical AND ACC to Data Memory 指令说明将存在指定数据存储器和累加器中的数据作 AND 的运算, 然后把结果储存回数据存储器 功能表示 [m] ACC AND [m] 影响标志位 Z CALL addr Subroutine call 指令说明无条件地调用指定地址的子程序, 此时程序计数器先加 1 获得下一个要执行的指令地址并压入堆栈, 接着载入指定地址并从新地址继续执行程序, 由于此指令需要额外的运算, 所以为一个 2 周期的指令 功能表示 Stack Program Counter + 1 Program Counter addr 影响标志位 None CLR [m] Clear Data Memory 指令说明 指定数据存储器中的每一位均清除为 0 功能表示 [m] 00H 影响标志位 None 136

147 第三章指令定义 CLR [m].i Clear bit of Data Memory 指令说明 指定数据存储器中的 i 位清除为 0 功能表示 [m].i 0 影响标志位 None CLR WDT 指令说明功能表示影响标志位 Clear Watchdog Timer 将 TO PDF 标志位和 WDT 全都清除 WDT cleared TO 0 PDF 0 TO, PDF CLR WDT1 指令说明功能表示影响标志位 Pre-clear Watchdog Timer 将 TO PDF 标志位和 WDT 全都清除, 请注意此指令要结合 CLR WDT2 一起动作且必须交替执行才有作用, 重复执行此项指令而没有与 CLR WDT2 交替执行将无任何作用 WDT cleared TO 0 PDF 0 TO, PDF CLR WDT2 指令说明功能表示影响标志位 Pre-clear Watchdog Timer 将 TO PDF 标志位和 WDT 全都清除, 请注意此指令要结合 CLR WDT1 一起动作且必须交替执行才有作用, 重复执行此项指令而没有与 CLR WDT1 交替执行将无任何作用 WDT cleared TO 0 PDF 0 TO, PDF CPL [m] Complement Data Memory 指令说明 将指定数据存储器中的每一位取逻辑反, 相当于从 1 变 0 或 0 变 1 功能表示 [m] [m] 影响标志位 Z 137

148 A/D with LCD 型单片机使用手册 CPLA [m] 指令说明功能表示影响标志位 Complement Data Memory with result in ACC 将指定数据存储器中的每一位取逻辑反, 相当于从 1 变 0 或 0 变 1, 而结果被储存回累加器且数据存储器中的内容不变 ACC [m] Z DAA [m] Decimal-Adjust ACC for addition with result in Data Memory 指令说明将存在累加器中的内容数值转换为 BCD( 二进制转成十进制 ) 数值, 如果低 4 位大于 9 或 AC 标志位被设置, 则在低 4 位加上一个 6, 不然低 4 位的内容不变, 如果高 4 位大于 9 或 C 标志位被设置, 则在高 4 位加上一个 6, 十进制的转换主要是依照累加器和标志位状况, 分别加上 00H 06H 60H 或 66H, 只有 C 标志位也许会被此指令影响, 它会指出原始 BCD 数是否大于 100, 并可以进行双精度十进制数相加 功能表示 [m] ACC + 00H 或 [m] ACC + 06H 或 [m] ACC + 60H 或 [m] ACC + 66H 影响标志位 C DEC [m] Decrement Data Memory 指令说明 将在指定数据存储器内的数据减 1 功能表示 [m] [m] 1 影响标志位 Z DECA [m] Decrement Data Memory with result in ACC 指令说明 将在指定数据存储器内的数据减 1, 把结果储存回累加器且数据存储器中的内 容不变 功能表示 ACC [m] 1 影响标志位 Z 138

149 第三章 指令定义 HALT Enter power down mode 指令说明 此指令停止程序的执行并且关闭系统时钟, 但数据存储器和寄存器的内容仍被 保留,WDT 和预分频器 (Prescaler) 被清除, 暂停标志位 PDF 被设置且 WDT 溢 出标志位 TO 被清除 功能表示 TO 0 PDF 1 影响标志位 TO, PDF INC [m] Increment Data Memory 指令说明 将指定数据存储器内的数据加 1 功能表示 [m] [m] + 1 影响标志位 Z INCA [m] Increment Data Memory with result in ACC 指令说明 将指定数据存储器内的数据加 1, 把结果储存回累加器且数据存储器中的内容 不变 功能表示 ACC [m] + 1 影响标志位 Z JMP addr 指令说明功能表示影响标志位 Jump unconditionally 程序计数器的内容被指定地址所取代, 程序由新地址继续执行, 当新地址被载入时, 必须插入一个空指令周期, 所以此指令为 2 个周期的指令 Program Counter addr None MOV A, [m] 指令说明功能表示影响标志位 Move Data Memory to ACC 将指定数据存储器的内容复制到累加器中 ACC [m] None MOV A, x 指令说明功能表示影响标志位 Move immediate data to ACC 将立即数载入至累加器中 ACC x None 139

150 A/D with LCD 型单片机使用手册 MOV [m], A 指令说明功能表示影响标志位 Move ACC to Data Memory 将累加器的内容复制到指定数据存储器 [m] ACC None NOP 指令说明功能表示影响标志位 No operation 空操作, 接下来顺序执行下一条指令 No operation None OR A, [m] 指令说明功能表示影响标志位 Logical OR Data Memory to ACC 将存在累加器和指定数据存储器中的数据作 OR 的运算, 然后把结果储存回累加器 ACC ACC OR [m] Z OR A, x 指令说明功能表示影响标志位 Logical OR immediate data to ACC 将存在累加器中的数据和立即数作 OR 的运算, 然后把结果储存回累加器 ACC ACC OR x Z ORM A, [m] 指令说明功能表示影响标志位 Logical OR ACC to Data Memory 将存在指定数据存储器和累加器中的数据作 OR 的运算, 然后把结果储存回数据存储器 [m] ACC OR [m] Z RET 指令说明功能表示影响标志位 Return from subroutine 将堆栈区的数据取回至程序计数器, 程序由取回的地址继续执行 Program Counter Stack None 140

151 第三章指令定义 RET A, x 指令说明功能表示影响标志位 Return from subroutine and load immediate data to ACC 将堆栈区的数据取回至程序计数器且累加器载入立即数, 程序由取回的地址继续执行 Program Counter Stack ACC x None RETI 指令说明功能表示影响标志位 Return from interrupt 将堆栈区的数据取回至程序计数器且中断功能通过 EMI 位重新被使能,EMI 是控制中断使能的主中断位 ( 寄存器 INTC 的第 0 位 ), 如果在执行 RETI 指令之前还有中断未被响应, 则这个中断将在返回主程序之前被响应 Program Counter Stack EMI 1 None RL [m] Rotate Data Memory left 指令说明 将指定数据存储器的内容向左移 1 个位, 且第 7 位移回第 0 位 功能表示 [m].(i+1) [m].i; (i = 0~6) [m].0 [m].7 影响标志位 None RLA [m] Rotate Data Memory left with result in ACC 指令说明 将指定数据存储器的内容向左移 1 个位, 且第 7 位移回第 0 位, 而移位的结果 储存回累加器且数据存储器中的内容不变 功能表示 ACC.(i+1) [m].i; (i = 0~6) ACC.0 [m].7 影响标志位 None RLC [m] Rotate Data Memory Left through Carry 指令说明将指定数据存储器的内容连同进位标志位向左移 1 个位, 第 7 位取代进位位且原本的进位标志位移至第 0 位 功能表示 [m].(i+1) [m].i; (i = 0~6) [m].0 C C [m].7 影响标志位 C 141

152 A/D with LCD 型单片机使用手册 RLCA [m] Rotate Data Memory left through Carry with result in ACC 指令说明将指定数据存储器的内容连同进位标志位向左移 1 个位, 第 7 位取代进位位且原本的进位标志位移至第 0 位, 而移位的结果储存回累加器且数据存储器中的内容不变 功能表示 ACC.(i+1) [m].i; (i = 0~6) ACC.0 C C [m].7 影响标志位 C RR [m] Rotate Data Memory right 指令说明 将指定数据存储器的内容向右移 1 个位, 且第 0 位移回第 7 位 功能表示 [m].i [m].(i+1); (i = 0~6) [m].7 [m].0 影响标志位 None RRA [m] Rotate Data Memory right with result in ACC 指令说明 将指定数据存储器的内容向右移 1 个位, 且第 0 位移回第 7 位, 而移位的结果 储存回累加器且数据存储器中的内容不变 功能表示 ACC.i [m].(i+1); (i = 0~6) ACC.7 [m].0 影响标志位 None RRC [m] Rotate Data Memory right through Carry 指令说明将指定数据存储器的内容连同进位标志位向右移 1 个位, 第 0 位取代进位位且原本的进位标志位移至第 7 位 功能表示 [m].i [m].(i+1); (i = 0~6) [m].7 C C [m].0 影响标志位 C 142

153 第三章指令定义 RRCA [m] Rotate Data Memory right through Carry with result in ACC 指令说明将指定数据存储器的内容连同进位标志位向右移 1 个位, 第 0 位取代进位位且原本的进位标志位移至第 7 位, 而移位的结果储存回累加器且数据存储器中的内容不变 功能表示 ACC.i [m].(i+1) ; (i = 0~6) ACC.7 C C [m].0 影响标志位 C SBC A, [m] Subtract Data Memory from ACC with Carry 指令说明 将累加器中的数据与指定数据存储器内容和进位标志位的反相减, 把结果储存 回累加器 如果结果为负,C 标志位清除为 0, 反之结果为正或 0,C 标志位 设置为 1 功能表示 ACC ACC [m] C 影响标志位 OV, Z, AC, C SBCM A, [m] Subtract Data Memory from ACC with Carry and result in Data Memory 指令说明将累加器中的数据与指定数据存储器内容和进位标志位的反相减, 把结果储存回数据存储器 如果结果为负,C 标志位清除为 0, 反之结果为正或 0,C 标志位设置为 1 功能表示 [m] ACC [m] C 影响标志位 OV, Z, AC, C SDZ [m] Skip if Decrement Data Memory is 0 指令说明将指定数据存储器的内容先减去 1 后, 如果结果为 0, 则程序计数器再加 1 跳过下一条指令, 由于取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令 如果结果不为 0, 则程序继续执行底下的指令 功能表示 [m] [m] 1 Skip if [m] = 0 影响标志位 None 143

154 A/D with LCD 型单片机使用手册 SDZA [m] Skip if decrement Data Memory is zero with result in ACC 指令说明将指定数据存储器的内容先减去 1 后, 如果结果为 0, 则程序计数器再加 1 跳过下一条指令, 此结果会被储存回累加器且指定数据存储器中的内容不变, 由于取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令 如果结果不为 0, 则程序继续执行底下的指令 功能表示 ACC [m] 1 Skip if ACC = 0 影响标志位 None SET [m] Set Data Memory 指令说明 将指定数据存储器的每一个位设置为 1 功能表示 [m] FFH 影响标志位 None SET [m].i Set bit of Data Memory 指令说明 将指定数据存储器的第 i 位设置为 1 功能表示 [m].i 1 影响标志位 None SIZ [m] Skip if increment Data Memory is 0 指令说明将指定数据存储器的内容先加上 1 后, 如果结果为 0, 则程序计数器再加 1 跳过下一条指令, 由于取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令 如果结果不为 0, 则程序继续执行底下的指令 功能表示 [m] [m] + 1 Skip if [m] = 0 影响标志位 None SIZA [m] Skip if increment Data Memory is zero with result in ACC 指令说明将指定数据存储器的内容先加上 1 后, 如果结果为 0, 则程序计数器再加 1 跳过下一条指令, 此结果会被储存回累加器且指定数据存储器中的内容不变, 由于取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令 如果结果不为 0, 则程序继续执行底下的指令 功能表示 ACC [m] + 1 Skip if ACC = 0 影响标志位 None 144

155 第三章指令定义 SNZ [m].i Skip if bit i of Data Memory is not 0 指令说明 如果指定数据存储器的第 i 位不为 0, 则程序计数器再加 1 跳过下一条指令, 由于取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指 令 如果结果不为 0, 程序继续执行底下的指令 功能表示 Skip if [m].i 0 影响标志位 None SUB A, [m] 指令说明功能表示影响标志位 Subtract Data Memory from ACC 将累加器中内容减去指定数据存储器的数据, 把结果储存回累加器 如果结果为负,C 标志位清除为 0, 反之结果为正或 0,C 标志位设置为 1 ACC ACC [m] OV, Z, AC, C SUBM A, [m] Subtract Data Memory from ACC with result in Data Memory 指令说明将累加器中内容减去指定数据存储器的数据, 把结果储存回数据存储器 如果结果为负,C 标志位清除为 0, 反之结果为正或 0,C 标志位设置为 1 功能表示 [m] ACC [m] 影响标志位 OV, Z, AC, C SUB A, x 指令说明功能表示影响标志位 Subtract immediate Data from ACC 将累加器中内容减去立即数, 把结果储存回累加器 如果结果为负,C 标志位清除为 0, 反之结果为正或 0,C 标志位设置为 1 ACC ACC x OV, Z, AC, C SWAP [m] 指令说明功能表示影响标志位 Swap nibbles of Data Memory 将指定数据存储器的低 4 位与高 4 位互相交换 [m].3~[m].0 [m].7~[m].4 None 145

156 A/D with LCD 型单片机使用手册 SWAPA [m] 指令说明功能表示影响标志位 Swap nibbles of Data Memory with result in ACC 将指定数据存储器的低 4 位与高 4 位互相交换, 然后把结果储存回累加器且数据存储器的内容不变 ACC.3~ACC.0 [m].7~[m].4 ACC.7~ACC.4 [m].3~[m].0 None SZ [m] Skip if Data Memory is 0 指令说明 如果指定数据存储器的内容为 0, 则程序计数器再加 1 跳过下一条指令, 由于 取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令 如果结果不为 0, 程序继续执行底下的指令 功能表示 Skip if [m] = 0 影响标志位 None SZA [m] 指令说明功能表示影响标志位 Skip if Data Memory is 0 with data movement to ACC 将指定数据存储器的内容复制到累加器, 如果值为 0, 则程序计数器再加 1 跳过下一条指令, 由于取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令 如果结果不为 0, 程序继续执行底下的指令 ACC [m] Skip if [m] = 0 None SZ [m].i Skip if bit i of Data Memory is 0 指令说明 如果指定数据存储器第 i 位为 0, 则程序计数器再加 1 跳过下一条指令, 由于 取得下一指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令 如果结果不为 0, 程序继续执行底下的指令 功能表示 Skip if [m].i = 0 影响标志位 None TABRDC [m] Read table (current page) to TBLH and Data Memory 指令说明将表格指针 TBLP 所指的程序代码低字节 ( 当前页 ) 移至指定数据存储器且将高字节移至 TBLH 功能表示 [m] 程序代码 ( 低字节 ) TBLH 程序代码 ( 高字节 ) 影响标志位 None 146

157 第三章指令定义 TABRDL [m] Read table (last page) to TBLH and Data Memory 指令说明将表格指针 TBLP 所指的程序代码低字节 ( 最后一页 ) 移至指定数据存储器且将高字节移至 TBLH 指令说明 [m] 程序代码 ( 低字节 ) TBLH 程序代码 ( 高字节 ) 影响标志位 None XOR A, [m] 指令说明功能表示影响标志位 Logical XOR Data Memory to ACC 将存在累加器和指定数据存储器中的数据作 XOR 的运算, 然后把结果储存回累加器 ACC ACC XOR [m] Z XORM A, [m] Logical XOR ACC to Data Memory 指令说明将存在指定数据存储器和累加器中的数据作 XOR 的运算, 然后把结果储存回数据存储器 功能表示 [m] ACC XOR [m] 影响标志位 Z XOR A, x 指令说明功能表示影响标志位 Logical XOR immediate data to ACC 将存在累加器中的数据和立即数作 XOR 的运算, 然后把结果储存回累加器 ACC ACC XOR x Z 147

158 148 A/D with LCD 型单片机使用手册

159 第四章汇编语言和编译器 第四章 汇编语言和编译器 4 源程序由汇编语言程序构成, 由盛群编译器 (Holtek Assembler) 编译成目标文件 (Object File), 再由连接器 (Linker) 连接并产生任务文件 (Task file) 源程序 (source program) 由语句 (statement) 和表格 (look up table) 组成, 在编译器进行编译或程序执行时会给予指示, 而语句是由助记符 (mnemonic) 操作数 (operand) 和注解 (comment) 组成 常用符号 下表描述了文章中所用到的常用符号 范例 描述 中括号内的项目是可选择的, 下列的命令行语法中 : [optional items] {choice1 choice2} HASM [options] filename [;] options 和分号都是可选的, 而 filename 则必须设定 但是在指令操作数中的中括号则是指定存储器地址之用, 必须要有 大括号和垂直线代表两个或更多的选项, 大括号圈出这些选项而垂直线则用来分隔选项, 只能有一个选项被选出 三个连续的点表示允许输入更多同样形式的数据, 例如以下的指令格式 : Repeating elements PUBLIC name1 [,name2 [, ]] name2 之后的三个连续点表示允许输入更多的名称, 只要每两个名称之间用逗号隔开即可 149

160 A/D with LCD 型单片机使用手册 语句语法 语句的语法格式如下 : [ 名称 ] [ 操作项 ] [ 操作数项 ] [ ; 注解 ] 上述四个成员不一定都要指定 每两个成员之间 ( 除了注解 ) 最少要以一个空格或一个 tab 符号分隔开 成员的字型无大小写之分, 换言之, 编译器在编译之前会将小写字母改为大写字母 名称语句前可有标记以便于其它语句使用, 如果名称当做标号使用, 则必须在名称后紧接一个冒号 (:) 名称是由下列字符组成: A~Z a~z 0~9? 在使用上有以下的限制 : 不可使用数字 0~9 作为名称的第一个字符? 不能单独作为名称 只有最前面的 31 个字符被认可 操作项操作项定义两种形态的语句, 伪指令与指令 伪指令用来指导编译器如何在编译时产生目标码 指令则是引导单片机执行各种运算 两者都会在编译时产生目标码, 目标码会在执行时指导单片机的运作 操作数项操作数项定义伪指令与指令所使用的数据, 由符号 常数 表达式和寄存器所组成 注解注解是对程序代码的一种叙述与说明 编译器不会编译它 任何在分号之后的文字均被视为注解 150

161 第四章汇编语言和编译器 编译伪指令编译伪指令用来指导编译器如何在编译时产生目标码, 编译伪指令可以依其行为细分如下 条件编译伪指令 条件区段的格式如下 : IF statements [ELSE statements] ENDIF 语法 IF expression IFE expression 说明 伪指令 IF 和 IFE 对其后的 expression 进行检测 如果 expression 的数值为真, 换言之不为零, 则在 IF 与 ELSE 或 IF 与 ENDIF( 没有 ELSE) 之间所有的语句会被编译 如果 expression 的数值为假, 换言之为零, 则在 IFE 与 ELSE 或 IFE 与 ENDIF( 没有 ELSE) 之间所有的语句会被编译 范例 IF debugcase ACC1 equ 5 extern username: byte ENDIF 在此范例中, 如果符号 debugcase 的数值为真, 也就是不为零, 则变量 ACC1 的数值将被设定为 5, 同时 username 被声明为外部变量 语法 IFDEF name IFNDEF name 说明 IFDEF 和 IFNDEF 的差异在检测 name 是否被定义, 只要 name 已在前面定义为标号 变量或符号, 则在 IFDEF 与 ENDIF 之间的语句都会被编译, 相反的如果 name 还未被定义, 则在 IFNDEF 与 ENDIF 之间的语句会被编译, 条件编译伪指令提供最多 7 层的嵌套 范例 IFDEF buf_flag buffer DB 20 dup (?) ENDIF 在此范例中, 只要 buf_flag 被事先定义, 即配置存储器空间给 buffer 151

162 A/D with LCD 型单片机使用手册 文件控制伪指令 语法 INCLUDE file-name 或 INCLUDE file-name 说明 此伪指令会在编译时, 将包含入文件 file-name 的内容, 嵌入至当前的源程序文件, 并被视为源程序 编译器可提供最多 7 层的嵌套 范例 INCLUDE macro.def 在此范例中, 编译器将包含入文件 macro.def 内的源程序, 嵌入至当前的源程序文件 语法 PAGE size 说明 此伪指令指定程序列表文件 (program listing file) 中每一页的行数, 其范围介于 10 行至 255 行之间, 编译器的默认值为 60 行 范例 PAGE 57 在此范例中, 程序列表文件的每一页最多为 57 行 语法.LIST.NOLIST 说明伪指令.LIST 和.NOLIST 用来决定是否要将源程序行储存到程序列表文件 (program listing file).nolist 会禁止将其后的源程序存写到程序列表文件, 而.LIST 则会将其后的源程序存写到程序列表文件 编译器的默认值为.LIST 范例.NOLIST mov a, 1 mov b1, a.list 上面的范例中, 被.NOLIST 和.LIST 所包围的两条指令将不会被存写到程序列表文件 152

163 第四章汇编语言和编译器 语法.LISTMACRO.NOLISTMACRO 说明伪指令.LISTMACRO 会引导编译器将宏伪指令中包括注解的所有语句都存写到程序列表文件 伪指令.NOLISTMACRO 则中止写入所有宏伪指令的语句 编译器的默认值为.NOLISTMACRO 语法.LISTINCLUDE.NOLISTINCLUDE 说明.LISTINCLUDE 会引导编译器将所有包含文件 (included files) 的内容写入程序列表文件中,.NOLISTINCLUDE 则会禁止编译器将其后的包含文件的内容写进程序列表文件 编译器的默认值为.NOLISTINCLUDE 语法 MESSAGE text-string 说明 伪指令 MESSAGE 引导编译器将 text-string 显示于屏幕上, text-string 的字符必须使用一对单引号括起来 语法 ERRMESSAGE error-string 说明 伪指令 ERRMESSAGE 引导编译器显示错误讯息, error-string 的字符必须使用一对单引号括起来 153

164 A/D with LCD 型单片机使用手册 程序伪指令 语法 ( 注解 ) ; text 说明注解是以分号 (semicolon) 开始的字符所组成, 而由回车 / 换行符结束 语法 name.section [align] [combine] class 说明 伪指令.SECTION 标明程序段 (program section) 或数据段 (data section) 的起始地址 程序段是由指令和 / 或数据所组成, 这些指令及数据的地址是以该程序段的段名 name 为起始标准而定出的 程序段的段名 name 可以是唯一的或者是与程序中其它段的段名相同 若两个程序段设定有完全相同的名称 (complete name), 则被视为是同一个程序段 完全相同的名称是表示任何两个程序段的段名 name 及类别名 class 都相同 选项 align 定义程序段起始地址的形态, 可选用下列中的一种 : BYTE 以任意字节地址 (byte) 当做起始地址 ( 编译器的默认形式 ) WORD 以字地址 (word, 两个字节, 即偶数地址 ) 当做起始地址 PARA 以节段地址 (paragraph,16 的倍数 ) 当做起始地址 PAGE 以分页地址 (page,256 的倍数 ) 当做起始地址针对 CODE 类别 (class) 的程序段, 是以一条指令当做一个字节地址 BYTE 会将程序段的起始地址安排在任何指令的地址,WORD 则将程序段的起始地址安排在偶数的指令地址,PARA 将程序段的起始地址安排在 16 倍数的指令地址, 而 PAGE 则将程序段的起始地址安排在 256 倍数的指令地址 对于 DATA 类别的数据段而言, 是以一个字节 (8 位 / 字节 ) 当做地址的计算单位 BYTE 会将数据段的起始地址安排在任何字节地址,WORD 则将数据段的起始地址安排在偶数地址,PARA 将数据段的起始地址安排在 16 倍数的地址, 而 PAGE 会将数据段的起始地址安排在 256 倍数的地址 154

165 第四章汇编语言和编译器 选项 combine 定义如何结合有完全相同名称的程序段的方法, 可选用下列中的一种 : COMMON 将具有完全相同名称的所有程序段的起始地址安排在同一个地址, 所使用的存储器长度则是以最长的程序段的长度为准 AT address 此选项是指定程序段的起始地址为 address, 一个固定地址 编译器及连接器不能把它安排到其它的地址, 而其内的标号 (label) 和变量 (variable) 的地址可直接从 address 计算出 除了不可有前置引用 (forward reference) 的变量或符号外, 可以使用任何合乎规定的表达式来表示 address, 而运算结果的数值必须是合法的 ROM/RAM 存储器地址, 且不能超出 ROM/RAM 的大小范围 如果没有设定 combine 的形式, 则该程序段是可结合的, 换句话说, 此程序段和其它具有完全相同名称的程序段可以连接成一个单一的程序段 这些具有完全相同名称的程序段可以分别定义在不同的源程序文件 Class 是定义段存放的存储器 相同类别的段被安排在存储器中的连续区域 以其输入的先后顺序一个个紧接地安排在存储器中 类别名称为 CODE 的程序段将会放置在程序存储器 (program memory - ROM), 而类别名称为 DATA 的数据段则是存储在数据存储器 (data memory - RAM) 在此伪指令之后, 直到下一程序段伪指令之前的所有指令及数据, 都属于此程序段 如果没有下一个程序段伪指令, 则一直到程序文件的结尾都属于此程序段 语法 ROMBANK banknum section-name [,section-name,...] 说明此伪指令用来声明程序存储器 (program memory) 的某一区块 (bank) 所包含的程序段 banknum 指定程序存储器的区块编号, 范围从 0 到单片机的最大程序存储器区块数 section-name 则是先前已定义的程序段的名称 可以在同一个存储器区块内声明多个程序段, 只要这些被声明的程序段的总和不超过 8K 字 如果程序中没有声明此伪指令, 则所有类别为 CODE 的程序段都被视为属于区块 0(bank 0), 如果某个类别为 CODE 的程序段没有被声明为属于任何程序存储器的区块内, 此程序段将被视为属于区块 0 155

166 A/D with LCD 型单片机使用手册 语法 RAMBANK banknum section-name [,section-name,...] 说明 此伪指令与 ROMBANK 相似, 不同的地方是声明数据存储器 (data memory) 的区块所包含的数据段 (data section) 数据存储器区块的大小则为 256 字节 语法 END 说明此伪指令声明程序的结束, 因此应该避免在任何包含文件 (included file) 中加入此伪指令 避免编译器编译到此伪指令后就结束程序的编译流程, 致使之后的指令及伪指令不会被编译到 语法 ORG expression 说明 此伪指令会将 expression 的计算数值设定给编译器的地址计数器 (location counter), 其后的程序代码和数据偏移地址将根据 expression 所计算的偏移量做相对的调整 程序代码和数据偏移量与伪指令 ORG 所在的程序段的起始地址有关, 程序段的属性会决定偏移量的实际值 ( 是绝对地址或相对地址 ) 范例 ORG 8 mov A, 1 在此范例中, 语句 mov A, 1 的地址是在当前程序段的第 8 个地址 156

167 第四章汇编语言和编译器 语法 PUBLIC name1 [,name2 [,...]] EXTERN name1:type [,name2:type [,...]] 说明 伪指令 PUBLIC 用来声明可被其它程序文件中的程序模块所使用的变量或标号, 也就是公用变量或标号 另一方面, 伪指令 EXTERN 则用来声明程序将使用的外部变量 标号或符号的名称和类型 这里提到的类型可使用下列四种形式中的一种 :BYTE WORD BIT( 这三种形式适用于数据变量 ) 和 NEAR( 用于调用或跳转的标号形式 ) 范例 PUBLIC start, setflag EXTERN tmpbuf:byte CODE.SECTION CODE start: mov a, 55h call setflag... setflag proc mov tmpbuf, a ret setflag endp end 在此范例中, 标号 start 和程序 setflag 都被声明为公用变量, 而其它源程序文件中的程序可以使用这些变量 变量 tmpbuf 被声明为外部变量 在其它的源程序文件中, 一定有一个名称为 tmpbuf 的 byte 型变量定义, 而且被声明为公用变量 语法 name PROC name ENDP 说明 伪指令 PROC 和 ENDP 用来定义一段可被其它程序调用或跳转的程序代码 必须要指定一个名称 name 给 PROC 代表此程序 (procedure) 第一条指令的地址, 而编译器会将标号的值设定至地址计数器中 范例 toggle PROC mov tmpbuf, a mov a, 1 xorm a, flag mov a, tmpbuf ret toggle ENDP 157

168 A/D with LCD 型单片机使用手册 语法 [label:] DC expression1 [,expression2 [,...]] 说明 伪指令 DC 会将 expression1 及 expression2 等的值存储在存储器的连续位置 此伪指令只能使用于 CODE 类别的程序段之内 expression1 及 expression2 的数值将视单片机的程序存储器的宽度大小而定, 编译器会将任何多余的位清零 expression1 必须为数值或标号, 此伪指令通常被用在程序段之内建立表格以便查询 范例 table: DC 0128H, 025CH 在此范例中, 编译器会预留两个地址的 ROM 空间 并将 0128H 和 025CH 储存至这两个地址中 数据定义伪指令汇编程序由语句和注解组成, 语句或注解则是由字符 数字和名称构成 汇编语言支持整数数字 整数可由二进制 八进制 十进制或十六进制加以表示 ( 配合字尾的基数 ), 如果未选基数, 则编译器会使用默认值 ( 十进制 ), 下表为可用的基数 基数 形态 数字 B O D H 二进制八进制十进制十六进制 ABCDEF 158

169 第四章汇编语言和编译器 语法 [name] DB value1 [,value2 [,...]] [name] DW value1 [,value2 [,...]] [name] DBIT [name] DB repeated-count DUP(?) [name] DW repeated-count DUP(?) 说明 上述伪指令会引导编译器在数据存储器 (data memory) 内保留空间给变量 name ( 如果有指定 name) 存储器保留的空间大小则由其后的个数及数据类 型, 或由重复次数及数据类型来决定 由于单片机的数据存储器无法事先记 录数据内容, 编译器不会对数据存储器做初始值的设定, 因此 value1 和 value2 必须为?, 表示只是保留存储器空间给程序执行时使用, 并没有 设定其初始值 DBIT 只保留一个位, 编译器会将每 8 个 DBIT 整合在一起 并且保留一个字节给这 8 个 DBIT 变量 范例 DATA.SECTION DATA tbuf DB? chksum DW? flag1 DBIT sbuf DB? cflag DBIT 在此范例中, 编译器保留字节地址 0 给变量 tbuf 字节地址 1 与 2 给变量 chksum 字节地址 3 的第 0 位给变量 flag1 字节地址 4 给变量 sbuf 以及 字节地址 3 的第 1 位给变量 cflag 语法 name LABEL {BIT BYTE WORD} 说明 此伪指令会将 name 的地址设定为与其后的变量相同的存储器地址 范例 lab1 LABEL WORD d1 DB? d2 DB? 在这个范例中,d1 是 lab1 的低字节, 而 d2 则是 lab1 的高字节 159

170 A/D with LCD 型单片机使用手册 语法 name EQU expression 说明 EQU 伪指令将 expression 传送给 name, 从而产生一个绝对符号 别名或文字符号 绝对符号是一个代表 16 位值的名称 别名则替代另一个符号 而文字符号则是代表一串字符组合的名称 name 必须是唯一的, 即先前未被定义过 expression 可以是一个整数 字符串常数 指令助记符 数学表达式或地址表达式 范例 accreg EQU 5 bmove EQU mov 在这个范例中, 变量 accreg 等于 5, 而 bmove 相当于指令 mov 宏伪指令宏伪指令定义一个名称来代表一段源程序语句, 而在源程序文件中可以重复使用此名称以取代这段语句, 也就是程序中所有用到此段语句的地方都可用这个名称代替 在编译时, 编译器会自动将每一个宏伪指令的名称用宏伪指令所定义的程序语句来取代 宏伪指令可以在源文件的任何地方被定义, 只要调用此宏伪指令是在宏伪指令定义之后即可 宏伪指令的定义中, 可以调用先前已经被定义的其它宏伪指令, 如此将形成一种嵌套的结构, 编译器提供最多 7 层的嵌套 语法 name MACRO [dummy-parameter [,...]] statements ENDM 在宏伪指令中, 可以使用伪指令 LOCAL 来定义只能在宏伪指令本体内使用的变量 160

171 第四章汇编语言和编译器 语法 name LOCAL dummy-name [,...] 说明 宏伪指令 LOCAL 用来定义只能在宏伪指令本体内使用的符号, 使用时必须定义在 MACRO 伪指令之后的第一行 dummy-name 是一个暂时使用的名称, 当宏伪指令被调用展开时, 它将被一个唯一的名称所取代, 编译器会对 dummy-name 产生对应的实际名称, 这个实际名称的格式为??digit, 其中 digit 数字为十六进制且范围由 0000 至 FFFF 当 MACRO/ENDM 的定义区段中使用到一些标号 (label) 时, 要将这些标号加入 LOCAL 伪指令中, 否则当 MACRO 被源文件多次引用时, 相同的标号名称会重复出现在程序中, 编译器将会发布程序错误的信息 下面的范例中,tmp1 和 tmp2 都是形式参数, 当调用此宏伪指令时, 都会被实际参数所取代 label1 和 label2 都被声明为 LOCAL, 如果没有其它的 MACRO 被引用, 在第一次引用时将分别被??0000 和??0001 所取代, 如果没有声明 LOCAL,label1 和 label2 则会类似于源程序中的标号声明, 而在第二次引用此宏伪指令时, 就会出现重复定义的错误讯息 Delay MACRO tmp1, tmp2 LOCAL label1, label2 mov a, 70h mov tmp1, a label1: mov tmp2, a label2: clr wdt1 clr wdt2 sdz tmp2 jmp label2 sdz tmp1 jmp label1 ENDM 161

172 下面的源程序将会调用名为 Delay 的宏指令 ; T.ASM ; Sample program for MACRO..ListMacro Delay MACRO tmp1, tmp2 LOCAL label1, label2 mov a, 70h mov tmp1, a label1: mov tmp2, a label2: clr wdt1 clr wdt2 sdz tmp2 jmp label2 sdz tmp1 jmp label1 ENDM data.section data BCnt db? SCnt db? code.section at 0 code Delay BCnt, SCnt end A/D with LCD 型单片机使用手册 编译器会将宏伪指令 Delay 展开如下列的程序, 请注意在宏伪指令本体内的第 4 行到第 17 行, 它们的偏移地址 (offset) 都是 0000, 也就是宏伪指令在定义时, 本体内的指令并不占用存储器空间 在程序第 24 行调用 Delay 宏伪指令时, 它就被展开成 11 行, 也就是展开为宏指令程序 形式参数 tmp1 和 tmp2 分别被实际参数 BCnt 和 SCnt 所取代 162

173 第四章汇编语言和编译器 File: T.asm Holtek Cross-Assembler Version 2.80 Page ; T.ASM ; Sample Program for MACRO ListMacro Delay MACRO tmp1, tmp LOCAL label1, label mov a, 70h mov tmp1, a label1: mov tmp2, a label2: clr wdt clr wdt sdz tmp jmp label sdz tmp jmp label ENDM data.section data BCnt db? SCnt db? code.section code Delay BCnt, SCnt F70 1 mov a, 70h R1 mov BCnt, a ??0000: R1 mov SCnt, a ??0001: clr wdt clr wdt R1 sdz SCnt jmp?? R1 sdz BCnt jmp?? end 0 Errors 163

174 A/D with LCD 型单片机使用手册 汇编语言指令指令的语法形式如下 : [name:] mnemonic [operand1 [,operand2] ] [; comment] 其中 name: 符号名称 mnemonic 指令名称 ( 关键字 ) operand1 寄存器存储器地址 operand2 寄存器存储器地址立即值名称 名称是由字母 数字或特殊字符所组成的, 可以当标号 (label) 使用 当标号使用时, 必须在名称后面紧接一个冒号 (colon) 助记符 助记符是源程序中使用的指令名称, 它取决于源程序所使用的单片机型号 操作数 运算子和表达式 操作数 ( 源操作数或目的操作数 ) 定义被指令所使用的数值, 它们可以是常数 变量 寄存器 表达式或关键字 当使用指令时, 必须谨慎选择正确的操作数, 即源操作数和目的操作数 钱字符号 $ 是一个特殊的操作数, 它代表当前的地址 表达式由操作数所组成, 在程序编译时用来计算出数值或存储器地址 表达式是常数 符号以及任何被算术运算子分隔的常数和符号组合 运算子定义表达式中各操作数之间的运算动作, 编译器提供了许多运算子去处理操作数, 有些运算子只处理常数, 有些则处理存储器数值, 也有两者兼具的 如果运算子处理的是常数, 则在程序编译时就会直接计算出数值 以下是编译器所提供的运算子 164

175 第四章汇编语言和编译器 算术运算子 + * / %(MOD) SHL 和 SHR 运算子 语法 expression SHR count expression SHL count 这些位平移运算子的值全都为常数,expression 依照 count 所指定的位数目向右移 (SHR) 或向左移 (SHL), 如果被平移的位超过有效位数时, 则对应的位会以 0 填满, 如 : mov A, b SHR 3 ; result ACC= b mov A, b SHL 4 ; result ACC= b 逻辑运算子 NOT AND OR XOR 语法 NOT expression expression1 AND expression2 expression1 OR expression2 expression1 XOR expression2 NOT 各位的 1 阶补码 AND OR XOR 偏移运算子 各位 AND 运算 各位 OR 运算 各位 XOR 运算 语法 OFFSET expression OFFSET 运算子返回 expression 的偏移地址,expression 可以是标号 变量或其它直接存储器的操作数, 被 OFFSET 运算子所返回的数值必须是立即数 LOW MID 和 HIGH 运算子 语法 LOW expression MID expression HIGH expression 如果 expression 的结果为一个立即数的话, 则 LOW/MID/HIGH 运算子返回值就是 expression 的值, 而且是分别取此数值的低 / 中 / 高字节 但是如果 expression 是标号, 则 LOW/MID/HIGH 运算子将取得此标号所在的程序存储器地址的低 / 中 / 高字节的数值 165

176 A/D with LCD 型单片机使用手册 BANK 存储器区块运算子 语法 BANK name BANK 运算子会返回程序段所在的存储器区块的编号, 此程序段的名称是 name 如果 name 是标号, 则返回 ROM 程序存储器区块, 如果 name 是数据变量则返回 RAM 数据存储器区块 存储器区块的数值格式与寄存器 BP 的格式相同, 请参考各单片机的规格 ( 注意 : 不同的单片机可能有不同的 BP 格式 ) 范例 1: mov A, BANK start mov BP, A jmp start 范例 2: mov A, BANK var mov BP, A mov A, OFFSET var mov MP1, A mov A, R1 运算子的优先权 优先权 1(Highest) (Lowest) 运算子 ( ), [ ] +, (unary), LOW, MID, HIGH, OFFSET, BANK *, /, %, SHL, SHR +, (binary) > (greater than), >= (greater than or equal to) < (less than), <= (less than or equal to) = = (equal to),!= (not equal to)! (bitwise NOT) & (bitwise AND) (bitwise OR), ^ (bitwise XOR) 166

177 第四章汇编语言和编译器 其它 前置引用当标号 变量名称和其它符号在源代码中被声明之前, 编译器允许它们被使用 ( 前置命名引用 ), 但是在伪指令 EQU 右边的符号是不允许前置引用的 局部标记局部标号有固定的形式, 即 $number 其中 number 可以为 0 至 29, 局部标号除了可以重复使用外, 其它功用与一般标号相同 局部标号必须使用在任意两个连续的标号之间而且同样的局部标号名称也可以用在其它的两个连续标号之间 在编译源程序文件之前, 编译器会将每一个局部标号转换成唯一的标号 任何两个连续标号之间, 最多可以定义 30 个局部标号 范例 Label1: Label2: Label3: ; label $1: ;; local label mov a, 1 jmp $3 $2: ;; local label mov a, 2 jmp $1 $3: ;; local label jmp $2 ; label Jmp $1 $0: ;; local label jmp Label1 $1: jmp $0 167

178 A/D with LCD 型单片机使用手册 汇编语言保留字下表是汇编语言上使用的保留字 保留字 ( 伪指令 运算子 ) $ DUP INCLUDE NOT * DW LABEL OFFSET + ELSE.LIST OR - END.LISTINCLUDE ORG. ENDIF.LISTMACRO PAGE / ENDM LOCAL PARA = ENDP LOW PROC? EQU MACRO PUBLIC [ ] ERRMESSAGE MESSAGE RAMBANK AND EXTERN MID ROMBANK BANK HIGH MOD.SECTION BYTE IF NEAR SHL DB IFDEF.NOLIST SHR DBIT IFE.NOLISTINCLUDE WORD DC IFNDEF.NOLISTMACRO XOR 保留字 ( 指令助记符 ) ADC HALT RLCA SUB ADCM INC RR SUBM ADD INCA RRA SWAP ADDM JMP RRC SWAPA AND MOV RRCA SZ ANDM NOP SBC SZA CALL OR SBCM TABRDC CLR ORM SDZ TABRDL CPL RET SDZA XOR CPLA RETI SET XORM DAA RL SIZ DEC RLA SIZA DECA RLC SNZ 保留字 ( 寄存器名称 ) A WDT WDT1 WDT2 168

179 第四章汇编语言和编译器 编译器选项编译器选项可以通过 HT-IDE3000 中的 Options 菜单的 Project 命令来设定, 编译器的选项位于 Project Option 对话框的中心部分 可在符号定义 (Define Symbol) 编辑框中定义符号 语法 symbol1 [=value1] [,symbol2 [=value2 ] [,...]] 范例 debugflag=1, newver=3 产生列表文件的检查框可用来指定是否要生成列表文件 (Listing file), 如果检查框被选中, 则要生成列表文件, 否则将不会产生列表文件 编译列表文件格式编译列表文件包含源程序的列表和概要信息 每页的第一行是标题, 内容则包括公司名称 编译器版本 源文件名称 编译时的日期, 时间以及页码 源程序列表 在源程序中的每行语句都以下列的格式输出到编译列表文件 : [line-number] offset [code] statement Line-number 是指语句在源程序文件的第几行, 从第一个语句开始计算起 (4 位十进制数 ) offset- 是从语句所在的程序段开始到这个语句的存储器地址的偏移量 (4 位十六进制数 ) code- 只有会产生机器码 (machine code) 或数据的语句才会出现此项 ( 两个 4 位十六进制数 ) 如果数值在编译时已确定的话, 会用十六进制数字表示 code 的数值, 否则的话, 将使用适当的标志位表明应该使用何种方式去计算此数值 下列两个标志位可能会出现于 code 项之后 R 需要重新安置地址 ( 连接器解决此状况 ) E 需要参考外部符号 ( 连接器解决此状况 ) 下列标志位可能会出现于 code 项之前 = EQU 或等号 code 项中可能出现下列的符号或数字 ---- 代表程序段的起始地址 ( 连接器会解决此符号 ) nn[xx] DUP 符号 :nn DUP(?) 重复次数 169

180 A/D with LCD 型单片机使用手册 statement- 源文件对应的源程序语句或是宏伪指令所展开的语句 在语句之前可能会出现下列的符号 n 宏伪指令展开时的嵌套层次 总结 C 此语句是从包含文件 (INCLUDE 文件 ) 引进的! " # $! " # $ % & '! " # $ % & '! " # $ % & '! " # $ % & '! " # $ % & '! " # $ % & ' D D D D D D D D - + I K H? A F H C H= I J = JA A J 4 IIII 行数字 (4 位数, 向右靠齐 ) oooo 代码的偏移量 (4 位数 ) hhhh 两个 4 位数机器码 E 参考外部资料 C 从包含文件加入的语句 R 需要重新安置地址 n 宏伪指令展开后的嵌套层次编译总结在编译列表文件的结尾处会统计此次编译所发生的警告及错误的总数 其它在编译期间如果发生错误, 则错误信息和编号会直接出现在发生错误的语句下方 170

181 第四章汇编语言和编译器 编译列表文件的范例 File: SAMPLE.ASM Holtek Cross-Assembler Version 2.86 Page page message Sample Program listinclude listmacro #include sample.inc C pa equ [12h] C pac equ [13h] C pb equ [14h] C pbc equ [15h] C pc equ [16h] C pcc equ [17h] C extern extlab : near extern extb1 : byte clrpb macro clr pb endm clrpa macro mov a, 00h mov pa, a clrpb endm data.section data b1 db? b2 db? bit1 bit code.section code F55 mov a, 055h R mov b1, a E mov extb1, a FAA mov a,0aah mov pac, a clrpa F00 1 mov a, 00h mov [12h], a clrpb F14 2 clr [14h] R mov a, b F00 E mov a, bank extlab A 0F00 E mov a, offset extb B 2800 E jmp extlab C C dw 1234h, 5678h, 0abcdh, 0ef12h ABCD EF end 0 Errors 171

182 172 A/D with LCD 型单片机使用手册

183 第三部份开发工具 第三部分 开发工具 173

184 174 A/D with LCD 型单片机使用手册

185 第五章单片机开发工具 第五章 单片机开发工具 5 为简化应用程序的开发过程, 支持工具的重要性和有效性对于单片机来说是不可低估的 为了支持所有系列的 MCU, 盛群用心的提供了具有完整功能的工具, 让用户在开发与使用上更加便利, 例如众所周知的 HT-IDE 集成开发环境, 软件方面有 HT-IDE3000 软件, 提供友好的视窗接口以便进行程序的编辑及除错, 同时硬件方面为 HT-ICE 仿真器, 提供多种实时仿真功能, 包含多功能跟踪 单步执行和设定断点功能 HT-IDE 开发系统提供完整的接口卡与定期软件服务包的更新, 因此保证设计者可以有最佳的工具, 且能以最高效率进行单片机应用程序的设计与开发 HT-IDE 集成开发环境 HT-IDE (Holtek Integrated Development Environment) 是一个具有高效能, 使用 于设计盛群 8 位 MCU 应用程序的集成开发环境 系统中的硬件及软件工具能帮助客户使用盛群 8 位 MCU 芯片, 快速方便地开发应用程序 在 HT-IDE 集成开发环境中最主要的器件为 HT-ICE(In-Circuit Emulator), 它提供了盛群 8 位单片机的实时仿真功能以及强而有力的除错与跟踪功能 最新版的 HT-ICE 仿真器更进一步整合 OTP writer 烧录器在仿真器上, 提供使用者从程序设计 除错到烧录所有的功能 在软件方面,HT-IDE3000 开发系统提供友好的工作平台 此平台将所有的软件工具, 例如编辑器 编译器 连接器 函数库管理员和符号除错器, 并入到视窗环境, 使程序开发过程更为容易 HT-IDE3000 还提供软件仿真功能, 无需接上 HT-ICE 仿真器, 就可以进行程序开发 此软件仿真器可以仿真盛群 8 位 MCU, 以及 HT-ICE 硬件的所有基本功能 175

186 A/D with LCD 型单片机使用手册 HT-IDE3000 使用手册中包含 HT-IDE 开发系统的相关细节 为了提供 HT-IDE3000 的安装作业以及确保开发系统包含有最新的单片机和软件更新信息, 盛群也定期提供 HT-IDE3000 服务软件 (Service Pack) 这些服务软件不是用来取代 HT-IDE3000, 它必须要在 HT-IDE3000 系统软件已安装后才能被安装 HT-IDE3000 开发系统拥有下列特性 : 仿真 程序指令的实时仿真 硬件 使用及安装容易 可使用内部或外部振荡器 断点机制 支持跟踪功能与触发能力的跟踪仿真器 HT-ICE 通过打印口与计算机连接 使用者的应用电路板通过 I/O 接口卡连接至 HT-ICE HT-ICE 中集成 OTP 烧录器 软件 通用的视窗软件 源程序层次的除错方式 ( 符号除错器 ) 支持多个源程序文件的工作平台 ( 一个应用项目可以包含一个以上的源程序文件 ) 所有的工具都用于开发 除错 评估和产生最终的应用程序代码 (Mask ROM file) 可以建立公用程序的函数库, 之后被连接到另一个项目去使用 软件仿真器不需要连接 HT-ICE 硬件即可进行程序的仿真和除错 虚拟外围器件管理 (VPM) 可以仿真外围器件的行为 LCD 仿真器可以仿真 LCD 面板的动作 176

187 第五章单片机开发工具 盛群单片机仿真器 HT-ICE 对于盛群的 8 位单片机而言, 盛群的 ICE 是全功能的仿真器, 系统中的硬件及 软件工具能帮助客户快速方便的开发应用程序 系统中最主要的是硬件仿真器, 除了能够有效地提供除错和跟踪功能之外, 还能以实时的方式进行盛群 8 位 MCU 的仿真工作 在软件方面,HT-IDE3000 开发系统提供友好的工作平台, 将所有软件工具, 例如编辑器 编译器 连接器 函数库管理器和符号除错器, 合并到视窗环境 此外系统在软件仿真模式下不需连接 HT-ICE 硬件即能执行程序的仿真 HT-ICE 接口卡 HT-ICE 的接口卡可以被许多的应用电路使用, 但是使用者也可自行设计接口卡 将必要的接口电路放在他们自己的接口卡上 使用者可以直接把他们的应用电路板连接到 HI-ICE 的 CN1 和 CN2 连接器 OTP 烧录器所有的盛群 OTP 芯片都有烧录器支持 对于工程级的 OTP 芯片烧录而言, 盛群 OTP writer 工具提供一个快速且有效的方法, 来进行 OTP 的小规模量产烧录 最新版的 HT-ICE 仿真器更进一步的将 OTP writer 集成在 HT-ICE 仿真器上, 提供使用者从程序设计 除错到烧录验证的所有必需功能 另外有更多的烧录器供应商可提供有效及更大容量的烧录服务 请参阅网站以获得进一步供应商情况 OTP 适配卡 OTP 烧录器本身提供一个标准的芯片插座, 而 OTP 适配卡则是使用在烧录其它封装形式的 OTP 芯片, 这些封装形式的芯片无法在标准芯片插座上烧录, 需要在 OTP 烧录器插上此适配卡才能烧录 177

188 A/D with LCD 型单片机使用手册 系统配置 HT-IDE 集成环境硬件配置如下, 主机需为 Pentium 兼容机器, 软件为 Windows 95/98/NT/2000/XP 或更新 注意在 Windows NT/2000/XP 系统下安装 HT-IDE3000 时, 需要在 Supervisor Privilege 模式下执行 HT-IDE3000 软件安装 2 M A = F JA H - K = J H. = J+ = > A 2 HE JA H+ = > A - K = J H* N JA HB=? A + = H@ 6 = HC A J * = H@ HEJA H HT-IDE 集成环境包含下列硬件成员 : HT-ICE 机台, 包含印刷电路板 PCB, 其中有一条打印口用于连接硬件仿真器与主机,I/O 接口连接头以及电源指示灯 LED, 如下图所示 连接目标电路板与 HT-ICE 机台的 I/O 接口卡 变压器 ( 输出 16V) 25 脚的 D 型打印并口线 OTP writer 烧录器 2 HE JA H2 HJ 4 A I A J, + $ A = H 8 EA M H J8 EA M 178

189 第五章单片机开发工具 HT-ICE 接口卡设定 HT-ICE 接口卡 (TPCB46SER0000A) 连接使用者的应用电路板与 HT-ICE, 它提供下列功能 : 外部时钟 外部输入的跟踪信号 单片机的 I/O 与 LCD 引脚配置 7 7! " 2 # 2 $ 2 7 # ; ! 2 " 2 外部的时钟源有两种模式 :RC 和 Crystal 使用 Crystal 模式时, 必须将 JP1 位置的第二和第三脚短路, 然后在 Y1 位置插入合适的晶振 而 RC 模式则是将第一和第二脚短路, 并且可以通过 VR1 来调整系统频率 请参考 HT-IDE3000 使用者手册中 Tools 菜单的 Mask Option 命令选择时钟源和系统频率 VR2 用于调整 LCD 电压 (VLCD) A/D 转换器的电源 (AVDD) 可以通过 JP2 来选择 如果选择 HT-ICE 提供的 5V 电源时, 必须将 JP2 位置的第一和第二脚短路, 如果选择其它外部电源的电压时, 必须将 JP2 位置的第二和第三脚短路 这个外界电源必须接到 JP3 与 JP4 开关 SW1 需配合单片机型号及依照下表设定使用 : 型号 SW HT46R62 ON ON ON OFF HT46R63 ON ON ON OFF HT46R64 ON ON ON ON HT46R65 ON ON ON ON JP5 提供 LCD 的所有 COM 与 SEG 输出引脚,JP6 则提供所有 I/O 以及其它引脚 所有 A/D with LCD 系列单片机的引脚都可以在 JP5 与 JP6 上找到 接口卡上的 VME 接头直接连接到 HT-ICE 的 CN1 与 CN2 接头 179

190 A/D with LCD 型单片机使用手册 安装 系统需求安装 HT-IDE3000 系统的硬件及软件需求如下 : Pentium 等级以上 CPU 之 PC/AT 兼容机器 SVGA 彩色屏幕 至少 32M 以上的 RAM CD ROM 装置 (CD 安装者需要 ) 至少 20M 以上的硬盘空间 具有并行口, 可连接 PC 和 HT-ICE Windows 95/98/NT/2000/XP 操作系统 * Window 95/98/NT/2000/XP 是 Microsoft 公司注册商标 硬件安装 步骤 1 将电源变压器插入 HT-ICE 的电源插孔 步骤 2 通过 I/O 接口卡或排线连接目标电路板与 HT-ICE 步骤 3 使用打印并口线连接 HT-ICE 与主机此时 HT-ICE 上的 LED 应该是亮的, 如果不是, 则重新操作连接的程序或与代理商联系 警告 : 请小心使用电源变压器, 勿使用输出不是 16V 的变压器, 否则可能导致 HT-ICE 损坏 因此强烈建议使用由盛群所提供的变压器 首先将电源变压器插入 HT-ICE 的电源插座 180

191 第五章单片机开发工具 软件安装 步骤 1 将 HT-IDE3000 CD 放入 CD ROM 装置中, 将出现下列的对话框 按下 <HT-IDE3000> 按钮, 下列的对话框会出现 依照你想要安装的功能, 请按下 <HT-IDE3000> 或 <Service Pack> 按钮 如果是首次安装, 请按 <HT-IDE3000>, 如果已安装 HT-IDE3000, 而需要更新版本时, 请按 <Service Pack> 以下为选择安装 <HT-IDE3000> 的范例说明, 按下 <HT-IDE3000> 181

192 步骤 2 A/D with LCD 型单片机使用手册 按下 <Next> 按钮 ( 继续安装 ) 或按下 <Cancel> 按钮 ( 中止安装 ) 步骤 3 下面显示的对话框会要求使用者输入安装处的文件夹名称 步骤 4 指定你希望安装 HT-IDE3000 的文件夹路径, 然后按下 <Next> 按钮 182

193 第五章单片机开发工具 步骤 5 SETUP 会将文件复制到你指定的文件夹 步骤 6 安装成功的话, 则会出现下面的对话框 183

194 A/D with LCD 型单片机使用手册 步骤 7 请按下 <Finish> 按钮完成安装并重新启动计算机系统之后, 你就可以执行 HT-IDE3000 程序了 SETUP 会在你指定的文件夹下, 建立四个子文件夹 (BIN INCLUDE LIB SAMPLE) BIN 子文件夹包含所有的系统可执行文件 (EXE) 动态链接库(DLL) 和配置文件 (CFG FMT),INCLUDE 子文件夹包含所有由盛群所提供的包含文件 (.H.INC),LIB 子文件夹包含由盛群所提供的库文件 (.LIB),SAMPLE 子文件夹包含范例程序 注意, 在第一次执行 HT-IDE3000 之前, 系统会要求输入如下图所示的公司资料, 请选择适当的区域并填入公司名称及识别码, 其中识别码可由 HT-IDE3000 的供应商提供 184

195 第六章快速开始 第六章 快速开始 6 本章简述如何快速使用 HT-IDE3000 去开发一个应用程序项目 步骤一 : 建立一个新项目 按下 Project 菜单并选择 New 命令 输入项目名称并从 combo 框选择此项目使用的单片机型号 按下 OK 按键则系统将会要求设定单片机的掩膜选项 设定所有掩膜选项并按下 SAVE 键 步骤二 : 将源程序文件加到项目中 使用 File/New 命令建立源程序文件 撰写完程序后存盘, 如 TEST.ASM 档名 按下 Project 菜单并选择 Edit 命令 进入 Edit Project 对话框以便将源程序文件从项目中加入 / 删除 选择一个源程序文件, 如 TEST.ASM, 按下 Add 按钮 当所有源程序文件都被加入项目后, 按下 OK 按钮 步骤三 : 建立项目 按下 Project 菜单并且选择 Build 命令 系统将会对项目中的所有源程序文件执行编译动作 如果程序中有错误, 只要在错误讯息行连按两次, 则系统将会提示错误发生的地址并且打开此错误所在的源程序文件, 便可直接修改程序与储存文件 如果所有程序文件都没有错误, 则系统会产生一个执行文件 (Task file) 并且载入到 HT-ICE 中, 准备仿真及除错 你可以重复此步骤直到没有错误 185

196 A/D with LCD 型单片机使用手册 步骤四 : 烧录 OTP 单片机 建立项目, 生成.OTP 文件 按下 Tools 菜单并选择 OTP Writer 命令去烧录 OTP 芯片 步骤五 : 传送程序与配置菜单至 Holtek 按下 Project 菜单并选择 Print Option Table 命令去打印掩膜选项确认单 传送.COD 文件和掩膜选项确认单到盛群半导体公司, 进行生产 程序及数据流可以下图来表示 : ) H A? J ) I I A > A + F E A H A? J * K 4 A > K ) ) I I A > A + F E A E A H! A H " A / A A H= J H * 6 I E> H= HO = = C A H 1* E A H + HA = JA 6 = I. E A ) 2, * / +. / 6 I = I F JE A H, M J 1+ - A / A A H= J H, A > K C / / J + K HI H K F J + K HI H 5 J F 6 H=? A 5 J F 4 A I A J 2 M A H 4 A I A J 4 A I A J6 H=? A 5 JA F 1 J L A H K J 5 JA F F E C 6 I 2 HE J F JE 6 = > A +, I 0 O 9 HEJA H F JE ) F F H L = 5 D A A J 0 JA = I 1+ I I 186

197 第七章 LCD 仿真器 第七章 LCD 仿真器 7 简介 盛群的 LCD 仿真器, 即 HT-LCDS, 可以让使用者仿真 LCD 驱动器的输出 依照使用者设计的图形和控制程序,HT-LCDS 在显示器上实时的显示图形 在缺少实际的 LCD 面板的情况下, 使得开发过程更为便利 要注意的是, 如果当前项目的单片机不支持 LCD 功能, 则这些命令也是无效的 LCD 面板配置文件在开始 LCD 仿真之前, 必须先设定 LCD 面板配置文件 HT-LCDS 将根据 LCD 面板配置文件获得 LCD 数据并在显示器上显示 LCD 图形, 如果缺少这个文件, HT-LCDS 将不能仿真 LCD 的动作 为了让单片机能处理 LCD 驱动器, 必须为 LCD 仿真设定相应的面板配置文件 Tools 菜单中的 LCD Simulator 命令用来设定面板配置文件及仿真 LCD 面板配置文件包含两种数据, 即面板配置数据和图形信息, 用户可以使用 HT-LCDS 进行设定 187

198 A/D with LCD 型单片机使用手册 面板文件和当前项目的关系在默认情况下, 除了后缀名为.lcd 外, 面板配置文件的文件名与当前项目的名称相同 HT-LCDS 认为它是和当前项目相对应的面板配置文件 面板配置文件由 HT-LCDS 中 File 菜单上的 New 命令或工具栏中的 New 按钮产生 通过点击 File 菜单的 Save 命令或工具栏上的 Save 按钮, 可以为面板配置文件指定一个与当前项目名称不同的文件名 当 HT-LCDS 开始仿真时, 它会参考当前的面板配置文件以获取仿真信息 LCD 面板配置文件通过选择 HT-LCDS File 菜单中的 New 或 Open 命令被激活 它的文件名可以和当前项目名称相同, 也可以选择一个不同的名称 选择 HT-LCDS 在当前项目相应的面板配置文件存在的情况下, 点击 Tools 菜单的 LCD Simulator 命令后, 会显示 LCD 仿真器的对话框 表格中指定的 COM/SEG 位置上会显示每一个位图图形的文件名 同时, 在上方的面板显示屏上也会显示这些图形 如果在项目的路径中不存在对应的面板配置文件, 则面板显示屏和 COM/SEG 表格都不会有显示 LCD 仿真器对话框 188

199 第七章 LCD 仿真器 下图为 HT-LCDS 菜单栏 F A + K J 2 = I JA 5 E K = JA A M 5 = L A + F O 2 = A 1 B H = JE ) > K J New: 建立一个新的面板配置文件 Open: 打开一个已存在的面板配置文件 Save: 保存面板配置文件 Cut: 删除一个图形 Copy: 复制一个图形到剪贴板 Paste: 将已复制的图形加到面板上 I: 面板信息对话框 S: 进入 LCD 仿真模式 LCD 面板图形文件 LCD 面板图形 ( 样板 ) 文件是一种位图文件 (.bmp), 用来表示面板上实际的 样板和它们的地址, 位图文件可以使用任何位图编辑器加以建立, 且通过使用 HT-LCDS 编辑菜单面板编辑命令, 可以提供一种设定 LCD 面板样板信息的方法 位图档是非必须的文件, 即使 LCD 面板图形文件不存在, 使用者也可以设定 LCD 面板样板信息 189

200 A/D with LCD 型单片机使用手册 设定 LCD 面板配置文件以下两个步骤用来设定面板配置文件 设定面板的配置, 包括 LCD 驱动器中 common 和 segment 的个数 面板的宽度和高度 ( 以象素为单位 ), 面板配置文件的路径, 还可以选择点矩阵形式 选择图形以及它们的位置, 这也就设定了图形与 COM/SEG 位置间的关系 设定面板的配置 可以通过 HT-LCDS File 菜单中的 New 命令进行面板配置的设定 接下来会显示面板配置对话框 在正确的设置了 LCD 驱动数据 COM/SEG 数 面板的宽度 高度以及图形路径后, 按下 [OK] 钮 完成设定面板配置后, 系统回到 Tools 菜单的 LCD 仿真器文件, 可以进行图形选择 面板配置对话框面板配置包括 : COM 和 SEG 设定 LCD 驱动器的 COMMON 总数和 SEGMENT 总数 各款单片机的默认值, 会在面板配置对话框显示时告知 请确保这些数值与单片机 LCD 驱动的实际设定数值一致 宽度和高度 以象素为单位表示面板显示屏的尺寸, 可以改变以调整其大小 面板配置文件的路径 使用 Browse 钮选择面板配置文件储存的路径, 或者与项目储存在同一路径下 点矩阵形式 仿真点矩阵类型的 LCD 面板 下图显示点矩阵显示屏 190

201 第七章 LCD 仿真器 注意 : 请不要设置与实际相应 LCD 驱动数不同的 COM 和 SEG 个数, 否则会发生不可预测的结果 选择图形及定位下面的方法说明如何选择图形以及为它定位的步骤 使用 HT-LCDS File 菜单 New 命令建立一个新的面板配置文件 设定面板的配置之后, 会显示 LCD 仿真对话框 接下来, 使用者从图形信息对话框中选择图形并设定 COM/SEG 的位置 在加入新的图形一节中对此有更详细的描述 使用 HT-LCDS File 菜单 Open 命令打开一个已有的面板配置文件 图形显示在 LCD 仿真对话框中的面板显示屏上, 图形文件名称则显示在 COM/SEG 表格中相应的位置上 使用者可以加入 / 删除 / 改变图形信息, 包括图形文件和图形位置 使用 HT-LCDS Edit 菜单 Panel Editor 命令打开一个面板图形文件 如果这个面板图形文件已经被设定, 则不用选择图形, 只需选择图形位置 在使用 Panel Editor 定义图形一节中对此部分有更详细的描述 加入新的图形 将光标移到 LCD 仿真器对话框中 COM/SEG 格子的位置, 双击鼠标 随后弹出图形信息对话框 在项目路径下的所有图形文件 (.bmp) 将显示在图形列表框中 Size 区域显示被选图形的位图尺寸,Com 和 Seg 区域表示这个图形所选择的 COM/SEG 位置数 这三个区域中的数据不能修改 从图形列表框内选择一个图形 ( 位图文件 ) 或者单击 Browse 钮选择其它路径下的图形 HT-LCDS 只使用双色位图文件作为图形的图象源 预览窗口放大显示所选取的图形 设定图形在显示屏上的 X/Y 位置 按下 [OK] 钮后回到 LCD 仿真器对话框, 然后单击 File 菜单的 Save 命令或是单击工具栏上的 Save 钮 面板文件此时已被建立或修改完成 191

202 A/D with LCD 型单片机使用手册 图案信息对话框 删除一个图形 选取欲删除图形的 COM/SEG 位置, 然后按下 [Delete] 钮或单击工具栏上的 Cut 钮 更换图形 首先删除选取的图形, 然后加入一个新的图形来更换原来的图形 或者, 选择需要更换图形的 COM/SEG 位置并双击鼠标 随后弹出图形信息对话框 从图形列表框内选取一个图形并按下 [OK] 钮 更改图形位置 使用 Select-Drag-Drop 的方法直接在显示屏上移动图形 或者, 选择需要更改位置图形的 COM/SEG 位置并双击鼠标 随后弹出图形信息对话框 设定新位置的 X Y 值并按下 [OK] 钮 完成以上操作并且系统回到 LCD 仿真器对话框后, 单击 HT-LCDS File 菜单的 Save 命令或单击工具栏上的 Save 钮 面板文件此时已被建立或修改完成 192

203 第七章 LCD 仿真器 如何加入使用者定义矩阵 HT-LCDS 支持映射 (File 菜单中 Import User matrix 命令 ), 在 LCD 面板的 COM/SEG 个数不等于 ROW/COL 个数的情况下, 可以帮助定义一个新的矩阵, 例如 : 假设 LCD 面板具有 2 COMs 和 6 SEGs, 要组成 3 ROWs 4 COLs 的矩阵, 映射关系如下所示 : COM0-SEG0 COM0-SEG1 COM0-SEG2 COM0-SEG3 COM1-SEG0 COM1-SEG1 COM1-SEG2 COM1-SEG3 COM0-SEG4 COM0-SEG5 COM1-SEG4 COM1-SEG5 对于上面矩阵的一个定义文件可以被定义如下 : ; MATRIX.DEF ; Comment line ROW=3 COLUMN=4 ; mapping syntax:row,col=>com,seg 0,0 => 0,0 ; Map Row0 co10 to COM0 SEG0 0,1 => 0,1 ; Map Row0 co11 to COM0 SEG1 0,2 => 0,2 ; Map Row0 co12 to COM0 SEG2 0,3 => 0,3 ; Map Row0 co13 to COM0 SEG3 1,0 => 1,0 ; Map Row0 co10 to COM1 SEG0 1,1 => 1,1 ; Map Row0 co11 to COM1 SEG1 1,2 => 1,2 ; Map Row0 co12 to COM1 SEG2 1,3 => 1,3 ; Map Row0 co13 to COM1 SEG3 2,0 => 0,4 ; Map Row0 co10 to COM0 SEG4 2,1 => 0,5 ; Map Row0 co11 to COM0 SEG5 2,2 => 1,4 ; Map Row0 co12 to COM1 SEG4 2,3 => 1,5 ; Map Row0 co13 to COM1 SEG5 193

204 A/D with LCD 型单片机使用手册 使用面板编辑器定义图形 HT-LCDS 提供一个完整的面板编辑接口去定义 LCD 面板图形, 如果面板图形文件已经画好, 则不必在面板上一个个的设定所有的图形文件, 唯一要做的是选择图形位置 LCD 编辑器 下面的步骤将说明如何对 LCD 面板上的所有图形进行图形位置的选择 选取 Edit 命令打开 Panel Editor( 图形编辑器 ), 然后使用 Panel Editor 进行面板配置的设定 在 Panel Editor 中选取 File 菜单中的 Open 命令, 打开面板图形文件 (.bmp) 注意 : 只支持双色位图 面板将显示在 LCD 编辑器的窗口上 使用双击鼠标或 drag-and-drop 的方式, 为每个 COM/SEG 选取图形 随后弹出储存图形对话框, 这时可以输入图形信息 对面板上的所有图形重复上述步骤 在对所有的图形设定完图形信息后, 回到面板编辑器窗口, 使用 File 菜单中 Save 命令储存所有的设定 退出面板编辑器, 回到 HT-LCDS, 此时的面板将显示新的设定 194

205 第七章 LCD 仿真器 使用批处理文件加入图形项目 通过使用 Edit 菜单中的 Add Item Batch 命令,HT-LCDS 提供从批处理文件中加入图形项目的方法 批处理文件是后缀名为.BTH 的文本文件 在批处理文件中的所有图形项目将定义图形文件名称以及它们的位置 在使用 Edit 菜单中的 Add Item Batch 命令选取一个批处理文件后,HT-LCDS 在面板的指定位置上加入批处理文件中描叙的所有图形 下面是一个.BTH 文件的例子 ; this is a comment line. ; item syntax:bmpfile.bmp, COM, SEG, X, Y CRYSTAL.BMP, 0, 2, 120, 30 FION.BMP, 2, 3, 200, 50 CLIN.BMP, 3, 2, 130, 90 STEVE.BMP, 4, 4, 20, 40 选择 LCD 面板的颜色 HT-LCDS 提供调色对话框, 可使用 HT-LCDS Configure 菜单中的 Set Panel Color 命令选择面板的颜色 LCD 仿真 在开始 LCD 仿真之前, 确定 HT-LCDS 参照到正确的面板配置文件 通过选择 Tools 菜单中的 LCD Simulator 命令, 即可进入 HT-LCDS 环境 当参照到相应的面板配置文件后, 单击 HT-LCDS 工具栏上的 S 钮开始 LCD 仿真 打开一个和当前项目不对应的面板配置文件并单击工具栏上的 S 钮 HT-LCDS 将会以这个参照到的面板配置文件开始 LCD 仿真 当 HT-LCDS 开始仿真时, 将会显示 LCD 仿真器窗口, 此时最近的 LCD 图形将被显示在面板显示屏上 停止仿真双击 LCD 仿真窗口的标题栏, 将使 HT-LCDS 回到编辑模式 195

HT46R47,HT46R22, HT46R23,HT46R24 A/D 型单片机使用手册 本使用手册版权为盛群半导体股份有限公司所有, 非经盛群半导体股份有限公司书面授权同意, 不得通过任何形式复制 储存或传输 目录 目录 第一部份单片机概论... 1 第一章硬件结构... 3 简介...3 特性...4 技术特性...4 内核特性...4 周边特性...5 选择表...5 系统框线图...6

More information

Microsoft Word - Ö¸Á.doc

Microsoft Word - Ö¸Á.doc 指令集说明 注 由于资源大小问题 其中以下几款 MCU 只有 62 条指令 其余均为 63 条指令 HT48CA0/HT48RA0A 无 RETI 指令 HT48R05A-1 无 TABRDL 指令 指令寻址方式有下面 5 种 立即寻址 此一寻址法是将立即的常数值紧跟在运算码 (opcode) 后 例如 MOV A, 33H ADD A, 33H 直接寻址 直接寻址的情況只允许在存储器之间作数据传送

More information

Microsoft Word - IO_hb_3rd_sim.doc

Microsoft Word - IO_hb_3rd_sim.doc HT48R10A-1, HT48R30A-1, HT48R50A-1, HT48R70A-1, HT48RU80 I/O 型单片机使用手册 二 六年六月第三版 Copyright 2006 by HOLTEK SEMICONDUCTOR INC. 本使用手册版权为盛群半导体股份有限公司所有, 非经盛群半导体股份有限公司书面授权同意, 不得通过任何形式复制 储存或传输 ii Cost-Effective

More information

HT48R10A-1/HT48R30A-1 HT48R50A-1/HT48R70A-1 I/O 型单片机使用手册 本使用手册版权为盛群半导体股份有限公司所有, 非经盛群半导体股份有限公司书面授权同意, 不得通过任何形式复制 储存或传输 目录 目录 第一部份单片机概论... 1 第一章硬件结构... 3 简介...3 特性...4 技术特性...4 内核特性...4 周边特性...5 选择表...5

More information

目录

目录 ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28

More information

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P HT46R/47R/48R/49R 系列 选型指南 HT46R22 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 19 位双向输入 / 输出口 1 个与输入 / 输出口线共用的外部输入 16 位具有 7 级预分频带溢出中断的可编程定时 / 计数器 内置石英晶体或 RC 振荡器 2048 14 位的程序存储器 PROM 64 8 位的数据存储器 RAM 支持发声的

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

General Description: Preliminary TTP916 Consumer IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC

General Description: Preliminary TTP916 Consumer IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC General Description: IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC 15K 300pF 256KHZ default on 32 function key Built-in TT6221/TT6222 decoder Provide

More information

untitled

untitled EDM12864-GR 1 24 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3 4. -------------------------------------------------------6

More information

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA 1K 4 SH6610C 4 OTP ROM 1K X 16 RAM 88 X 4-24 - 64 2.4V-5.5V - fosc = 30kHz - 4MHz, = 2.4V - 5.5V - fosc = 4MHz - 8MHz, = 4.5V - 5.5V 11 CMOS I/O 4 ( ) 8 / - 0 PORTA.0 ( / / ) - 0 - PORTB ( ) ( ) - 32.768kHz,

More information

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC LCD PIC 单片机解决方案 集成 LCD 驱动器模块的 PIC 单片机 www.microchip.com/lcd ,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC,

More information

HT48R05A-1/HT48R06A-1 Cost-Effective I/O 型单片机使用手册 本使用手册版权为盛群半导体股份有限公司所有, 非经盛群半导体股份有限公司书面授权同意, 不得通过任何形式复制 储存或传输 目录 目录 第一部份单片机概论... 1 第一章硬件结构... 3 简介...3 特性...4 技术特性...4 内核特性...4 周边特性...5 选择表...5 系统框线图...6

More information

12232A LED LED LED EL EL CCFL EL CCF

12232A LED LED LED EL EL CCFL EL CCF 12232A 0 50-20 +70-30 +85 LED LED LED EL EL CCFL EL CCF 122 x 32 1/32Duty 1/5Bias 6:00 STN( ), EL LED EL/100VAC 400HZ LED/4.2VDC 1 / VDD-VSS 0 6.5 V Ta=25 LCD VDD-V0 0 12.0 V V1 0 VDD V VDD-VSS - 4.75

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM33A0xx MCU 2017. 05 2.0 1 (http://www.fmsh.com/) 2.0 2 ... 3 1... 4 1.1... 4 1.2... 4 1.3... 5 1.3.1... 5 1.3.2... 5 1.4... 8 1.4.1 LQFP100... 8 1.4.2 LQFP80... 9 1.4.3... 9 2... 15 2.1 LQFP100... 15

More information

untitled

untitled 0755 85286856 0755 82484849 路 4.5V ~5.5V 流 @VDD=5.0V,

More information

Microsoft Word - sim6xF0xC-0225.doc

Microsoft Word - sim6xF0xC-0225.doc 8-pin 内置 EEPROM 增强型八位 FLASH 单片机 技术相关信息 应用范例 -HA0075S MCU 复位电路和振荡电路的应用范例 特性 CPU 特性 工作电压 : f SYS =8MHz:2.2V~5.5V f SYS =12MHz:2.7V~5.5V f SYS =20MHz:4.5V~5.5V V DD =5V, 系统时钟为 20MHz 时, 指令周期为 0.2µs 提供省电模式和唤醒功能,

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

Microsoft Word - sim46x53_54av110.doc

Microsoft Word - sim46x53_54av110.doc A/D 型八位 OTP 单片机 盛群知识产权政策 专利权盛群半导体公司在全球各地区已核准和申请中之专利权至少有 6 件以上, 享有绝对之合法权益 与盛群公司 MCU 或其它产品有关的专利权并未被同意授权使用, 任何经由不当手段侵害盛群公司专利权之公司 组织或个人, 盛群将采取一切可能的法律行动, 遏止侵权者不当的侵权行为, 并追讨盛群公司因侵权行为所受之损失 或侵权者所得之不法利益 商标权盛群之名称和标识

More information

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi MICROCHIP EVM Board : APP001 1-1. APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pin 16 I/O Extension Interface 1-2. APP001 Block_A Block_B

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机比较器原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系列单片机的比较器内部结 构 STC 单片机比较器结构 从图中可以看出, 比较器正端输入 CMP+ 的输入电压来自单片机的 P5.5

More information

Microsoft Word - ha0013s.doc

Microsoft Word - ha0013s.doc 文件编码 :HA0013s 简介 : 本文介绍利用 8 位微控制器控制 DV16100NRB 液晶显示驱动器的方法 该 LCM 由内置的 Hitachi HD44780 进行驱动及控制 本文应用中, 着重考虑如何使微控制器产生正确的信号以符合 LCM 所需的时序 若要获得详细的时序及指令信息, 请查阅 LCM 厂商的资料 LCM 能以 4 位或 8 位模式工作 在 4 位模式下, 传送一个字符或一条指令需两个传输周期完成

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

RESET OSCO OSCI OSC CPU WDTEN RC RESET PRESCALER PORTA (4-BITS) WATCHDOG TIMER Power on PORTB (4-BITS) PORTA [0:3] PORTB [0:3] LPD PORTC (4-BITS) LPDO

RESET OSCO OSCI OSC CPU WDTEN RC RESET PRESCALER PORTA (4-BITS) WATCHDOG TIMER Power on PORTB (4-BITS) PORTA [0:3] PORTB [0:3] LPD PORTC (4-BITS) LPDO 4K / I/O 4 SH6610C 4 OTPROM 4K X 16 SH69P25 MASK ROM 4K X 16 SH69K25 RAM 192 X 4-32 - 160 2.4V - 5.5V 5.0V 22 I/O 4 8 / PORTA-PORTF / - Timer0 - PORTB & PORTC / - 32.768kHz 4MHz - 400kHz 4MHz - RC 400kHz

More information

mdt1030

mdt1030 深圳市英锐恩科技有限公司 第 1 页 单片机集成方案全方位解决服务商 优质智能电子产品 芯 方案解决商 Micon MDT1030 产品用户参考手册 全球销售及服务联系信息 : 深圳市英锐恩科技有限公司 ENROO-TECH(SHENZHEN)CO.,LTD 中国 深圳市福田区福华路嘉汇新城汇商中心 27 楼 2701 室 Enroo-Tech Technologies CO., Limited Light-Tech

More information

电源管理类产品

电源管理类产品 CN705/706/707/708/813 CN705/706/707/708/813 CN705/706/707/708/813 5.0 0.1 1.22 5V 52 CN705/706/707/708/813 CN705/706/813 1.6 CN707/708 CN813 8 DIP8 8 CN705/706 CN705/706/707/708/813 8 MR 1 DIP8 8 SOP8

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

HM705/6/813 WDI WDO MR GND I/O NMI INT MCU 1 HM V HM V HM813L 4.65V HM V HM V HM813M

HM705/6/813 WDI WDO MR GND I/O NMI INT MCU 1 HM V HM V HM813L 4.65V HM V HM V HM813M 705/706/707/708/813 HM705/706/707/708/813 1.15 HM705/706/707/708/813 2.6 5.0 0.1 1.22 5V 52 200 HM705/706/707/708/813 1.6 HM705/706/813 1.6 705/706/707/708/813 HM707/708 HM813 8 DIP8 8 SOP8 HM705/706 :

More information

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica CP Chip Power ARM Cortex-M3 (STM32F) ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplication and hardware

More information

untitled

untitled EDM12832-08 : 25-1 : 116600 : (0411)7612956 7632020 7631122 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

R/W

R/W (HD44780 KS0066 ) 3 3 5 6 10 14 HD44780/KS0066 16 2 LCM 8 1 40 4 LCD HD44780/KS0066 HD44100 IC PCB 0.1 CMOS 1. 2. 3. 4. 5. RH60% 6. 1. 2. 3. PCB 3 4. 5. 6. 1. 280 C 2. 3 4s 3. 4. 5. 3 5 1. 2. IC 3. DC-DC

More information

DL1621-1

DL1621-1 General Description: DL1621-1, 含 LCD 的控制线路, 搭配 MCU 来使用, 将使使用者的成本降低, 以及应用更加. 宽广 Features: 工作电压 2.4V-5.5V 系统频率 : - 内建 RC 振荡器 (256Khz) - 外挂 32768Hz 晶振 - 外灌 256Khz 输入 ( 由 OSCI 脚 ) 提供简单 3 pins 串接接口 (CKRB/ CKWB/

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

DS_MM32P021_Ver1.9.0

DS_MM32P021_Ver1.9.0 产品手册 Datasheet MM32P021 32 位基于 ARM Cortex M0 核心的微控制器 版本 :1.9.0 保留不通知的情况下, 更改相关资料的权利 目录 1. 总介... 5 1.1 概述... 5 1.2 产品特性... 5 2. 规格说明... 6 2.1 器件对比... 6 2.2 功能简述... 6 3. 引脚定义... 7 3.1 引脚配置... 7 3.2 引脚描述...

More information

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集 XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 2.400--2.483GHz 世界通用 ISM 频段, 它集成射频收发通路 频率发生器 晶体振荡器 调制解调器等功能模块, 并且支持一对多组网和带 ACK 的通信模式

More information

第10章:CCP捕捉/比较/脉宽调制

第10章:CCP捕捉/比较/脉宽调制 第 10 章 :CCP 捕捉 / 比较 / 脉宽调制 CCP 模块功能 捕捉功能模式 比较功能模式 脉宽调制功能 1 CCP 模块功能 PIC 2 捕捉 比较 脉宽调制模块 CCP1 CCP2(Capture/Compare/PWM) 16 CCPR1 CCPR2 模块 功能 功能 TMR1 TMR2 2 CCP 模块功能 CCP 模块 3 模式 : 捕捉 式 比较 式 脉宽调制 式 捕捉功能 捕捉

More information

四位微控制器ML64168_ _.doc

四位微控制器ML64168_ _.doc SSSC /4168P 2005 8 4 4, (ADC), LCD Driver, (Buzzer), 1 3 CPU17 CPU 26 33 42 45 48 73 79 85 89 A/D 92 111 125 128 131 SSU4168P 133 143 A: / 153 B: 156 C: 158 D: 160 E: 161 F: 163 G: PAD 167 2 ,, 11 4 CMOS

More information

目录 特性...5 CPU 特性... 5 周边特性... 5 概述...5 选型表...6 方框图...6 引脚图...6 引脚说明...7 极限参数...8 直流电气特性...9 交流电气特性...10 上电复位特性...10 系统结构 时序和流水线结构 程序计数器...

目录 特性...5 CPU 特性... 5 周边特性... 5 概述...5 选型表...6 方框图...6 引脚图...6 引脚说明...7 极限参数...8 直流电气特性...9 交流电气特性...10 上电复位特性...10 系统结构 时序和流水线结构 程序计数器... HT48R002/HT48R003 版本 : V1.11 日期 : 目录 特性...5 CPU 特性... 5 周边特性... 5 概述...5 选型表...6 方框图...6 引脚图...6 引脚说明...7 极限参数...8 直流电气特性...9 交流电气特性...10 上电复位特性...10 系统结构... 11 时序和流水线结构... 11 程序计数器... 12 堆栈... 12 算术逻辑单元

More information

Features

Features 特色 工作电压 : 2.4V~5.2V 内建 256KHz RC oscillator 提供 1/4 偏压 1/8 COM 周期 省电模式 48x8 LCD 駆动器 内建 48x8 bit 显示内存 3-wire serial interface 软件程控 资料及指令模式 自动增加读写地址 VLCD 脚位可用来调整 LCD 输出电压 内建电阻式偏压产生线路 8 种 WDT 的基频选择 定时器及 WDT

More information

Microsoft Word - sim48x050608_1v151.doc

Microsoft Word - sim48x050608_1v151.doc 经济型输入 / 输出八位单片机 盛群知识产权政策 专利权 盛群半导体公司在全球各地区已核准和申请中之专利权至少有 16 件以上, 享有绝对之合法权益 与盛群公司 MCU 或其它产品有关的专利权并未被同意授权使用, 任何经由不当手段侵害盛群公司专利权之公司 组织或个人, 盛群将采取一切可能的法律行动, 遏止侵权者不当的侵权行为, 并追讨盛群公司因侵权行为所受之损失 或侵权者所得之不法利益 商标权 盛群之名称和标识

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 1. 介绍 Application Notes EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 * 周期, 其余为单指令周期 ( 部分第一代芯片 JMP CALL RET RETL RETI JBS JBC JZ JZA DJZ DJZA 指令为 2

More information

行业

行业 PCL-1800 PCL-1800 1.1...2 1.1.1 1K FIFO...2 1.1.2...2 1.1.3 16...3 1.1.4...3 1.1.5...3 1.1.6...3 1.2...3 1.3...4 1.4...5 2.1...5 2.2...6 2.2.1...6 2.2.2...6 2.2.3 D/A...7 2.2.4...7 2.2.5 TRIG0 GATE0...8

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

?€?舐?喃縑?

?€?舐?喃縑? 增强 A/D 型八位 OTP 单片机 HT46R064B/065B/066B 版本 :V.00 日期 : 目录 目录 技术相关信息... 特性... 概述... 2 选型表... 2 方框图... 2 引脚图... 3 引脚说明... 4 HT46R064B... 4 HT46R065B... 5 HT46R066B... 6 极限参数... 7 直流电气特性... 8 交流电气特性... 9 ADC

More information

技术相关信息

技术相关信息 8-Bit 触摸按键式 Flash 单片机 BS45F2 版本 :V02 日期 :202/05/4 www.greenmcu.com 目录 目 录 第 章概述及其特性.... 特性..... CPU 特性.....2 周边特性....2 概述....3 方框图... 2.4 引脚图... 2.5 引脚说明... 3.6 极限参数... 3.7 直流电气特性... 4.8 交流电气特性... 4.9

More information

目录 目录 技术相关信息... 特性... CPU 特性... 周边特性... 概述... 选型表... 2 方框图... 2 引脚图... 3 引脚说明... 4 HT48R063B... 4 HT48R064B... 5 HT48R065B, HT48R066B... 6 极限参数... 7 直

目录 目录 技术相关信息... 特性... CPU 特性... 周边特性... 概述... 选型表... 2 方框图... 2 引脚图... 3 引脚说明... 4 HT48R063B... 4 HT48R064B... 5 HT48R065B, HT48R066B... 6 极限参数... 7 直 增强 I/O 型八位 OTP 单片机 HT48R063B/064B/065B/066B 版本 : V.0 日期 : 目录 目录 技术相关信息... 特性... CPU 特性... 周边特性... 概述... 选型表... 2 方框图... 2 引脚图... 3 引脚说明... 4 HT48R063B... 4 HT48R064B... 5 HT48R065B, HT48R066B... 6 极限参数...

More information

GH1220 Hall Switch

GH1220 Hall Switch Unipolar Hall Switch - Medium Sensitivity Product Description The DH220 is a unipolar h all switch designed in CMOS technology. The IC internally includes a voltage regulator, Hall sensor with dynamic

More information

untitled

untitled EDM16080-01 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3

More information

Microsoft Word - ET6621.doc

Microsoft Word - ET6621.doc Etek Microelectronics ET6621 LCD 控制驱动电路 概述 ET6621 是用来对 MCU 的 I/O 口进行扩展的外围设备 显示矩阵为 32 4, 是一个 128 点阵式存储器映射多功能 LCD 驱动电路 ET6621 的软件特性使它很适合应用于 LCD 显示, 包括 LCD 模块和显示子系统 在主控制器和 ET6621 之间的接口应用只需要 3 或 4 个端口 Power

More information

行业

行业 PCI-1710 1.1...2 1.1.1...2 1.1.2...2 1.1.3 FIFO( )...2 1.1.4...2 1.1.5...2 1.1.6 16 16...3 1.1.7...3 1.2...3 1.3...3 2.1...3 2.2...4 2.2.1...4 2.2.2...5 2.3...9 2.3.1...10 2.3.2... 11 2.3.3...12 2.3.4...12

More information

行业

行业 PCL-818HD/HG/L PCL-818HD/HG/L 1.1...2 1.1.1 /...2 1.1.2 ID...2 1.2...3 1.3...3 2.1...3 2.2...3 2.2.1...4 2.2.2...4 2.2.3 DMA...5 2.2.4...5 2.2.5 D/A...5 2.2.6...6 2.2.7 EXE.trigger GATE0...6 2.2.8 FIFO

More information

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING 前言 - Andrew Payne 目录 1 2 Firefly Basics 3 COMPONENT TOOLBOX 目录 4 RESOURCES 致谢

More information

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax) 2018 9 29 龙芯 版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) 010-62546668 (Fax) 010-62600826 阅读指南 龙芯 1C101 处理器数据手册 龙芯 1C101 修订历史 序号 更新日期 版本号

More information

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请 加热器用固态继电器 单相 CSM_-Single-phase_DS_C 带纤细型散热器的一体式小型 SSR 备有无过零触发型号, 用途广泛 符合 RoHS 标准 包含无过零触发型号, 产品线齐全 输出回路的抗浪涌电压性能进一步提高 根据本公司的试验条件 小型 纤细形状 除了 DIN 导轨安装, 还可进行螺钉安装 获取 UL CSA EN 标准 TÜV 认证 请参见 共通注意事项 种类 关于标准认证机型的最新信息,

More information

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

技术相关信息

技术相关信息 8-Bit 带 A/D 触摸按键式 Flash 单片机 BS45F16 版本 :V06 日期 :2013/10/15 www.greenmcu.com 目录 目录第 1 章简述... 1 1.1 特性... 1 1.1.1 CPU 特性... 1 1.1.2 周边特性... 1 1.2 概述... 2 1. 3 方框图... 3 1.3.1 引脚图... 3 1.3.2 引脚说明... 5 1.3.3

More information

<4D F736F F D20C9EEDBDACAD0B6ABB3CFD0C5B5E7D7D3BFC6BCBCD3D0CFDEB9ABCBBEBDE9C9DCBCB0BFE2B4E6>

<4D F736F F D20C9EEDBDACAD0B6ABB3CFD0C5B5E7D7D3BFC6BCBCD3D0CFDEB9ABCBBEBDE9C9DCBCB0BFE2B4E6> 台湾合泰 HOLTEK 型号品牌封装说明 HT7022A-1#-SOT89 HOLTEK SOT89 2.2V N 沟开漏电压监测器 HT7022A-1-TO92 HOLTEK TO92 2.2V N 沟开漏电压监测器 HT7024A-1#-SOT89 HOLTEK SOT89 2.4V N 沟开漏电压监测器 HT7024A-1-TO92 HOLTEK TO92 2.4V N 沟开漏电压监测器 HT7027A-1#-SOT89

More information

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C AUTOMATIC TROLLEY H K Hwang K K Chen J-S Lin S-C Wang M-L Li C-C Lin W-B Lin Dept. Of Electrical Engineering Far East College ABSTRACT This paper proposes an automatic trolley which can move automatically

More information

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63> 实验四 ARM 的 I/O 接口实验 一 实验目的 1. 了解 S3C44B0X 的通用 I/O 接口 2. 掌握 I/0 功能的复用并熟练的配置, 进行编程实验二 实验设备 1. EL-ARM-830 教学实验箱,PentiumII 以上的 PC 机, 仿真器电缆 2. PC 操作系统 WIN98 或 WIN2000 或 WINXP,ARM SDT2.5 或 ADS1.2 集成开发环境, 仿真器驱动程序

More information

使用说明书 DT4221 DT4222 数字万用表 DIGITAL MULTIMETER 2013 年 11 月第一版 DT4221A982-00(A981-00) 13-11H CN ...1...1...2...3...7 1 11 1.1... 11 1.2...12 1.3...16 1.4...17 2 19 2.1...19 2.2 /...20 2.3...22 2.4...25...

More information

Application Note Transient Voltage Suppressors (TVS) for 表 1 VISHAY 的 SM6T 系列的电特性 25 C 型号 击穿电压 器件标识码 V BR AT I T I T 测试电流 (ma) 关态电压 V RM 漏电流 I RM AT V

Application Note Transient Voltage Suppressors (TVS) for 表 1 VISHAY 的 SM6T 系列的电特性 25 C 型号 击穿电压 器件标识码 V BR AT I T I T 测试电流 (ma) 关态电压 V RM 漏电流 I RM AT V VISHAY GE NERAL SEMICONDUCTOR 瞬态电压抑制器 应用笔记 用于汽车电子保护的瞬态电压抑制器 (TVS) Soo Man (Sweetman) Kim, Vishay I) TVS 的重要参数 TVS 功率等级 TVS Vishay TVS 10 μs/1000 μs (Bellcore 1089) 1 TVS ESD 8 μs/20 μs 2 1 10 µs 10 µs/1000

More information

untitled

untitled EDM12864-03 : 25-1 : 116600 : (0411)7612956 7632020 7612955 : (0411)7612958 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

行业

行业 PCI-1711/1711L 1.1...2 1.1.1...2 1.1.2...2 1.1.3 FIFO...2 1.1.4...2 1.1.5 16 16...3 1.2...3 2.1...3 2.2...3 2.2.1... 2.2.2...8 2.3...10 2.3.1...10 2.3.2... 11 2.3.3...12 2.3.4...13 2.4.5...14 3.1...16

More information

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模 新一代超低功耗 16 位单片机 TI MSP430 系列 美国 TI 公司的 MSP430 系列单片机可以分为以下几个系列 X1XX X3XX X4XX 等等 而且 在不断发展 从存储器角度 又可分为 ROM C 型 OTP P 型 EPROM E 型 Flash Memory F 型 系列的全部成员均为软件兼容 可以方便地在系列各型号间移植 MSP430 系列单片机 的 MCU 设计成适合各种应用的

More information

微處理機期末專題

微處理機期末專題 微 處 理 機 期 末 專 題 自 動 鋼 琴 組 員 :b92611004 羅 鈞 瑋 b92611008 吳 妍 儂 b92611038 吳 韋 靜 b92611042 林 佳 穎 一 簡 介 本 組 的 主 題 是 自 動 鋼 琴 在 播 放 音 樂 的 同 時, 鋼 琴 會 自 動 按 下 琴 鍵, 被 按 下 的 琴 鍵 所 對 應 到 的 音 階, 就 是 正 在 撥 放 的 樂 曲 的

More information

目录 特性...7 CPU 特性... 7 周边特性... 8 概述...9 选型表...9 方框图...10 引脚图 引脚说明...15 极限参数...21 直流电气特性...22 交流电气特性...24 ADC 特性...25 比较器电气特性...26 上电复位特性...26 系统结

目录 特性...7 CPU 特性... 7 周边特性... 8 概述...9 选型表...9 方框图...10 引脚图 引脚说明...15 极限参数...21 直流电气特性...22 交流电气特性...24 ADC 特性...25 比较器电气特性...26 上电复位特性...26 系统结 HT66F20 HT66F30/HT66FU30 HT66F40/HT66FU40 HT66F50/HT66FU50 HT66F60/HT66FU60 版本 : V.2.40 日期 : 目录 特性...7 CPU 特性... 7 周边特性... 8 概述...9 选型表...9 方框图...10 引脚图... 11 引脚说明...15 极限参数...21 直流电气特性...22 交流电气特性...24

More information

Chroma 61500/ bit / RMS RMS VA ()61500 DSP THD /61508/61507/61609/61608/ (61500 ) Chroma STEP PULSE : LISTLIST 100 AC DC

Chroma 61500/ bit / RMS RMS VA ()61500 DSP THD /61508/61507/61609/61608/ (61500 ) Chroma STEP PULSE : LISTLIST 100 AC DC MODEL 61509/61508/61507/ 61609/61608/61607 PROGRAMMABLE AC POWER SOURCE MODEL 61509/61508/61507/ 61609/61608/61607 61509/61609: 6kVA 61508/61608: 4.5kVA 61507/61607: 3kVA : 0-175V/0-350V/Auto : DC, 15Hz-2kHz

More information

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7 上海东软载波微电子有限公司 SMART www.essemi.com SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input 06 6 6 HR7PPSC HR7PPSD SOP SOP6 +input 06 6 +input 06 6 6 6 HR7PERB SSOP0 7+input 06 6 6 HR7PESC

More information

Applications

Applications 概述 FM1905 是 24 点 内存映象和多功能的 LCD 驱动器,FM1905 的软件配置特性使它适用于多种 LCD 应用场合, 包括 LCD 模块和显示子系统 用于连接主控制器和 FM1905 的管脚只有 3 条,FM1905 还有一个节电命令用于降 低系统功耗 特点 工作电压 3.0 ~5.0V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入 可选 1/2

More information

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D 控制器 thert thert thert 接下一个电机驱动模块 () 接下一个电机驱动模块 () 电机驱动模块 电机驱动模块 电源模块 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () X 0 X 0 4 /RK /RK 注 注 制动电阻阻值 Ω Φ 80: 适用电机驱动模块型号 8-M-XXXX--XX Φ : 适用电机驱动模块型号

More information

单片机应用编程技巧(专家:邓宏杰)

单片机应用编程技巧(专家:邓宏杰) 编 者 注 : 本 文 件 为 电 子 工 程 专 辑 网 站 编 辑 部 原 创, 电 子 工 程 专 辑 享 有 本 文 章 完 全 著 作 权, 如 需 转 载 该 文 章, 必 须 经 过 电 子 工 程 专 辑 网 站 编 辑 部 同 意 联 系 电 子 工 程 专 辑 网 站 编 辑 部, 请 发 信 至 eetcol@globalsources.com 单 片 机 应 用 编 程 技

More information

行业

行业 PCI-1716/1716L 1.1...2 1.1.1...2 1.1.2 / /SD*/BU*...2 1.1.3 FIFO( )...2 1.1.4...2 1.1.5 16 16...3 1.1.6...3 1.1.7 ID...3 1.2...3 2.1...3 2.2...4 2.2.1...4 2.2.2...6 2.3... 11 2.3.1... 11 2.3.2...12 2.3.3...13

More information

Microsoft Word - LD5515_5V1.5A-DB-01 Demo Board Manual

Microsoft Word - LD5515_5V1.5A-DB-01 Demo Board Manual Subject LD5515 Demo Board Model Name (5V/1.5A) Key Features Built-In Pump Express TM Operation Flyback topology with PSR Control Constant Voltage Constant Current High Efficiency with QR Operation (Meet

More information

Microsoft Word - P SDV series.DOC

Microsoft Word - P SDV series.DOC 片式压敏电阻器 SDV 系列 Chip SDV Series Operating Temp. : -55 ~ +125 特征 SMD 结构适合高密度安装 优异的限压比, 响应时间短 (

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

More information

() () () () () () () () DDRAM () II

() () () () () () () () DDRAM () II 液晶模块说明书 SPEC NO YM2232A REV NO. 液晶显示模块产品说明书 产品类型 : 产品型号 : 产品描述 : 标准产品 YM2232A 22x32 图形点阵模块, 控制器 :SED52,LED 背光 客户名称 : 客户确认 : 编写 : Dexun Zou 审核 : HCC 批准 : Jingxi Yang 发行日期 : 22.8 大连佳显电子有限公司 地址 : 大连市沙河口区工华街

More information

第 2 頁 (a) 擔 任 機 場 擴 建 統 籌 辦 總 監 的 首 席 政 府 工 程 師 職 位 第 3 點 ) ; (b) 擔 任 ( 機 場 擴 建 統 籌 辦 ) 的 首 長 級 丙 級 政 務 官 職 位 ; 以 及 (c) 擔 任 總 助 理 ( 機 場 擴 建 統 籌 辦 ) 的

第 2 頁 (a) 擔 任 機 場 擴 建 統 籌 辦 總 監 的 首 席 政 府 工 程 師 職 位 第 3 點 ) ; (b) 擔 任 ( 機 場 擴 建 統 籌 辦 ) 的 首 長 級 丙 級 政 務 官 職 位 ; 以 及 (c) 擔 任 總 助 理 ( 機 場 擴 建 統 籌 辦 ) 的 財 務 委 員 會 人 事 編 制 小 組 委 員 會 討 論 文 件 2015 年 11 月 4 日 總 目 158- 政 府 總 部 : 運 輸 及 房 屋 局 ( 運 輸 科 ) 分 目 000 運 作 開 支 請 各 委 員 向 財 務 委 員 會 提 出 下 述 建 議, 即 由 財 務 委 員 會 批 准 當 日 起, 在 運 輸 及 房 屋 局 運 輸 科 機 場 擴 建 工 程 統

More information

IEC A( ) B C D II

IEC A( ) B C D II ICS 13.120 K 09 GB 4706.1 2005/IEC 60335-1:2004(Ed4.1) 1 Household and similar electrical appliances- Safety General requirements IEC60335-1 2004 Ed4.1,IDT 2005-08-26 2006-08-01 IEC 1 2 3 4 5 6 7 8 9 10

More information

D/A DAC ( 1us) (10~20 ) DAC0832 1

D/A DAC ( 1us) (10~20 ) DAC0832 1 D/A DAC0832 8 ( 1us) (10~20 ) DAC0832 1 1. 20 DI7~DI0 ILE 8 8 DAC 8 D/A LE LE & RFB VREF IOUT2 IOUT1 RFB CS WR1 XFER WR2 & & AGND VCC DGND 2 DI7~DI0 ILE & 8 LE 8 DAC LE 8 D/A RFB V REF IOUT2 IOUT1 R FB

More information

1 CPU

1 CPU 2000 Tel 82316285 82317634 Mail liuxd@buaa.edu.cn 1 CPU 2 CPU 7 72 A B 85 15 3 1/2 M301 2~17 : 3/4 1/2 323 IBM PC 1. 2. 3. 1. 2. 3. 1.1 Hardware Software 1.2 M3 M2 M1 1.2 M3 M1 M2 M2 M1 M1 M1 1.2 M3 M1

More information

PowerPoint Presentation

PowerPoint Presentation 7.2 并行接口 二. 可编程并行接口芯片 8255A 的功能及其应用 与 CPU 一侧相连的引脚 D0 PA0 ~ ~ ~ ~ ~ D7 PA7 RESET PC7 WR RD PC4 PC3 PC0 A0 PB0 A1 PB7 CS PA 口 PC 口上半部 PC 口下半部 PB 口 A 组 B 组 与 I/O 设备相连的引脚 7.2 并行接口二. 可编程并行接口芯片 8255A 的功能及其应用

More information

untitled

untitled 0755-82134672 Macroblock MBI6655 1 LED Small Outline Transistor 1A 3 LED 350mA 12V97% 6~36 Hysteretic PFM 0.3Ω GSB: SOT-89-5L (Start-Up) (OCP) (TP) LED Small Outline Package 5 MBI6655 LED / 5 LED MBI6655

More information

untitled

untitled LCD EDM12864HBSL-ALC-G : 25-1 : 116600 : (0411)7612956 7632020 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

PIC16F F MPLAB 08 16F LED 15 LED

PIC16F F MPLAB 08 16F LED 15 LED PIC16F877 PIC16F877 03 16F877 05 06 MPLAB 08 16F877 13 LED 15 LED 17 20 24 2 PIC16F877 PIC16F877 DIP VDD VSS CLOCK CPU :,AND,OR,XOR ROM: CPU ROM RAM: CPU,CPU I/O:CPU, CPU,, 16F877 RAM 512 128 Bank Bank

More information

AT89C2051中文资料.doc

AT89C2051中文资料.doc 图形点阵液晶显示模块使用手册 TG12864C(L) 广州捷胜吉电子科技 地址 : 广州市天河区天河路 561# 新赛格电子城 B2226 电话 :(020)33550997 13829772038 网址 :WWW.GZJSJDZ.COM E-mail:CJKD@21CN.COM 目 录 ( 一 ) 概述 (1) ( 二 ) 外形尺寸图 (1) ( 三 ) 模块主要硬件构成说明 (2) ( 四 )

More information

穨ecr2_c.PDF

穨ecr2_c.PDF i ii iii iv v vi vii viii 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 26 27 2 28 29 30 31 32 33 34 35 36 37 38 39 40 3 4 41 42 43 5 44 45 46 6 47 48 49 50 51 52 1 53 2 54 55 3 56

More information

電腦相關罪行跨部門工作小組-報告書

電腦相關罪行跨部門工作小組-報告書 - ii - - iii - - iv - - v - - vi - - vii - - viii - (1) 2.1 (2) (3) 13.6 (4) 1.6 (5) 21 (6) (7) 210 (8) (9) (10) (11) ( ) ( 12) 20 60 16 (13) ( ) (

More information

i

i i ii iii iv v vi vii viii ===== 1 2 3 4 5 6 7 8 9 10 ==== 11 12 13 14 15 16 17 18 19 ==== ==== 20 .. ===== ===== ===== ===== ===== ======.. 21 22 ===== ===== ===== ===== 23 24 25 26 27 28 29 ==== ====

More information

发展党员工作手册

发展党员工作手册 发 展 党 员 工 作 问 答 目 录 一 总 论...9 1. 发 展 党 员 工 作 的 方 针 是 什 么? 如 何 正 确 理 解 这 个 方 针?... 9 2. 为 什 么 强 调 发 展 党 员 必 须 保 证 质 量?... 9 3. 如 何 做 到 慎 重 发 展?... 10 4. 如 何 处 理 好 发 展 党 员 工 作 中 的 重 点 与 一 般 的 关 系?...11 5.

More information

i

i 9 1 2 3 4 i 5 6 ii iii iv v vi vii viii 1 1 1 2 3 4 2 5 6 2 3 2.10 ( 2.11 ) ( 2.11 ) ( 2.9 ) 7 8 9 3 10 5% 2% 4 11 93% (2001 02 2003 04 ) ( ) 2,490 (100%) 5 12 25% (2.57% 25%) 6 (2001 02 2003 04 ) 13 100%

More information

39898.indb

39898.indb 1988 4 1998 12 1990 5 40 70.................................................. 40.............................................................. 70..............................................................

More information

33023A.book(31005A_cn.fm)

33023A.book(31005A_cn.fm) 第 5 章 CPU 和 ALU 目录 本章包括下面一些主要内容 : 5. 简介...5-2 5.2 指令的一般格式... 5-4 5.3 中央处理单元 (CPU)... 5-4 5.4 指令时钟... 5-4 5.5 算术逻辑单元 (ALU)... 5-5 5.6 状态寄存器... 5-6 5.7 OPTION_REG 寄存器... 5-8 5.8 电源控制寄存器... 5-9 5.9 设计技巧...

More information

目录 特性...6 CPU 特性... 6 周边特性... 6 概述...7 选型表...8 方框图...8 引脚图...9 引脚说明...10 极限参数...13 直流电气特性...13 交流电气特性...15 ADC 特性...16 上电复位特性...17 系统结构...18 时序和流水线结构.

目录 特性...6 CPU 特性... 6 周边特性... 6 概述...7 选型表...8 方框图...8 引脚图...9 引脚说明...10 极限参数...13 直流电气特性...13 交流电气特性...15 ADC 特性...16 上电复位特性...17 系统结构...18 时序和流水线结构. BS84B08A-3/BS84C12A-3 版本 : V1.20 日期 : 2016-08-25 目录 特性...6 CPU 特性... 6 周边特性... 6 概述...7 选型表...8 方框图...8 引脚图...9 引脚说明...10 极限参数...13 直流电气特性...13 交流电气特性...15 ADC 特性...16 上电复位特性...17 系统结构...18 时序和流水线结构...

More information

A (QFP-48-12x ) RANGE IF70K AL-OUT AL-SIG VSS CLKFREQ-SEL HR-SET MIN-SET AM/FM-SEL AL-DISP A AL-

A (QFP-48-12x ) RANGE IF70K AL-OUT AL-SIG VSS CLKFREQ-SEL HR-SET MIN-SET AM/FM-SEL AL-DISP A AL- AM/FM SC361 0 AM/FM 12 CMOS QFP-48-12x12-0.8 FM 150M Hz AM 30 MHz LCD 3 13 1/3 4 32.768kHz FM 10.7 MHz 70 khz AM 455kHz 12 1.8V ~ 3.3V QFP44-10 x10-0.8 A B C D QFP-48-12x12-0.8 QFP-44-10x10-0.8 COB (QFP

More information