DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 122|回复: 0
打印 上一主题 下一主题

AT89C55WD 单片机原理及应用

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:05:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                   

  AT89C55WD 是一个低电压,高性能CMOS 8 位单片机,片内含有20KB的可重写快速闪存存储器和只读程序和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,引脚兼容工业标准89C51和89C52芯片,采用通用编程方式,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微处理器的AT89C52可为您提供许多高性价比的解决方案,适用于多数嵌入式应用系统。
  AT89C55WD有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内时钟电路,AT89C55WD采用两种软件控制其进入省电睡眠模式的静态逻辑工作闲置方式设计,可以用RAM、定时/计数器、串行口和外部中断唤醒睡眠状态而继续工作,在睡眠模式下,RAM被冻结,其他功能全部停止,直至下个外中断触发或硬件复位方可开始运行。特别是可反复擦写的Flash存储器可有效地降低开发成本。








? AT89C55WD有具有PLCC、PDIP和TQFP三种封装形式,以适应不同产品的需求。



1. 主要功能特性:

· 兼容MCS51指令系统
· 20k可反复擦写(>1000次)Flash ROM

· 32个双向I/O口
· 256x8 bit 内部RAM

· 3个16位可编程定时/计数器中断
· 时钟频率0-33MHz

· 2个串行中断
· 硬件看门狗(WDT)

· 2个外部中断源
· 可编程串行通道

· 2个读写中断口线
· 3级加密位

· 片内时钟电路
· 低功耗睡眠功能


· 4-5.5V工作电压范围

· 软件设置睡眠外中断唤醒功能
2. 看门狗定时器( WDT):

WDtrST的地址为: 0A6H
  WDT 在 CPU 落入软件运行失控的情况下可作为一种恢复的方法。 WDT 包含一个 13 位计数器和看门狗 定时器复位 SFR ( WDtrST )。 WDT 在上电时被禁止。若想使能 WDT , 用户必须将 01EH 和 0E1H 依次写入 WDtrST 地址( 0A6H )。 当 WDT 使能后,在振荡器运行的情况下每过一个机器周期加 1 。 此后无法禁止 WDT , 除非通过复位(硬件复位或者 WDT 溢出复位)。当 WDT 溢出时它会在 RST 脚产生一个复位脉冲。
使用 WDT
  要使能 WDT , 用户必须将 01EH 和 0E1H 依次写入 WDtrST 。 当 WDT 使能后,用户需要定期将 01EH 和 0E1H 依次写入 WDtrST 以避免 WDT 。 溢出 13 位计数器在到达 8191 ( 1FFFH ) 后溢出并将芯片复位。 当 WDT 使能后,在振荡器运行的情况下每过一个机器周期加 1 。 这意味着用户必须在 8191 个机器周期内 至少复位 WDT 一次。要想复位 WDT , 用户必须将 01EH 和 0E1H 依次写入 WDtrST 。 WDtrST 是一个 只写寄存器。复位脉冲持续 98 × Tosc ( 6 时钟模式)( 12 时钟模式下为 196 ) 此处 Tosc=1/fosc 。
下面给出一个例程:
  将看门狗定时器放在T1中,每中断一次,需50ms,当计数器,计满1秒给R19加1。当主程序或子程序在10秒之内还未对R19清0,说明程序可能“跑飞”,这看门狗使能,将AT89C55WD复位,从地址0000H处开始执行。
R19 DATA 13H??? ;
R23 DATA 17H??? ;ms计数器
T1int:???????????????? ;定时(计时)器
????? MOV TH1, #4CH
????? MOV TL1, #00H??? ;计满重装初值(约50ms)?
??????INC R23????????? ;(20次*50ms)=1000ms=1s
????? MOV A,R23
????? CJNE A,#20,T1int_01 ;计满1s向下?
??????INC R19???????????? ;用于看门狗定时
????? MOV A,R19
????? CLR C
????? SUBB A,#10?
??????JC T1int_01??? ;10秒到向下,复位?
??????CLR EA
????? MOV WDtrST,#01EH ;WDT使能,13bit
????? MOV WDtrST,#0E1H ;TOSC=1/FOSC.
????? JMP $
T1int_01: RETI
3.辅助功能寄存器 AUXR(08EH):

SRF 的地址 8EH
复位值 XXX00XX0B



bit

-

-

-

WDIDLE

DISRTO

-

-

DISALE


7

6

5

4

3

2

1

0

4.辅助功能寄存器1 AUXR1(0A2H):

SFR 的地址A2H
复位值xxxxxxx0B



bit

-

-

-

-

-

-

-

DPS


7

6

5

4

3

2

1

0

双数据指针 DPtr 结构:
  双DPtr数据指针,通过对AUXR1 的DPS 位编程可实现两个DPtr 寄存器的切换。
  此处,DPS 为AUXR1 的位0,用于切换指针DPtr0 和DPtr1。?

选择数据指针:
  DPS=0,选取DP0L,DPOH,即选择DPtr0,如 (MOV AUXR1,#00H);
  DPS=1,选取DP1L,DP1H,即选择DPtr1,如 (MOV AUXR1,#01H)。
  当切换DPtr0 和DPtr1 时应当通过软件来保存DPS。
DPtr 指令
??  DPtr 指令根据当前AUXR1 位0的值,可作为数据指针,下面是使用DPtr 的6 个指令?:
  INC DPtr???????? ;数据指针加1?
  MOV DPtr,#data16 ;DPtr 装载16 位常数? 
  MOV A,@A+DPtr??? ;将与DPtr 相关的代码字节送入ACC?
  MOVX A,@DPtr?????;外部RAM 16 位地址的内容装入ACC
  MOVX @DPtr,A?????;把ACC 的内容送到外部RAM 16 位地址
  JMP @A+DPtr??????;间接跳转到与DPtr 相关的地址
可以通过寻址SFR 的低字节或高字节来寻址数据指针。
  AT89C55WD其它寄存器功能与设置和AT89C52相同。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-22 11:21 , 耗时 0.100693 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表