文档库 最新最全的文档下载
当前位置:文档库 › 输入输 出型八位单片机输入

输入输 出型八位单片机输入

输入输 出型八位单片机输入
输入输 出型八位单片机输入

HT48R10A-1/HT48C10-1 输入/输出型八位单片机

盛群知识产权政策

专利权

盛群半导体公司在全球各地区已核准和申请中之专利权至少有160件以上,享有绝对之合法权益。与盛群公司MCU 或其它产品有关的专利权并未被同意授权使用,任何经由不当手段侵害盛群公司专利权之公司、组织或个人,盛群将采取一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨盛群公司因侵权行为所受之损失、或侵权者所得之不法利益。

商标商标权权

盛群之名称和标识、Holtek 标识、HT-IDE 、HT-ICE 、Marvel Speech 、 Music Micro 、 Adlib Micro 、 Magic V oice 、 Green Dialer 、 PagerPro 、 Q-V oice 、 Turbo V oice 、 EasyV oice 和 HandyWriter 都是盛群半导体公司在台湾地区和其它国家的注册商标。

著作权

Copyright ? 2007 by HOLTEK SEMICONDUCTOR INC.

规格书中所出现的信息在出版当时相信是正确的,然而盛群对于规格内容的使用不负责任。文中提到的应用其目的仅仅是用来做说明,盛群不保证或不表示这些应用没有更深入的修改就能适用,也不推荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救生、维生器件或系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请参考我们的网址https://www.wendangku.net/doc/b94812976.html,; https://www.wendangku.net/doc/b94812976.html,

HT48R10A-1/HT48C10-1

技术相关信息

· 工具信息

· FAQs

· 应用范例

-HA0003S HT48 & HT46 MCU与HT93LC46的通信

-HA0004S HT48 & HT46 MCU UART的软件实现方法

-HA0013S HT48 & HT46 MCU LCM接口设计

-HA0021S HT48 MCU输入/输出口的使用

-HA0055S 2^12 Decoder (8+4, 对应HT12E)

特性

· 工作电压:

fsys = 4MHz:2.2V~5.5V

fsys = 8MHz:3.3V~5.5V

· 低电压复位功能

· 最多可有21个双向输入/输出口

· 1个与输入/输出共用引脚的外部中断输入· 8位可编程定时/计数器,具有溢出中断和8级预分频器

· 内置晶体和RC振荡电路、内置RC振荡· 可接32768Hz晶振用于计时

· 看门狗定时器

· 1024×14程序存储器ROM · 64×8数据存储器RAM

· 一组蜂鸣器驱动并支持PFD

· HALT和唤醒功能可减少功耗

· 在VDD=5V,系统频率为8MHz时,指令周期为0.5μs

· 所有指令在1或2个指令周期内完成

· 查表指令,表格内容字长14位

· 4层硬件堆栈

· 位操作指令

· 63条指令

· 24-pin SKDIP/SOP封装

概述

HT48R10A-1/HT48C10是一款八位高性能精简指令集单片机,专为多输入输出控制的产品设计。掩膜版芯片HT48C10-1在引脚和功能方面,都与OTP版芯片HT48R10A-1完全相同。

拥有低功耗、I/O口稳定性高、定时器功能、振荡选择、省电和唤醒功能、看门狗定时器、蜂鸣器驱动、以及低价位等优势,使此款多功能芯片可以广泛地适用于各种应用,例如工业控制、消费类产品、子系统控制器等。

引脚图

极限参数

电源供应电压………….V SS-0.3V~V SS+6.0V 储藏温度…………-50℃~125℃

端口输入电压………….V SS-0.3V~V DD+0.3V 工作温度…………-40℃~85℃

注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作状态,而且若长期在标示范围外的条件下工作,可能影响芯片的可靠性。

测试条件

符号 参数

V DD 条件 最小 典型 最大 单位 — 2.2V~5.5V 400 — 4000 kHz f SYS1 系统时钟(晶体振荡) — 3.3V~5.5V 400 — 8000 kHz — 2.2V~5.5V 400 — 4000 kHz f SYS2

系统时钟(RC 振荡)

— 3.3V~5.5V 400 — 8000 kHz 3.2MHz 1800 - 5400 1.6MHz 900 - 2700 800kHz 450 - 1350 f SYS3 系统时钟(内置RC 振荡)

5V

400kHz 225 - 675 kHz — 2.2V~5.5V 0 — 4000 kHz f TIMER 定时器输入频率(TMR)

— 3.3V~5.5V

0 — 8000 kHz 3V — 45 90 180 μs t WDTOSC 看门狗振荡器周期 5V — 32 65 130 μs 3V 11 23 46 ms t WDT1 看门狗溢出周期(WDT 振荡) 5V WDT 无预分频 8 17 33 ms t WDT2 看门狗溢出周期(系统时钟) — WDT 无预分频 — 1024 — t SYS tw DT3 看门狗溢出周期(RTC 振荡) — WDT 无预分频

— 7.812 — ms t RES 外部复位低电平脉冲宽度 — — 1 — — μs t SST 系统启动延时周期 — 从HALT 模式唤醒

— 1024 — t SYS t INT

中断脉冲宽度

1

μs

系统功能说明

指令系统

单片机的系统时钟由晶体振荡器或RC振荡器产生。该时钟在芯片内部被分成四个互不重叠的时钟周期。一个指令周期包括四个系统时钟周期。

指令的读取和执行是以流水线方式进行的, 这种方式在一个指令周期进行读取指令操作,而在下一个指令周期进行解码与执行该指令。因此,流水线方式使多数指令能在一个周期内执行完成。但如果渉及到的指令要改变程序计数器的值,就需要花两个指令周期来完成这一条指令。

指令执行时序

程序计数器—PC

程序计数器(PC)控制程序存储器ROM中指令执行的顺序,它可寻址整个ROM的范围。

取得指令码以后,程序计数器会自动加一,指向下一个指令码的地址。但如果执行跳转、条件跳跃、向PCL赋值、子程序调用、初始化复位、内部中断、外部中断、子程序返回等操作时,PC会载入与指令相关的地址而非下一条指令地址。

当遇到条件跳跃指令且符合条件时,当前指令执行过程中读取的下一条指令会被丢弃,取而代之的是一个空指令周期,随后才能取得正确的指令。

程序计数器的低字节(PCL)是一个可读写的寄存器(06H)。对PCL赋值将产生一个短跳转动作,跳转的范围为当前页256个地址。

当遇到控制转移指令时,系统也会插入一个空指令周期。

程序计数器

模式

*9 *8 *7 *6 *5 *4 *3 *2 *1 *0 初始化复位0 0 0 0 0 0 0 0 0 0

外部中断0 0 0 0 0 0 0 1 0 0

定时/计数器溢出中断0 0 0 0 0 0 1 0 0 0

条件跳跃PC+2

装载PCL *9 *8 @7 @6 @5 @4 @3 @2 @1 @0

跳转,子程序调用#9 #8 #7 #6 #5 #4 #3 #2 #1 #0

从子程序返回S9 S8 S7 S6 S5 S4 S3 S2 S1 S0

程序计数器

注:*9 ~ *0 :程序计数器位S9 ~ S0 :堆栈寄存器位

#9 ~ #0 :指令代码位@7 ~ @0 :PCL位

程序存储器用来存放要执行的指令代码,以及一些数据、

表格和中断入口。程序存储器有1024×14 位,程序存储器空

间可以用程序计数器或表格指针进行寻址。

以下列出的程序存储器地址是系统专为特殊用途而保留

的:

· 地址000H

该地址为程序初始化保留。系统复位后,程序总是从

000H开始执行。

· 地址004H

该地址为外部中断服务程序保留。当INT引脚有触发信

号输入,如果中断允许且堆栈未满,则程序会跳转到004H

地址开始执行。

· 地址008H

该地址为定时/计数器中断服务程序保留。当定时/计数器

溢出,如果中断允许且堆栈未满,则程序会跳转到008H地址开始执行。

· 表格区

ROM空间的任何地址都可做为查表使用。查表指令“TABRDC [m]”(查当前页表格,1页=256个字)和“TABRDL [m]”(查最后页表格),会把表格内容低字节传送给[m],而表格内容高字节传送到TBLH寄存器(08H)。只有表格内容的低字节被传送到目标地址中,而高字节被传送到表格内容高字节寄存器TBLH,并且TBLH的高2位始终为“0”。表格内容高字节寄存器TBLH是只读寄存器。表格指针(TBLP)是可读/写寄存器(07H),用来指明表格地址。在查表之前,要先将表格地址写入TBLP中。如果主程序和中断服务程序(ISR)都用到查表指令,主程序中TBLH的值可能会因为ISR中执行的查表指令而发生变化,产生错误。也就是说,要避免在主程序和中断服务程序中都使用查表指令。但如果必须这样做的话,我们可以在查表指令前先将中断禁止,在保存了TBLH的值后再开放中断以避免发生错误。所有与表格有关的指令都需要两个指令周期的执行时间。这里提到的表格区都可以做为正常的程序存储器来使用。

