- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例题 下列程序段执行后,a=0xff80,b=0x0040。 相关知识 unsigned int a,b; char i,j; i=0x80;j=0x40; a=i;b=j; 4、特殊功能寄存器的定义 ⑴8位的特殊功能寄存器定义: sfr 特殊功能寄存器名=特殊功能寄存器的地址; 例如: sfr P0=0x80; //定义特殊功能寄存器P0,其地址为0x80 sfr P1=0x90; //定义特殊功能寄存器P1,其地址为0x90 sfr TMOD=0x89; //定义特殊功能寄存器TMOD,其地址为0x89 【说明】 ①关键字sfr后面的特殊功能寄存器名实际上是一个标识符,可以任意选取,但一般用大写字母表示。 ②赋值符“=”后面的地址必须是位于0x80~0xff之间的常数,不能是带有运算符的表达式。 ③MCS-51单片机的特殊功能寄存器的地址详见表1-3。 相关知识 ⑵16位的特殊功能寄存器的定义 sfr16 寄存器名=寄存器低字节的地址值; 例如: sfr16 DPTR=0x82;//定义16位的寄存器DPTR,其低字节DPL的 地址为0x82,高字节DPH的地址为0x83 【说明】 用sfr16将2个特殊功能寄存器定义成一个16位的特殊功能寄存器,需要这两个特殊功能寄存器满足下列条件: ①需要组合成16位来访问。 ②两特殊功能寄存器的地址连续,且高字节位于高地址处,低字节位于地址处。 相关知识 ⑶可寻址位的定义 特殊功能寄存器中,字节地址能被8整除的特殊功能寄存器的每一位都分配有位地址,这些特殊位就是可寻址位。另外,片内RAM 0x20~0x2f这16个字节的每一位也都分配有位地址,也是可寻址位。 格式一: sbit 可寻址位名=特殊功能寄存器名^位置编号; 【说明】 ①特殊功能寄存器名必须是已经定义了的特殊功能寄存器的名称,并且该特殊功能寄存器的字节地址能被8整除。 ②位置编号为可寻址位在特殊功能寄存器中的位置编号,其值为0~7。 例如: sfr P0=0x80; //定义特殊功能寄存器P0,其地址为0x80 sbit P0_0=P0^0; //定义可寻址位P0_0,它是P0的第0位 相关知识 格式二: sbit 可寻址位名=字节地址^位置编号; 相关知识 【说明】 ①定义特殊功能寄存器中的可寻址位时,字节地址必须位于0x80~0xff之间,并且能被8整除。 ②定义片内RAM 0x20~0x2f中的可寻址位时,字节地址必须位于0x20~0x2f之间。 ③位置编号与格式一中相同。 例如: sbit P1_1=0x90^1;//定义可寻址位P1_1,其位地址为0x91 sbit TR0=0x88^4; //定义可寻址位TR0,其位地址为0x8c sbit mybit=0x20^1;//定义可寻址位mybit,它是片内RAM 0x20的第1位 格式三: sbit 可寻址位名=位地址值; 相关知识 例如: sbit P1_1=0x91; //定义可寻址位P1_1,其位地址为0x91 sbit OV=0xd7; //定义可寻址位OV,其位地址为0xd7 5、并行端口P1的应用特性 P1口的位结构如下: 相关知识 P1口的输出特性 ①输出驱动级内接有上拉电阻。P1口作为输出端口使用时,其外部引脚上可以不接上拉电阻。 ②输出具有锁存功能。特殊功能寄存器P1是P1口的输出锁存器。 ③输出数据操作。向特殊功能寄存器P1写数,数据就从P1口并行输出;向特殊功能寄存器P1的某一位P1.i写一位数,该数位就从P1.i引脚输出。 相关知识 例如: sfr P1=0x90; //定义特殊功能寄存器P1 sbit P1_1=P1^1; //定义P1的第1位 sbit P1_5=P1^5 ; //定义P1的第5位 P1=0x5a; //P1口并行输出数据0x5a,P1.7~P1.0依次输P1_1=1; //P1.1口线输出高电平1 P1_5=0; //P1.5口线输出低电平0 相关知识 P1口的输入特性 ①输入具有缓冲功能。 ②读取引脚信号的方法比较特殊。读引脚输入的方法是,先向特殊功能寄存器P1的每一位数写1,再读端口。 相关知识 例如,读P1.5引脚上的数据就要用如下程序段: P1_5=1; //向
原创力文档


文档评论(0)