- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AT89S52快速入手
At89S52快速入手
——屈召贵
一、特性
与MCS-51单片机产品兼容
8K字节在系统可编程Flash存储器
1000次擦写周期
全静态操作:0Hz~33Hz
三级加密程序存储器
32个可编程I/O口线
三个16位定时器/计数器
八个中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
特性描述
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
二、C51中较特殊存储变量
⑴一般变量的定义。变量定义语句,与C语言一致但有扩展(注意行后的分号),一般格式是:
[存储种类] 数据类型说明 [存储器类型] 变量名1[=值],变量名2[=值],……;
举例:auto unsigned char bdata flag=0x45;data 8 00H-7FH 位寻址片内RAM bdata 8 20H-2FH 间接寻址片内RAM idata 8 00H-FFH 分页寻址片外RAM pdata 8 00H-FFH 寻址片外RAM xdata 16 0000H-FFFFH 寻址ROM code 16 0000H-FFFFH
④变量名1 [=值]:
注:存储模式,解决变量的默认存储类型和参数传递区
⑵ C51中两种位变量定义(特殊形式的变量定义):
①bit位变量的定义:
bit bdata bflag; //在bdata区中定义位变量bflag,在哪个具体位地址?用户无权决定,由C51编译器安排。
②sbit位变量的定义: 4条位变量定义语句sbit P03=P0^3;sbit P12=0x80^2;P13=0x93;我们认为bit是不可指定位地址的位变量关键字;sbit是必须指定位地址的位变量关键字,一般用于特殊功能位变量,所以冠以“s”。#include absacc.h ”这样的预处理命令行引入了这个头文件,就引入了下列特殊的带参数的关键字:
DBYTE[有效地址] PBYTE[有效地址 ]
XBYTE[有效地址] CBYTE[有效地址 ]
DWORD[有效地址] PWORD[有效地址]
XWORD[有效地址] CWORD[有效地址]
注意所谓有效地址,必须是与关键字中的“Data”、“Pdata”、“Xdata”、“Code”这些存储器类型相应的地址。
以宏名DBYTE[区内有效地址值]的名义访问data区中该地址所指的字节单元:
比如:x=DBYTE[0X40]; 读取data区中地址为0x40的byte(字节)单元内容并赋值给变量x
DBYTE[0X40]=x; 读取变量的值并赋值给(写入)xdata区中地址为0x40的byte(字节)单元
以宏名XBYTE[区内有效地址值]的名义访问xdata区中该地址所指字节单元:
比如: x=XBYTE[0X2000]; 读取xdata区中地址为0x2000的字节单元内容并赋值给变量x
XBYTE[0X2000]=x; 读取变量的值并赋值给xdata区中地址为0x2000的字节单元
以宏名XWORD[区内有效地址值]的名义访问xdata区中该字地址所指字单元(word):
比如: x=XWORD[0x2000];读取xdata区中字地址为0x2000的字单元内容并赋值给变量x。
XWORD[0x2000]=x;读取变量x的值赋值给xdata区中字地址为0x2000的字单元。
三、at89s52内部模块的应用
(一)I/O的应用
At89s52单片机有4个8位的并行输入/输出接口:P0、P1、P2、和P3口。这4组共计32位既可以并行输入或输出8位数据,又可以按位方式操作。
应用举例:
检测矩阵键盘按键号码,并将号码通过一位数码管显示器显示出来。电路如图所示。
1、矩阵键盘操作分为两种:一种叫查询方式、一种叫中断方式
以查询方式为例进行说明:
横线:P1.0、P1.1、P1.2、P1.3
列线:P1.4、P1.5、P1.6、P1.7
方法是纵模两线取两次求交点:
(1)先给P1=0x0F 高四位为0,低四位为1,检测P1的状态,看有没有变化,如果P10x0F,说明有按键按下,保存当前的P1口的值,因为还无法判断是哪个按键被按下去了。比如说P1.0为
文档评论(0)