表格地址

指令

*9 *8 *7 *6 *5 *4 *3 *2 *1 *0 TABRDC [m] P9 P8 @7 @6 @5 @4 @3 @2 @1 @0

TABRDL [m] 1 1 @7 @6 @5 @4 @3 @2 @1 @0

表格区

注:*9~*0:表格地址字节@7~@0:表格指针字节P9~P8:当前程序指针字节

堆栈寄存器是特殊的存储器空间,用来保存PC的值。

此型号单片机有4层堆栈,堆栈寄存器既不是数据存储器的

一部分,也不是程序存储器的一部分,而且它既不能读出,

也不能写入。堆栈的使用是通过堆栈指针(SP)来实现的,堆

栈指针也不能读出或写入。当发生子程序调用或中断响应时,

程序计数器(PC)的值会被压入堆栈;在子程序调用结束或中

断响应结束时(执行指令RET或RETI),堆栈将原先压入堆栈

的内容弹出,重新装入程序计数器中。在系统复位后,堆栈

指针会指向堆栈顶部。

如果堆栈已满,并且发生了不可屏蔽的中断,那么只有

中断请求标志将会被记录下来,而中断响应会被抑制,一直

到堆栈指针(由RET或RETI)发生递减,中断服务才会被响应。

这个功能可以防止堆栈溢出,使得程序员易于使用这种结构。

同样,如果堆栈已满,并且发生了子程序调用,那么堆栈会

发生溢出,首先进入堆栈的内容将会丢失,只有最后的4个

返回地址会被保留。

数据存储器—RAM

数据存储器由81×8位组成,分为两个功能区间:特殊

功能寄存器和通用数据存储区(64×8),这些空间多数是可读/

写的,但也有只读的。

特殊功能寄存器包括间接寻址寄存器(00H),定时/计数

器(TMR;0DH),定时/计数器控制寄存器(TMRC;0EH),程

序计数器低字节寄存器(PCL;06H),间接寻址指针寄存器

(MP;01H),累加器(ACC;05H),表格指针(TBLP;07H),

表格内容高字节寄存器(TBLH;08H),状态寄存器(STA TUS;

0AH),中断控制寄存器(INTC;0BH),看门狗选项设置寄存

器(WDTS;09H),输入/输出寄存器(PA;12H,PB;14H,

PC;16H)和输入/输出控制寄存器(PAC;13H,PBC;15H,

PCC;17H)。其余在40H之前的空间保留给系统以后扩展使

用,读取这些地址的返回值为“00H”。通用数据寄存器地址

从40H到7FH,用来存储数据和控制信息。

所有的数据存储器空间都能直接执行算术、逻辑、递增、递减和循环操作。除了一些特殊位外,数据存储器的每一位都可由“SET[m].i”置位或由“CLR[m].i”复位,而且都可以通过MP间接寻址。

间接寻址寄存器

地址00H是一个间接寻址寄存器,并无实际的物理区存在。任何对[00H]的读/写操作,都是访问由MP(01H)所指向的RAM单元。间接读取此地址得到的值为00H,间接写入此地址,不会产生任何操作。

间接寻址指针MP(01H)是一个7位寄存器。MP的最高位未定义,读取该位得到的结果是“1”。任何对MP的写操作只能将低7位数据写入MP中。

累加器

累加器(ACC)与算术逻辑单元(ALU)有密切关系。它对应于RAM地址05H,做为运算的立即数据。存储器之间的数据传送必须经过ACC。

算术逻辑单元 — ALU 算术逻辑单元(ALU)是执行8位算术、逻辑运算的电路,它提供有下列的功能:

· 算术运算(ADD ,ADC ,SUB ,SBC ,DAA) · 逻辑运算(AND ,OR ,XOR ,CPL) · 移位运算(PL ,RR ,RLC ,RRC) · 递增和递减(INC ,DEC)

·

分支判断(SZ ,SNZ ,SIZ ,SDZ…)

ALU 不仅可以储存数据运算的结果,还会改变状态寄存器的值。

状态寄存器 — STATUS

8位的状态寄存器(0AH),包含零标志(Z)、进位标志(C)、辅助进位标志(AC)、溢出标志(OV)、暂停标志(PDF)和看门狗定时器溢出标志(TO)。它可以用来记录状态信息和控制操作流程。

符号 位 功 能

C 0

如果在加法运算中结果产生了进位或在减法运算中结果不产生借位,那

么C 被置位;反之,C 被清除。它也可被循环移位指令影响。

AC 1

在加法运算中低4位产生了进位或减法运算中低4位不产生借位,AC

被置位;反之,AC 被清除。

Z 2 算术运算或逻辑运算的结果为零则Z 被置位;反之,Z 被清除。

OV 3

如果运算结果向最高位进位,但最高位并不产生进位输出,那么OV

被置位;反之,OV 被清除

PDF 4

系统上电或执行了CLR WDT 指令,PDF 被清除。执行HALT 指令PDF

被置位。

TO 5

系统上电或执行了CLR WDT 指令,或HALT 指令,TO 被清除。WDT

定时溢出,TO 被置位。 — 6 未用,读出为“0” — 7 未用,读出为“0”

状态寄存器状态寄存器((0AH )

除了PDF 和TO 标志外,状态寄存器的其它位都可以用指令改变。而任何对状态寄存器的写操作都不

会改变PDF 和TO 的值。对状态寄存器的操作可能会导致与预期不一样的结果。PDF 和TO 标志只受系统上电、看门狗溢出、清除看门狗指令“CLR WDT ”、暂停指令“HAL T ”的影响。标志位Z 、OV 、AC 和C 反映的是最近一次操作的状态。

在进入中断程序或子程序调用时,状态寄存器不会被自动压入堆栈。如果状态寄存器的内容是重要的,而且子程序会影响状态寄存器的内容,那么程序员必须事先将STA TUS 的值保存好。

中断

HT48R10A-1/HT48C10-1提供了一个外部中断和一个内部定时器/计数器中断。中断控制寄存器(INTC ;0BH)包含了中断控制位和中断请求标志,中断控制位用来设置中断允许/禁止。

只要有中断子程序被服务,其余的中断全部都被自动禁止(通过清除EMI 位),这种做法的目的在于防止中断嵌套。这时如果有其它中断发生,只有中断请求标志会被记录下来。如果在中断服务程序中有另一个中断需要响应,程序员可以置位EMI 及INTC 所对应的位,以便进行中断嵌套。如果堆栈已满,则中断并不会被响应,一直到堆栈指针(SP)发生递减后才会响应。如果需要中断立即得到响应,应避免堆栈饱和。

所有的外部或内部中断都具有唤醒能力。当有中断被服务,系统会将程序计数器值压入堆栈,然后再跳转至中断服务程序的入口。但这时只有程序计数器的内容被压入堆栈,如果其它寄存器和状态寄存器的内容会被中断程序改变,从而会破坏主程序的控制流程的话,程序员应该事先将这些数据保存起来。

外部中断是由INT 脚下降沿信号触发的,其中断请求标志位(EIF ;INTC 的第4位)会被置位。如果中断允许,且堆栈未满,当发生外部中断时,会产生地址04H 的子程序调用;而中断请求标志EIF 和EMI 会被清除,以禁止其它中断响应。

内部定时/计数器中断是由定时/计数器溢出触发的,其中断请求标志(TF ;INTC 的第5位)会被置位。如果中断允许,且堆栈未满,当发生定时/计数器中断时,会产生地址08H 的子程序调用;而中断请求标志TF 和EMI 会被清除,

以禁止其它中断响应。

在执行中断子程序期间,其它的中断请求会被屏蔽,直到执行RETI 指令或置位EMI 和相关中断控制位为止(此时堆栈未满)。如果要从中断子程序返回,只要执行RET 或RETI 指令即可。其中,RETI 指令会自动置位EMI ,以允许中断服务,而RET 则不会。

如果中断在两个连续的 T2脉冲的上升沿之间发生,且中断响应允许,那么在下两个T2脉冲之间,该中断会被服务。如果同时发生中断请求,其优先级如下表示;也可以通过设定各中断相关的控制位来改变优先级。

编号 中断源 优先级 中断向量 a 外部中断 1 04H b 定时/计数器中断

2 08H

中断控制寄存器(INTC),是由外部中断请求标志(EIF)、外部中断允许(EEI)、定时/计数器中断请求标志(TF)、定时/计数器中断允许(ETI)以及总中断允许(EMI)组成的,其应于数据存储器地址0BH 。EMI 、EEI 、ETI 用来控制中断的允许/禁止状态,这些控制位可以用来屏蔽正在进行中断服务程序时发生的其它中断请求。一旦中断请求标志(TF 、EIF)被置位,会一直保留在INTC 寄存器中,直到中断被响应或用软件指令清除为止。

建议不要在中断服务程序中使用“CALL ”指令来调用子程序。因为中断随时都可能发生,而且需要立刻给予响应。如果只剩下一层堆栈,而中断不能被很好地控制,原先的控制序列很可能因为在中断子程序中执行“CALL ”指令而使堆栈溢出而发生混乱。

寄存器 位 符号 功能

0 EMI 总中断控制(1=允许;0=禁止) 1 EEI 外部中断控制(1=允许;0=禁止) 2 ETI 定时/计数器中断控制(1=允许;0=禁止) 3 — 未用,读出为“0” 4 EIF 外部中断请求标志(1=有;0=无)

5 TF 定时/计数器中断请求标志(1=有;0=无)

6 — 未用,读出为“0” INTC

(0BH) 7 — 未用,读出为“0”

INTC 寄存器寄存器((0BH )

振荡电路

HT48R10A-1/HT48C10-1有三种振荡方式:外部晶体振荡、外

部RC振荡和内部RC振荡。不管选用哪一种振荡方式,其信号都可

以做为系统时钟,可由掩膜选项设置。HALT模式会停止系统振荡器,

并忽视任何外部信号以降低功耗。

如果选用外部RC型振荡方式,在OSC1和VDD之间需要接一

个外部电阻,其电阻值可为24 k?到1M?;而OSC2上会输出系统

频率的四分频信号,可用于同步外部逻辑。RC振荡方式是一种低成

本的方案,但是,RC振荡频率会随着VDD、温度和芯片自身参数

的漂移而产生误差。因此,在需要精确振荡频率做为计时操作的场合,我们并不建议使用RC型振荡器。

如果选用晶体振荡方式,在OSC1和OSC2之间需要连接一个晶体,用来提供晶体振荡器所需的反馈和相移,除此之外,不再需要其它外部元件。另外,在OSC1和OSC2之间也可使用谐振器来取代晶体振荡器,但是在OSC1和OSC2需要多连接两个电容。如果选用内部RC振荡方式,OSC1和OSC2可用作通用输入/输出口或做为32768HZ的晶体连接口。内部RC振荡频率可为3.2MHz,1.6 MHz,800kHz,400kHz(由掩膜选项设定)。

WDT振荡器是一个内部RC振荡器,并不需要连接任何外部元件。当系统进入暂停模式时,系统时钟会停止,但WDT振荡器会继续工作(其振荡周期大约为65μs)。如果要降低功耗,可在掩膜选项中关闭WDT 振荡器。

看门狗定时器—WDT

看门狗定时器的时钟来源有三种:看门狗振荡器、RTC振荡器或指令时钟(系统时钟4分频),由掩膜选项设置。看门狗定时器主要用来防止程序运行故障和程序跳入一死循环而导致不可预测的结果。看门狗定时器由掩膜选项设置为打开或关闭,如果在关闭状态,所有与WDT有关指令操作都是没有作用的。RTC 时钟只有在内部RC+RTC模式时

才能工作。

如果WDT时钟源为内部WDT振荡器输出(RC振荡周期一般为65μs),它会先经过一个256(8级)的分频电路得到大约17ms/5V的溢出周期,这个周期会随温度、VDD和芯片参数的漂移而变化。如果要得到更长的WDT溢出周期,可以使用WDT预分频器。设置WS2、WS1、WS0(WDTS的2、1、0位),可以得到不同的分频级数。如果WS2、WS1、WS0的值都为1,则WDT的溢出周期被是原来的128倍,得到一个大约2.2s/5V的WDT溢出周期。WDT时钟源除了使用内部WDT振荡器输出外,还可以使用指令时钟(系统时钟4分频),只是在HALT时,WDT会停止计数而失去保护功能;此时只能靠外部逻辑复位来重新启动系统。WDTS的3~7位是保留给用户来定义自己的状态字。

看门狗定时器

如果系统运用在强干扰的环境中,建议选用内部WDT振荡器或32kHz的晶体振荡器(RTC振荡器),因为HALT模式会使系统时钟停止,看门狗也就失去了保护的功能。

在正常运行时,WDT溢出会使系统复位并置位TO标志;但在HALT模式下,WDT溢出只产生一个热复位,只能使程序计数器PC和堆栈指针SP复位。要清除WDT的值(包括WDT预分频器)可以有三种方法:外部复位(低电平输入到RES端)、清除看门狗指令和HALT指令。清除看门狗指令有“CLR WDT”和“CLR WDT1”、“CLR WDT2”二组指令。这两组指令中,只能选取其中一种,由掩膜选项决定。如果选择“CLR WDT”,那么只要执行“CLR WDT”指令就会清除WDT。如果选择“CLR WDT1”和“CLR WDT2”,那么二条指令要交替使用才会清除WDT,否则,WDT会由于溢出而使系统复位。

WS2 WS1 WS0 分频

0 0 0 1∶1

0 0 1 1∶2

0 1 0 1∶4

0 1 1 1∶8

1 0 0 1∶16

1 0 1 1∶32

1 1 0 1∶64

1 1 1 1∶128

暂停模式—HALT

暂停模式是由HALT指令来实现的,HALT时系统状态如下:

· 系统振荡器关闭,但WDT振荡器会继续运行(如果选择WDT振荡器);

· RAM和寄存器内容保持不变;

· WDT被清除并重新开始计数(如果WDT时钟来源为WDT振荡器);

· 所有输入/输出口都保持其原有状态;

· 置位PDF标志,清除TO标志;

以下操作可以使系统离开暂停模式:外部复位、中断、PA 口下降沿信号或看门狗定时器溢出。其中,外部复位会使系统初始化,WDT溢出则会发生热复位。通过检测TO和PDF标志,即可了解系统复位的原因。PDF标志可由系统上电或是执行“CLR WDT”指令清除,由HALT指令置位。TO标志由WDT溢出置位,同时产生唤醒,但只有程序计数器PC和堆栈指针SP被复位,其它都保持其原有的状态。

PA口唤醒和中断唤醒可做为正常运行的继续。PA口的每一位都可以由掩膜选项设置为唤醒功能。如果由输入/输出口唤醒,程序会从下一条指令开始运行。但如果是从中断唤醒的话,可能会发生两种情况:如果中断禁止或中断允许但堆栈已满,程序将会从下一条指令重新开始运行;如果中断允许且堆栈未满,则会产生一般中断响应。如果在进入HALT模式之前,中断请求标志位已被置“1”,则中断相关的唤醒功能被禁止。

当发生唤醒,系统必需额外花费1024t SYS(系统时钟周期)的时间,才能重新正常运行,也就是说,唤醒之后会插入一个等待周期。如果唤醒是由中断产生的话,则实际中断子程序的执行会延迟大约一个以上的周期。如果唤醒导致下一条指令执行,那么在等待周期执行完成之后,会立即执行该指令。

为减小功耗,在进入暂停模式之前,应小心处理所有的输入/输出管脚。RTC振荡器在HALT模式下会继续运行(如果选用RTC振荡器)。

复位

总共有三种方法会产生初始复位:

· 正常运行时由RES 引脚发生复位

· 在暂停模式由RES 引脚发生复位

· 正常运行时由看门狗定时器溢出发生复位

暂停模式中的看门狗定时器溢出与其它系统复位状况不同,因为看门狗

定时器溢出会执行热复位,热复位只复位程序计数器PC 和堆栈指针SP ,而系统

其它部分都保持原有状态。在其它复位状态下,某些寄存器不会改变。在初始复位时,大部分寄存器会复位成初始的状态。通过检测PDF 和TO 标志,即可判断出各种不同的复位原因。

为了保证系统振荡器起振并稳定运行,系统复位(包括上电复位、看门狗定时器溢出或由RES 端复位)或由暂停状态唤醒时,系统启动定时器(SST)提供了一个额外的延迟时间,共1024个系统时钟周期。

系统复位时,SST 会被加在复位延时中。由暂停模式唤醒也会启动SST 延迟。

当系统上电、正常运行时WDT 溢出或RES 脚复位,系统需要额外增加一个加载Option 的时间。 有关功能的系统复位状态如下所示:

程序计数器(PC)

000H 中断 禁止 预分频器 清除

看门狗定时器 清除,复位后看门狗定时器开始计数 定时/计数器 关闭 输入/输出口 输入模式

堆栈指针

指向堆栈的顶端

复位时序

复位电路结构

复位电路 注意:

“*”为了避免噪声干扰,连接RES 引脚的线应尽量短

有关寄存器的状态如下有关寄存器的状态如下::

定时/计数器

HT48R10A-1/HT48C10-1有一个8位可编程向上计数的定时/计数器。定时/计数器的时钟来源可以是外部信号输入、系统时钟或RTC 时钟。

符号 位 功能

PSC0~PSC2 0-2 定义预分频器级数,PSC2、PSC1、PSC0= 000:f INT = f SYS /2或f RTC /2 001:f INT = f SYS /4或f RTC /4 010:f INT = f SYS /8或f RTC /8

011:f INT = f SYS /16或f RTC /16

100:f INT = f SYS /32或f RTC /32 101:f INT = f SYS /64或f RTC /64 110:f INT = f SYS /128或f RTC /128 111:f INT = f SYS /256或f RTC /256

TE 3

定义定时/计数器TMR 的触发方式

(0=上升沿作用,1=下降沿作用)

TON 4 打开/关闭定时/计数器( 1=打开,0=关闭)

— 5 未用,读出为“0”

TM0 TM1 6

7

定义工作模式:

01=事件计数模式(外部时钟)

10=定时模式(内部时钟)

11=脉冲宽度测量模式 00 =未用

TMRC 寄存器寄存器((0EH )

当使用内部时钟源时,定时/计数器有两个时钟源,可由掩膜时选项设置为系统时钟f SYS (任何情况下

可选)或RTC 时钟f RTC (仅在系统振荡为内部RC+RTC 模式时可选)。外部信号输入可以用来计数外部事件、测量时间间隔、测量脉冲宽度或者产生一个时基信号。内部时钟源输入可以产生一个精确的时基。

定时/计数器可以产生PFD 信号,PFD 信号频率为:f INT /[2×(256-N)]。

有两个与定时/计数器有关的寄存器,TMR([0DH])和TMRC([0EH])。TMR 寄存器有两个物理空间;写入TMR 会将初始值装入到定时/计数器的预置寄存器中,而读TMR 则会取得定时/计数器的内容。TMRC 是定时/计数器控制寄存器,它可以定义定时/计数器的工作模式。

定时/计数器

TM0、TM1用来定义定时/计数器的工作模式。外部事件计数模式是用来记录外部事件的,其时钟来源为外部TMR引脚输入。定时器模式是一个常用模式,其时钟来源为内部时钟。脉宽测量模式可以测量TMR 引脚高/低电平的宽度,其时钟来源为内部时钟。

无论是定时模式还是外部事件计数模式,一旦开始计数,定时/计数器会从寄存器当前值向上计到0FFH。一旦发生溢出,定时/计数器会从预置寄存器中重新加载初值,并开始计数;同时置位中断请求标志(TF;INTC的第5位)。在脉宽测量模式,TON与TE是1时,只要TMR引脚有一个上升沿信号(TE是0为下降沿信号),定时/计数器就会开

始计数,直到TMR脚电平恢复,同时TON被清零。测量的结果会保存在寄存器中,直到有新的测量开始。换句话说,一次只能测量一个脉冲宽度。重新置位TON后,可以继续测量。注意,在该模式下,定时/计数器是跳变触发而不是电平触发。当计数器溢出时,会从定时/计数器的预置寄存器中重新加载初值,而中断的处理方式与其它两种模式一样。要启动计数器,只要置位TON(TMRC的第4位)。在脉宽测量模式下,TON在测量结束后会被自动清除;但在另外两种模式中,TON只能由指令来清除。定时/计数器溢出可以做为唤醒信号。不管是什么模式,只要写0到ETI位即可禁止定时/计数器中断服务。

在定时/计数器停止计数时,写数据到定时/计数器的预置寄存器中,同时会将该数据写入到定时/计数器。但如果在定时/计数器工作时这么做,数据只能写入到预置寄存器中,直到发生溢出时才会将数据从预置寄存器加载到定时/计数器寄存器。读取定时/计数器时,计数会被停止,以避免发生错误;计数停止会导致计数错误,程序员必须注意到这一点。

TMRC的第0~2位用来定义内部时钟预分频级数,定义如上表所示。定时/计数器的溢出信号可用来产

生PFD信号以驱动蜂鸣器。

输入/输出口

HT48R10A-1/HT48C10-1有21个双向输入/输出口,记为PA~PC,分别对应RAM地址[12H]、[14H]和[16H]。所有输入/输出口都可以进行输入/输出操作。输入时,口没有锁存功能,输入信号必须在MOV A,[m](m=12H,14H或16H)指令的T2上升沿到来前准备好;输出时,口有锁存功能,口上的数据会保持不变直到执行下一个写入操作。

每一个输入/输出口都有一个控制寄存器(PAC,PBC,PCC),用来控制输入/输出模式。使用控制寄存器,可对CMOS输出或斯密特触发输入通过软件动态地进行改变。做为输入时,对应的控制寄存器应设置为“1”。输入信号来源也取决于控制寄存器,如果控制寄存器的值为“1”,那么读入的是读取引脚状态;如控制寄存器的值为“0”,则读取的是内部锁存器值。后者会在‘读-修改-写’指令中可能发生。做为输出时,只能采用CMOS输出。控制寄存器对应RAM的13H,15H,17H。

系统复位之后,这些输入/输出口都会是高电平或浮空状态(由上拉电阻选项决定)。每一个输入/输出锁存位都能用SET [m].i 或CLR [m].i 指令置位或清除(m=12H,14H或16H)。

有些指令会先输入数据,然后进行输出操作。例如:“SET [m].i”,“CLR [m].i”,“CPL [m]”,“CPLA[m]”这些指令会先将整个口状态读入CPU中,接着执行所定义的运算(位操作),然后再将执行的结果写入锁存器或累加器中。

PA的每一个口都可具有唤醒功能。PC的高3位没有实际的物理结构。读取这3位会返回“0”,而写入则是一个空操作。

所有的输入/输出口都有上拉电阻选项(字节操作)。一旦选择了上拉选项,所有的输入/输出口就都加了上拉电阻。如果不选择上拉电阻,必须注意在输入模式下,若输入/输出口会产生浮空状态。

输入/输出口

PB0、PB1与BZ、BZ共用引脚。如果选择为BZ/BZ输出,PB0/PB1在输出模式时的输出将是PFD信号,PFD由定时/计数器的溢出信号产生。在输入模式始终保持其原来的功能。选择BZ/BZ后,蜂鸣器输出信号只受PB0数据寄存器控制。PB0/PB1的输入/输出功能如下所示。

PB0 输入/输出I I I I O O O O O O O O

PB1 输入/输出I O O O I I I O O O O O

PB0模式×××× C B B C B B B B

PB1模式× C B B ××× C C C B B

PB0 数据××0 1 D 0 1 D0 0 1 0 1

PB1数据× D ×××××D1 D D ××

PB0 Pad 状态I I I I D 0 B D0 0 B 0 B

PB1 Pad 状态I D 0 B I I I D1 D D 0 B

注:I:输入;O:输出;D,D0,D1 :数据;

B:蜂鸣器选项,BZ或BZ;x:任意值;

C:CMOS 输出;

PC0、PC1与INT、TMR共用引脚。

在系统振荡为“内部RC+输入/输出”时,PC3、PC4与OSC1、OSC2共用引脚。一旦选择“内部RC+输入/输出”模式后,PC3和PC4可用作通用输入/输出口;否则,PC3和PC4没有上拉电阻和输入输出功能。

我们建议用软件将未使用和没有外接的输入/输出口置为输出模式,以防止这些口在输入浮空时增加系

统的功耗。

低电压复位 — LVR

为了监控器件的工作电压,HT48R10A-1/HT48C10-1提供低电压复位功能。如果工作电压在 0.9V ~V LVR 之间,例如电池电压的变化,那么LVR 会自动使器件产生内部复位。

LVR 功能说明如下:

· 低电压(0.9V ~V LVR )的状态必须持续1ms 以上。如果低电压的状态没有持续1ms 以上,那么LVR 会忽视它而不去执行复位功能。

· LVR 通过与外部RES 信号的“或”的功能来执行系统复位。

V DD 与V LVR 之间的关系如下所示:

低电压复位

注: *1: 要保证系统振荡器起振并稳定运行,在系统进入正常运行以前,SST 提供额外的1024个系统时钟周期的延迟。

*2:因为低电压状态必须保持1ms 以上,因此进入复位模式就要有1ms 的延迟。

掩膜选项

下表标出了所有掩膜选项。在系统运行前必须定义所有选项的值。

注:V

OPR

为系统时钟4MHz 时一

般芯片正常工作电压的范围。

STM8L超低功耗MCU精彩问答

主题:STM8L——引领8位MCU产品向超低功耗扩展---精彩问答 [1问:]STM8L总线数据传输速度可达多高? [答:]CPU的时钟频率为16MHz[1900-1-1] [2问]如何实现ARM内核的低功耗设计 [答:]STM8L不是ARM内核的[2009-11-1810:14:01] [3问:]STM8L的产品的工作主频能有多大?可以在待机时改变频率以节省电能吗? [答:]最高16MHz,16MIPS,待机前可以降频[2009-11-1810:14:57] [4问:]STM8加密除了在下载的时候禁止读写以外,还有什么好办法呢? [答:]每个芯片有唯一的ID,可以在程序中做加密处理[2009-11-1810:15:34] [5问:]STM8很多寄存器需要在某种状态下才允许修改的,能否详细说明一下?[答:]这个问题能够提的具体一点吗?[2009-11-1810:15:35] [6问:]8位微控制器STM8L的外设接口是怎样设置的? [答:]你指什么外设?[2009-11-1810:20:30] [7问:]STM8L单片机和TI的msp430系列MCU有什么不同,与TI的功耗比相比有什么优势?谢谢 [答:]STM8L是8位机,因此比16位机便宜。STM8L可达16MIPS,与MSP430速度相当。 STM8L的许多工作模式,功耗比TI还低[2009-11-1810:22:51] [8问:]STM8L是几级流水的?工作频率是多少?指令周期是多少?有多少单指令周期指令和双指令周期的指令? [答:]3级16MHz Max指令集与STM8S相同STM8L的内核是CISC内核,指令周期从一个周期至最长10几个周期(除法指令)都有。[2009-11-1810:24:03] [9问:]调试方式有几种?FLASH和RAM?可以选择吗? [答:]可以选择Flash或RAM运行程序。[2009-11-1810:24:05] [10问:]支持几种IDE?请简单介绍,谢谢 [答:]ST推荐STVD还有Raisonance的IDE也可以。[2009-11-1810:25:11] [11问:]目前stm8的编译器不是很好用,我想问一下是否有让iar支持stm8的计划啊?我想要是有的话,stm8的推广会更顺利一些…… [答:]再耐心等待吧,计划中的[2009-11-1810:26:17] [12问:]宣传资料上看到有关于stm芯片片内都有唯一的ID号,而且在加密时可以派上用场!请教这序列号在什么地方?我应该怎么读取?有相关例程么?

凌阳16位单片机应用基础

凌阳16位单片机应用基础 作者:罗亚非 出版社:北京航天航空大学出版社 类别:社会科学 凌阳16位单片机应用基础的简介 凌阳十六位单片机(’nSPTM)是台湾凌阳公司2001年推出的第一代单片机,低价,实用,功耗低和简单易学等特点,讲述该系列单片机的内部结构,开发工具,还提供大量应用程序举例和设计方法,通俗流畅,例题丰富,可作为从事单片机开发与应用的工程技术人员及广大单片机爱好者的自学用书,本科,在专的专业教材, 凌阳十六位单片机(’nSPTM)是台湾凌阳公司2001年推出的第一代单片机, 书本出处:凌阳16位单片机应用基础的PDF电子书下载 凌阳16位单片机应用基础的内容预览 第1章 SPCE061A单片机简介 1.1 凌阳16位单片机 1.2 SPCE061A简介第2章 SPCE061A单片机的硬件结构 2.1 ’nSPTM的内核结构 2.2 SPCE061A的片内存储器结构 2.3 SPCE061A的输入/输出接口 2.4 时钟电路 2.5 锁相环PLL振荡器 2.6系统时钟 2.7 时间基准信号 2.8 定时器/计数器 2.9 睡眠与唤醒 2.10模/数转换器ADC 2.11 DAC方式音频输出显示全部信息第1章SPCE061A单片机简介 1.1 凌阳16位单片机 1.2 SPCE061A简介第2章SPCE061A单片机的硬件结构 2.1 ’nSPTM的内核结构 2.2

SPCE061A的片内存储器结构 2.3 SPCE061A的输入/输出接口 2.4 时钟电路 2.5 锁相环PLL振荡器 2.6 系统时钟 2.7 时间基准信号 2.8定时器/计数器 2.9 睡眠与唤醒 2.10 模/数转换器ADC 2.11 DAC方式音频输出 2.12 低电压监测/低电压复位(LVD/LVR)2.13 串行设备输入输出端口(SIO) 2.14 通用异步串行接口UART 2.15 保密设定 2.16 看门狗计数器(WatchDog)第3章 指令系统 3.1指令系统的概述及符号约定 3.2 数据传送指令 3.3 SPCE061A的算术运算 3.4 SPCE061A的逻辑运算 3.5 SPCE061A的控制转移类指令 3.6 伪指令第4章 程序设计 4.1 ’nSPTMIDE的项目组织结构 4.2 汇编语言程序设计 4.3 C语言程序设计 4.4 应用程序设计第5章 中断系统 5.1 概述 5.2 SPCE061A的中断系统 5.3 中断系统的应用第6章 集成开发环境IDE 6.1 概述 6.2 菜单 6.3 工具栏 6.4 窗口 6.5 项目 6.6 代码剖视器使用及功能 6.7 程序示例第7章 凌阳音频压缩算法 7.1音频概述 7.2 凌阳音频简介 7.3 常用的应用程序接口API的功能介绍及应用 7.4 语音压缩方法 7.5键控放音程序介绍 7.6 语音辨识 7.7 小结第8章 ’nSPTM单片机应用及开发技术 8.1 ’nSPTM的应用领域 8.2 SPCE061A单片机应用举例 8.3 数字滤波程序 8.4 卷积编码以及数字比特译码 8.5 CRC校验程序附录1 C—Lib中的函数集附录2 ’nSPTM的指令集一览附录3 ’nSPTM汇编器伪指令集附录4 ’nSPTM编译相关错误信息附录5 端口速查表附录6 符号约定 更多PDF电子书下载!

基于凌阳MCU的机器人平衡控制系统设计

基于凌阳MCU的机器人平衡控制系统设计 目录 摘要 (3) 第一章绪论 (4) 第1.1节选题背景 (4) 第1.2节本设计在理论和实际应用方面的价值 (4) 第1.3节本文主要研究内容 (5) 第二章凌阳单片机SPCE061A (6) 第2.1节 SPCE061A单片机 (6) 第2.2节 SPCE061A单片机的性能 (6) 第2.3节 SPCE061A单片机的外观及结构 (7) 第2.4节 SPCE061A单片机的输入/输出接口 (8) 第2.4.1节 SPCE061A 的 I/O 端口结构 (8) 第2.4.2节 SPCE061A并行I/O端口控制向量组合 (10) 第2.5节 SPCE061A 的最小系统 (11) 第三章传感器 (13) 第3.1节传感器的原理 (13) 第3.2节红外传感器 (13) 第3.3节倾角传感器 (14) 第四章系统的硬件设计 (17) 第4.1节智能小车 (17) 第4.2节智能小车硬件组成 (18)

第4.3节智能小车各模块的选择 (18) 第4.3.1节控制模块 (18) 第4.3.2节电机及驱动模块 (19) 第4.3.3节引导检测模块 (21) 第4.3.4节平衡模块 (22) 第4.3.5节电源及显示模块 (23) 第五章系统的软件设计 (24) 第5.1节小车控制算法 (24) 第六章实验结果与分析 (30) 第6.1节实验基础条件 (30) 第6.2节实验数据及分析 (30) 第6.3节智能小车运动性能的分析 (32) 结论 (33) 致谢 (34) 参考文献 (35) 附录 (36)

摘要 在现代社会的各个领域,机器人得到了十分广泛的应用,尤其是机器人小车,本设计是利用凌阳单片机SPCE061A、红外传感器电路TCRT5000、倾角传感器电路SCA60C、LCD 显示电路构成的电动小车跷跷板系统。其中单片机最小系统SPCE061A作为检测和控制核心,通过红外发射和接收传感器TCRT5000完成对智能小车行进路线的控制,用红外传感器检测到开关信号送到单片机进行识别,进而发出相应控制指令控制小车寻线行驶;通过倾角传感器电路SCA60C完成跷跷板平衡控制,各部分都能实时显示,从而实现小车在跷跷板上寻找平衡点的智能化。 【关键词】:单片机、SPCE061A、智能小车、传感器 Design the balance controlling system of robot based on sunplus MCU Abstract Nowadays, in many fields of modern society,robots have been widely used, particularly in the intelligent vehicle.This design is based on the 16 bit SPCE061A MCU, the intelligent vehicle called mobile robot , which is drived by two DC motors respectively, can trace precisely by detecting black leading lines on the seesaw. Reflecting infrared sensor TCRT5000, is used to detect black leading line. Tilting sensor SCA60C, is used to detect whether the seesaw is in balance and control the speed of the intelligent vehicle. The LCD can show the angle of inclination detected by SCA60C and translated by SPCE061A. In all, the design can make the intelligent vehicle trace on the seesaw, turn back, turn left, turn right automatically and make the seesaw in balance finally. [Keyword]:MCU, SPCE061A, Intelligent Mini Vehicle, Sensor

凌阳单片机简介

第1章 SPCE061A单片机简介 (1) 1.1凌阳16位单片机 (1) 1.2 SPCE061A简介 (2) 1.2.1 总述 (2) 1.2.2 性能 (2) 1.2.3 结构概览 (3) 1.2.4 芯片的引脚排列和说明 (4) 1.2.5 特性 (6) 1.2.6 SPCE061A最小系统 (7) 1.2.7 SPCE061A开发方法 (8) 1.2.8 应用领域 (10) 北阳电子内部技术资料0

第1章 SPCE061A单片机简介 1.1 凌阳16位单片机 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的μ’nSP?(Microcontroller and Signal Processor)16位微处理器芯片(以下简称μ’nSP?)。围绕μ’nSP?所形成的16位μ’nSP?系列单片机(以下简称μ’nSP?家族)采用的是模块式集成结构,它以μ’nSP?内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件,如图1.1所示。 图1.1μ’nSP?家族的模块式结构 μ’nSP?内核是一个通用的核结构。除此之外的其它功能模块均为可选结构,亦即这种结构可大可小或可有可无。借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。这样做无疑会使每一种派生产品具有更强的功能和更低的成本。 μ’nSP?家族有以下特点: 体积小、集成度高、可靠性好且易于扩展 北阳电子内部技术资料1

P89LPC900系列8脚低功耗单片机介绍

P89LPC901/902/903 Flash单片机 概述 P89LPC901/902/903是一款单片封装的微控制器,适合于许多要求高集成度、低成本的场合。可以满足多方面的性能要求。P89LPC901/902/903采用了高性能的处理器结构,指令执行时间只需2到4个时钟周期。6倍于标准80C51器件。P89LPC901/902/903集成了许多系统级的功能,这样可大大减少元件的数目和电路板面积并降低系统的成本。 主要特性 1KB Flash程序存储器,具有 256字节可擦除扇区、16字节 可擦除页规格。单个字节擦 除功能使任何字节可用非易失 性数据的存储。 128字节RAM数据存储器。 2个16位定时/计数器(P89LPC901的 定时器/计数器可作为PWM输出)。 23位的系统定时器,可用作实时时钟。 2个模拟比较器(P89LPC902和P89LPC903,P89LPC901只有一个模拟比较器)。 增强型UART。具有波特率发生器、间隔检测、帧错误检测、自动地址识别和 通用的中断功能(P89LPC903)。 高精度的内部RC振荡器时不需要外接振荡器件。可选择RC振荡器选项并且其频率 可进行很好的调节。 操作电压VDD范围为2.4~3.6V。I/O口可承受5V(可上拉或驱动到5.5V)。 工业级应用中,它们的引出管脚为1、8和4脚对应的V DD、V SS和复位脚。 选择片内振荡和片内复位时可多达6个I/O口。 8脚SO-8封装。 附加特性 当操作频率为12MHz时,除乘法和除法指令外,高速80C51 CPU的指令执行 时间为167~333ns。同一时钟频率下,其速度为标准80C51器件的6倍。 只需要较低的时钟频率即可达到同样的性能,这样无疑降低了功耗和EMI。 在应用中编程(IAP-Lite)和字节擦写功能使得程序存储器可用于非易失性数据的存储。 串行Flash在电路编程(ICP)允许利用商用EPROM编程器实现简单代码的编程。 Flash保密位可防止程序被读出。 看门狗定时器具有片内独立振荡器,无需外接元件。看门狗定时器预分频器有8种选择。 低电压复位(掉电检测)可在电源故障时使系统安全关闭。该功能也可配置为一个中断。 空闲和两种不同的掉电节电模式。提供从掉电模式中唤醒功能(低电平键盘中断输入唤醒)。 典型的掉电电流为1μA(比较器关闭时的完全掉电状态)。 低电平复位。使用片内上电复位时不需要外接元件。复位计数器和复位干扰抑制电路可防止虚假和不完全的复位。另外还提供软件复位功能。

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤w

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤 /*****************************************************************************/ *本人用此法成功解救了4块板子【窃喜!】,此说明是本人边操作边截图拼成的,有些是在别的说明上直接截图【有些图本人不会截取,就利用现成的了,不过那也是本人用豆和财富值换来的】,表达不清之处还望见谅,大家将就着看吧!如能有些许帮助,我心甚慰!!! ————武狂狼2014.4.23 /*****************************************************************************/ 编译软件:CW5.1版本,下载器:飞翔BDMV4.6 【1】,连接好单片机,准备下载程序,单击下载按钮出现以下界面 或 (图1.1) 图 1.1——4中所有弹出窗口均单击“取消”或红色“关闭”按钮依次进入下一界面

(图1.2) (图1.3)

(图1.4) ******************************************************************************* ******************************************************************************* 【2】单击出现如下图所示下拉列表,然后单击 (图2.1) 出现下图(图2.2)对话框,按下面说明操作 (图2.2)

凌阳单片机端口位定义

#define IOA4 (*(volatile BIT *)(P_IOA_Data)).bit4 #define DATA IOA4 //////////////////////////////////////////////////////////////////// //BitOpt.h比特操作 //作者:DreagonWoo //时间:2010年 /******************************************************************** 对数据类型为8比特和16比特的数据进行位读写0、1操作, 这样凌阳编译环境就能像51编译环境那样类似bit name = P1.1的语法 全局变量 BIT16 *bitPort = (BIT16*)P_IOA_Data; xxProject.h文件 #define DIO WRB0(bitPort)//读写 #define DIO_0 B0(bitPort,0)//写0 xxProject.c文件 DIO = 1; DIO_0; ********************************************************************/ #ifndef _BITOPT_H #define _BITOPT_H typedef struct { unsigned b0:1; unsigned b1:1; unsigned b2:1; unsigned b3:1; unsigned b4:1; unsigned b5:1; unsigned b6:1; unsigned b7:1; }BIT8,*PBIT8; typedef struct {

MSP430F413超低功耗单片机的便携式温湿度

介绍了一种基于MSP430F系列超低功耗单片机的温湿度检则仪,详细阐明了温湿度检测原理、软硬件的设计与实现方法。该仪器充分利用单片机自身资源,具有小型便携、高性能、低功耗、可编程等优点,可广泛应用于诸多领域的湿温度一体化测量。 https://www.wendangku.net/doc/b94812976.html,/datum/showart.asp?art_id=5632 1引言 温度、湿度是工农业生产的主要环境参数,对其进行适时准确的测量具有重要意义。目前,随着经济的发展及生活环境的改善,在一些野外及流动性较大的场合(如农业温室、智能建筑等),传统的“温―阻”法和“湿―阻”法由于其体积大,操作不方便,消耗功率高(一般需加模拟风),已经很难适用。因此,新一代准确可靠、快速灵敏、可便携式温湿度检测仪的研制势在必行。 该文以智能建筑为应用背景,提出一种以MSP430F413超低功耗单片机为核心构成的温湿度仪,详细阐明了该仪器的检测原理、硬件结构、软件编制等相关技术,并指出它的一些特点和优势。 2检测原理 温湿度传感器是决定检测仪精度的关键器件,其选取的原则主要有测量范围、工作环境、线性度、互换性、灵敏度、响应速度、稳定性及体积大小等。考虑以上因素和仪器的测量要求,设计采用Honey-well公司的薄膜铂电阻HEL-775测温,Humirel公司的高分子薄膜式湿敏电容HS1100作湿度测量[1]。 HEL-775的主要技术参数如下:测量范围-55℃~+150℃、基本电阻1 000Ω(在0℃时)、测量精度好于±0.3℃、温度系数0.00375Ω/Ω/℃、互换性1 000Ω±1Ω(在0℃时)、满量程线性度±0.15%、响应时间10s(10ft/s空气中)、稳定性<0.05℃/5a、自热系数3.0mW/℃。 HEL-775铂电阻元件的温度―电阻关系式[2]为: 式(2―1)中Rpt为待测温度T时的铂电阻值,R0为零度时的基本电阻值,a、b、c 是温度系数=0.00375Ω/Ω/℃时的取值常数,其中c在0℃以上取值0。 HS1100湿敏电容具有不需校准的完全互换性,能瞬时退饱和,适用于线性电压输出和频率输出两<5s,温度系数为0.04pF/℃,稳定性0.5%RH/a,可见性能是较高的。 使用中的HS1100湿敏电容参数值与湿度RH、频率f、温度T有关,其关系式如下:C即典型标称电容,a3、a2、a1、a0取值为常数。 上述式(2―1)~式(2―4)说明:温湿度仪的高精度测量,必须考虑传感器的非性线、频率和温度补偿及测量误差等问题,因此在布置印刷电路板时应尽量减少引线电阻和分布电

飞思卡尔单片机编程

关于Codewarrior 中的 .prm 文件 网上广泛流传的一篇文章讲述的是8位飞思卡尔单片机的内存映射,这几天,研究了一下Codewarrior 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。 正文: 关于Codewarrior 中的.prm 文件 要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于Codewarrior 5.0 编译器,单片机采用MC9S12XS128。 通过项目模板建立的新项目中都有一个名字为“project.prm”的文件,位于Project Settings->Linker Files文件夹下。一个标准的基于XS128的.prm文件起始内容如下: .prm文件范例: NAMES END SEGMENTS RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF;

READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF; //OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF; EEPROM_02 = READ_ONLY DATA_FAR IBCC_FAR 0x020800 TO 0x020BFF; EEPROM_03 = READ_ONLY DATA_FAR IBCC_FAR 0x030800 TO 0x030BFF; EEPROM_04 = READ_ONLY DATA_FAR IBCC_FAR 0x040800 TO 0x040BFF; EEPROM_05 = READ_ONLY DATA_FAR IBCC_FAR 0x050800 TO 0x050BFF; EEPROM_06 = READ_ONLY DATA_FAR IBCC_FAR 0x060800 TO 0x060BFF; EEPROM_07 = READ_ONLY DATA_FAR IBCC_FAR 0x070800 TO 0x070BFF; PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF8BFFF;

凌阳61单片机使用指南

凌阳单片机资料使用指南 1.1 初次接触单片机-使用《跟我学SPCE061A 单片机》 \61教学与创新\2教材与教案\跟我学SPCE061A单片机《跟我学SPCE061A单片机》无论有没有学过单片机,都可以从里面学习到有关凌阳SPCE061A单片机的基础知识。初学单片机的朋友,在学习时常会碰到些一时间无法理解的概念、原理等;对于这些不解,可以从微机原理、数字电路、模拟电路以及C语言编程类的书籍、资料中找到答案,假如之前没有学过这些知识呢?怎么办?其实不用太在意,最好找时间自己学习一下,对于初学者,最重要的是这些知识中的相关概念的理解,找一找,问一问,总会找到答案的。当然,最好还是系统地去学,这样打好了基础,在往深层次发展时才不会感到步履艰难。这就需要我们的学习下面的材料了! 1.2 初次接触凌阳单片机-SPCE061A 30 课时PPT \61教学与创新\2教材与教案\SPCE061A教学30课时PPT 在这份PPT资料中,以图文、动画的形式向单片机爱好者展示SPCE061A的CPU特点、资源概况,各个硬件外设的工作机制以及使用方法,另外还介绍有关SPCE061A的开发工具介绍、汇编语言、极具特色的语音功能等等。另外,这份PPT资料中,在每一页都写上了详尽的注释,在学习时留意看一下,会发现很多教材上所没有的东西的。这个主要是提供给老师作为凌阳单片机教学和辅导来使用。 1.3 怎么样把凌阳单片机用起来呢? 学以致用,学习单片机无非就是为了使用它。很多同学学习单片机考试通过就算OK。实际上我们认为这种观念是要不得的。单片机绝不是一门等同于模电、数电等科的课程。这是一种工具,是工具就要去用。学过C语言,我们可以在单片机用C语言对硬件进行操作,来熟悉C语言的使用;学过PID算法、模糊控制,我们就可以在水温控制、电机控制等场合去体会控制算法对被控对象的影响;学过卷积(或内积)运算,我们就可以尝试编写软件滤波算法等。当然学过传感器了,我们还可以通过单片机对传感器采集来的数据进行处理。可以说无论是控制、通讯、仪器仪表还是其他什么专业的内容,我们都可以使用单片机这个工具轻易的把理论和实践结合起来。所以学习单片机就要把它看成一个平台。单纯的单片机技术是没有什么用途的,关键是应用。 要能够动起手来做实验,需要这些东西: 1,开发板: 要使用一款单片机,开发板是必不可少的,针对SPCE061A单片机的开发板有好几种:SPCE061A精简开发板(也就是常说的61板了)、实验箱、实验仪。而61板一般是指大家在凌阳大学计划网站上看到的小红电路板,还有一种61板叫61B板,是贴片封装的SPCE061A 精简开发板。简单的说,只要有一块61板,就无需其它开发板设备了,当然我们还需要软件;2,软件开发工具: 要使用SPCE061A单片机,集成开发环境:unSP IDE是必不可少的;光盘中提供两个版本的集成开发环境:unSP IDE 1.16.1和最新的unSP IDE 2.0.0(\工具和开发软件)进行安装后,只要配合开发板、下载线,就可以进行在线仿真、在线调试了。如果需要了解unSP IDE 的使用,可以在SPCE061A的教材书中找到相关的内容,或都也可以通过《unSP IDE用户手册》进行学习。在使用unSP IDE的过程中,如果遇到使用上的问题可以到凌阳大学计划论坛

凌阳单片机的简介

第一章凌阳单片机简介 1.1 单片机简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM,只读存储器ROM,多种I|O接口和中断系统,定时器,计数器等功能(可能还包括显示驱动电路,脉宽调制电路,模拟多路转换器,AD转换器等电路)集成在一块芯片上构成一个小而完善的计算机系统。 单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,它最早是用在工业控制领域。单片机有芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成复杂的而对体积要求严格的控制设备当中。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计算机,和计算机相比,单片机只缺少了I|O设备。概括地讲:一个芯片就成了一台计算机。它的体积小,质量轻,价格便宜,为学习应用和开发提供了便利条件。同时学习是用单片机是了解计算机原理与结构的最佳选择。 1.2 凌阳公司简介 全球第一大消费性芯片设计公司——凌阳科技,1990 年8 月成立于台湾。凌阳科技的主要业务为研发、制造、销售高品质及高附加价值的消费性集成电路(IC)产品。其主要产品包括:液晶IC、微控器IC、多媒体IC、语音、音乐IC 及各式ASICs,同时还提供高性能的外围电路,包括LCD、AGC、DTMF、A/D、D/A、UART、SPI、PCI、计数器和存储控制器等等。 2001 年凌阳科技在大陆隆重推出凌阳大学计划,计划内容包括:共建凌阳单片机实验室;支持大学采用61 板完成电子实习;支持大学采用61 板完成毕业设计等。旨在提高在校生的动手能力,推动教学和新技术的同步发展。 1.3 凌阳 16 位单片机特点 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16 位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的μ’nSP?(Microcontroller and Signal Processor)16 位微处理器芯片(以下简称μ’nSP?)。围绕 μ’nSP?所形成的16 位μ’nSP?系列单片机(以下简称μ’nSP?家族)采用的是模块式集成

飞思卡尔16位单片机的资源配置

以MC9S12XS128MAL为例,其实DG128之类的类似。如图一,128代表的是单片机中的FLASH大小为128K Byte,同理64代表的是单片机中的FLASH大小为64 K Byte,256代表的是单片机中的FLASH大小为256 K Byte。但是S12(X)所使用的内核CPU12(X)的地址总线为16位,寻址范围最大为2^16 =64K Byte,而这64K Byte的寻址空间还包括寄存器、EEPROM (利用Data Flash模拟)、RAM等,因此不是所有的64K Byte都是用来寻址FLASH。所以在S12(X)系列单片机中,很多资源是以分页的形式出现的,其中包括EEPROM、RAM、FLASH。EEPROM的每页大小为1K Byte,RAM的每页大小为4K Byte,FLASH的每页大小为16K Byte。因此XS128中EEPROM的页数为8K/1K = 8页,RAM的页数为8K/4K = 2页,Flash的页数为128K/16K = 8页。 图一

图二

在单片普通模式中,复位后,所有内存资源的映射如图二所示,其中从0x0000-0x07FF 的2K范围内映射为寄存器区,如I/O端口寄存器等,当然寄存器没有那么多,后面的一部分其实没有使用; 从0x0800-0x0BFF,共1K的空间,映射为EEPROM区,由上面的分析,XS128中共有8页的共8K的EEPROM,所以这8页的EEPROM都是以分页的形式出现的,可以通过设置寄存器EPAGE选择不同的页并进行访问; 从0x0C00到0x0FFF的1K空间为保留区(其实这里面也有学问,以后探讨); 从0x1000到0x3FFF的12K空间为RAM区,分为三页,但是和前面所说的EEPROM不同,这三页中有2页(对于XS128和XS256)或一页(对于XS64)为固定页,位于12K空间的后一部分,以XS128为例,其内部的RAM资源为8K,所以其三页中的最后两页(0x2000-0x3FFF)为固定页,第一页(0x1000-0x1FFF)为窗口区,通过设置寄存器RPAGE来映射其他分页的RAM,当然在单片普通模式下,XS128内部已经没有其他的RAM了,所以这一页其实也没有用。但是对于XS256,这一页是有用的,因为它总共有12K的RAM。但是,在单片普通模式下,即没有外扩RAM的情况下,用户是不用刻意的去配置RPAGE的,因为复位的时候,已经默认指向那一页的RAM。 从0x4000-0xFFFF的总共48K的空间为Flash区,分为三页。其中第一页和第三页为固定的Flash页,中间的一页(0x8000-0xBFFF)为窗口区,通过设置PPAGE寄存器,可以映射到其他的分页Flash。 在最后的一页固定的Flash区域中的最后256字节中,保存的是中断向量。 对于RAM和Flash来说,其实固定页和其他的分页资源是统一编址的,不同的是固定

超低功耗八位单片机

Low power 8-bit MCU Low power Operating voltage : 1.1V -3.6V Supply current : 0.5uA@HALT, 1.0uA@RTC operation Flash ROM Short TAT : 2weeks (At the time of factory writing) MASKING charge FREE Software development tool Assembler, C compiler Instruction simulator Low cost Compact ICE Full ICE Hospitable user support FAE lives in Shanghai

Application goods which use MCU of OKI Wrist Watch Data Bank Headphone Stereo Educational Toy LCD Game Mini Disk Remote control Scales Clinical Thermometer Thermostat Industrial Products MCU Product Line Digital Clock Low Voltage with-in Flash Memory Low current consumption Good support

Positioning of microcomputer Power supply voltage Clock frequency 4MHz 10MHz 100MHz Engine control PC,AV etc. Household appliance Motor control Printer Copying machine ETC Industrial meter 1GHz Cellular phone The optimal microcomputer for the application for which the low voltage and operation of low power consumption are needed Electronic Shelf Label Calculator Watch Clock Controller Remote control Thermometer Accessories game Health care Toy Data logger Gas meter Alarm micro controller With-in voice Target Application

基于STM8L15xxx设计的超低功耗8位MCU开发方案

基于STM8L15xxx设计的超低功耗8位 MCU开发方案 2010年05月17日 11:56 不详作者:佚名用户评论(1) 关键字:STM8L15xxx(1) 基于STM8L15xxx设计的超低功耗8位MCU开发方案 ST公司的STM8L15xxx是超低功耗8位MCU系列,采用先进的STM8内核,动态功耗为192 μA/MHZ,16MHz CPU 时钟的性能高达16 MIPS, 工作电压从1.8 V 到3.6 V (低至1.65 V ),多达32KB嵌入闪存程序存储器, 主要用在医疗和手提设备,PC外设,游戏机,GPS,告警系统,有线和无线传感器.本文介绍了STM8L15xxx主要特性,方框图, 时钟树框图和超低功耗STM8L15LPBOARD演示板主要特性,详细电路图. The STM8L15xxx devices are members of the STM8L Ultralow power 8-bit family. They are referred to as medium-density devices in the STM8L15xxx reference manual (RM0031) and in the STM8L Flash programming manual (PM0054). They provide the following benefits: ● Integrated system – Up to 32 Kbytes of medium-density embedded Flash program memory – 1 Kbyte of data EEPROM – Internal high speed and low-power low speed RC. – Embedded reset ● Ultralow power consumption – 192 μA/MHZ (dynamic consumption) – 1 μA in Active-halt mode – Clock gated system and optimized power management – Capability to execute from RAM for Low power wait mode and Low power run mode ● Advanced features – Up to 16 MIPS at 16 MHz CPU clock frequency – Direct memory access (DMA) for memory-to-memory or peripheral-to-memory access.

凌阳单片机C语言(网站整理)

凌阳单片机C语言 注意点一:求实参顺序 unsigned int i; i=0; test(i,i++); 函数test的定义如下: void test(unsigned int f,unsigned int m) { return; } 这里我们不去追究这个函数有无意义,这里并不作讨论。 实际上,跟前面的讲解标准C的求参顺序的例子差不多,只不过把printf函数换成了一个具体的可见的函数而已。在unSP C编写以上的代码,并在IDE中进行仿真时,所得到的结果是与标准C中的是一样的,与前面的分析一样,传递参数给test函数时,test函数的两个参数将得到如下的值:f为2,m为1。感兴趣的读者可以试试。 不言而喻,说明了unSP C是与标准C没什么差别太多的,尽管去按照C语言的标准去写程序好了。 注意点二:数据类型 这里所说的数据类型,指的是我们在编程时定义变量、常量时指定的数据类型,如“char”、“unsigned int”、“int”等。 而在最前面,已经简单提到了,对于C语言,具体的数据类型的定义是可以与具体的机器相关的,也就是说这些数据类型的具体定义(如占多少个字节长度、定义的规则等)是可以容许与最终代码所要运行的CP U(或叫机器)相关的。所以在此提出,是有必要的,因为我们本书的重要目的就是单片机的C语言编程,而且是凌阳的unSP系列单片机的C编程,即有关于使用unSP C的;我们所编写的C代码最终运行的平台是凌阳unSP系列单片机。 unSP C所定义的数据类型,下表中有述,如下: 数据类型数据长度(位)值域 char 16 -32768~32767 short、int 16 -32768~32767 long 32 -2147483648~2147483647 unsigned char 16 0~65535 unsigned short、unsigned int 16 0~65535 unsigned long 32 0~4294967295

ST_STM32L476G某系列超低功耗MCU开发方案

ST STM32L476Gxx系列超低功耗MCU开发案 STM32L476Gxx器件是基于高性能ARM Cortex-M4 32位RISC核的超低功耗微控制器(MCU),工作频率高达80MHz。Cortex-M4核具有单精度浮点单元(FPU),支持所有ARM单精度数据处理指令和数据类型。它还实现了全套DSP指令和存储器保护单元(MPU),加强了应用安全。 STM32L476Gxx器件具有嵌入高速存储器(闪存高达1MB,SRAM高达128KB)、灵活的外接存储器控制器(FSMC)、Quad SPI闪存接口和各种增强的I/O和外设,连接2个APB总线、2个AHB总线和1个32位多AHB总线矩阵。STM32L476Gxx器件为嵌入式闪存和SRAM嵌入了几种保护机制:读保护、写保护、专有代码读保护和防火墙。这些器件还有三个快速12位ADC(5Msps)、两个比较器、两个运放、两个DAC通路、一个部基准电压缓冲器、一个低功耗RTC、两个通用32位计时器、两个马达控制专用16位PWM 计时器、七个通用16位计时器以及两个低功耗16位计时器。这些器件支持外部sigma delta 调制器(DFSDM)的4个数字滤波器。此外,还提供24条电容感应通路。这些器件还嵌入了集成式LCD驱动器8×40或4×44,具有部设置转换器。 它们还具有标准和高级通信接口,包括: 3个I2C; 3个SPI; 3个USART、2个UART和1个低功耗UART; 2个SAI(串行音频接口);

1个SDMMC; 1个CAN; 1个USB OTG全速; 1个SWPMI(单线协议主接口); STM32L476xx的工作温度围为-40℃~+85℃(结温+105℃)、-40℃~+105℃(结温+125℃)和-40℃~+125℃(结温+130℃),由1.71V~3.6V电源供电。全面的节能模式实现了低功耗应用设计。支持某些独立电源:ADC、DAC、OPAMP和比较器的模拟独立电源输入,USB的3.3V专用电源输入,14个I/O的独立供电电压低至1.08V。V BAT输入支持RTC和备份寄存器。STM32L476xx系列提供6种封装选项:64~144引脚封装。 STM32L476xx系列的主要特性 利用FlexPowerControl实现超低功耗 电源电压:1.71V~3.6V 温度围:-40℃~85℃/105℃/125℃ V BAT模式下的电流为300nA:为RTC和32位×32位备份寄存器供电 30nA关断模式(5个唤醒引脚) 120nA待机模式(5个唤醒引脚) 420nA待机模式+RTC 1.1μA Stop2模式,1.4μA Stop2 +RTC 100μA/MHz运行模式

超低功耗单片机

超低功耗单片机——MSP430 MSP430系列单片机的迅速发展和应用范围的不断扩大,主要取决于以下的特点。 强大的处理能力MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHz晶体驱动下指令周期为125ns。这些特点保证了可编制出高效率的源程序。 在运算速度方面,MSP430系列单片机能在8MHz晶体的驱动下,实现1 25ns的指令周期。16位的数据宽度、125ns的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如FFT 等)。 MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用6us。 超低功耗MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。 首先,MSP430系列单片机的电源电压采用的是1.8~3.6V电压。因而可使其在1MHz的时钟条件下运行时,芯片的电流会在200~400uA左右,时钟关断模式的最低功耗只有0.1uA。 其次,独特的时钟系统设计。在MSP430系列中有两个不同的系统时钟系统:基本时钟系统和锁频环(FLL和FLL+)时钟系统或DCO数字振荡器时钟系统。有的使用一个晶体振荡器(32768Hz),有的使用两个晶体振荡器)。由系统时钟系统产生CPU和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM 4)。在等待方式下,耗电为0.7uA,在节电方式下,最低可达0.1uA。 系统工作稳定。上电复位后,首先由DCOCLK启动CPU,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用做CPU时钟MCLK时发生故障,DCO会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。 丰富的片上外围模块MSP430系列单片机的各成员都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器A、定时器A(Timer_A)、定时器B(Timer_B)、串口0、1(USART0、1)、硬件乘法器、液晶驱动器、10位/12位ADC、16位Sigma-DeltaAD、直接寻址模块(DMA)、端口O(P0)、端口1~6(P1~P6)、基本定时器(BasicTimer)等的一些外围

相关文档
相关文档 最新文档