- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机的C语言程序设计与应用——基于Proteus仿真(第2版)
c51语言的存储类型与8051存储空间的对应关系
存储区 描述
data 片内RAM的低128字节,可在一个周期内直接寻址
bdata 片内RAM的位寻址区,16字节
idata 片内RAM的256字节,必须采用间接寻址
xdata 外部数据存储区,使用DPTR间接寻址
pdata 外部存储区的256个字节,通过P0口的地址对其寻址。
使用MOVX@Ri,需要2个指令周期。
code 程序存储区,使用DPTR寻址
3-1整型变量的例子
#includereg52.h
//特殊寄存器的头文件
#includestdio.h
// I/O库函数原型声明
void main(void)
{int a,b,c,d;
Unsigned int u;
指定a,b,c,d为整型变量
指定u为无符号整型变量
//设定串行口的数据传输速率为1200bit/s,
晶振频率为16MHZ
SCON=0x50;
//模式1,8bit异步串行口通信
TMOD=0x20;
//定时器1为模式2,8bit自动装载方式
TH1=221; //1200bit/s的装载值,16MHZ
TR1=1; //timer1运行
TI=1; //设置为1,已发送第一个字符
A=12;b=-24;u=10;
C=a+u;d=b+u;
Printf (a+u=%d,b+u=#d\n,c,d)
While(1){};
}
运行结果a+u=22,b+u=24
3-2头文件引用示例
#includereg51.h //使用的单片机为Intel公司的MCS-51
void main(void)
{TL0=0xb0; //访问定时器0,设置时间常数
TH0=ox3c;
TR0=1; //启动定时器0
…
}
3-3 sbit型变量的定义示例
程序如下:
sfr PSW=0xD0;
sbit OV=PSW^2;
sbit OV=0xd0^2;
sbit OV=0xD2;
unsigned char bdata flag;
sbit flag0=flag^0;
sfr p1=0x90;
sbit p1_0=p1^0;
sbit p1_1=p1^1;
sbit p1_2=p1^2;
sbit p1_3=p1^3;
sbit p1_4=p1^4;
sbit p1_5=p1^5;
sbit p1_6=p1^6;
sbit p1_7=p1^7;
3-4 片内I/O口及其位的定义示例。
程序如下:
sfr P1=0x90; //P1口的SFR定义
sfr P3=0xB0; //P3口的SFR定义
sbit DIPswitch=P1^4; //P3口的4位DIP开关输入
sbit greenLED=P1^5; //P1口的5位的绿LED输出
void main(void)
{ unsigned char data inval;
inval=0; //inval的初始化值
while(1)
{ P1=0XFF;
if(DIPswitch==1) //检查P1.4输入是否为高
{ inval=p10x0f; //从P1读位0~3
greenLED=0; //置P1.5输出为低
}
else //若P1.4输出为低
{ greenLED=1; //置P1.5输出为高
}
P3=(P30xf0)|(P10X0f); //值输出到P3.0~P3.3
}
}
3-5 片内RAM、片外RAM及I/O的定义示例
程序如下:
#includeabsacc.h
#define PA XBYTE[0xffec] //将PA定义为外部I/O口,地址为0xffec
#define NRAM DBYTE[0x40] /*将NRAM定义为片内RAM,地址为40H,长度为8位*/
void main(void)
{ PA=0x3A; //将数据3AH写入地址0xffec的外部I/O端口
NRAM=0x01; //将数据01H写入片内RAM40H单元
}
3-6 通过_at_实现绝对地址的访问示例。
程序
您可能关注的文档
- 北京市密云二中2012届高三12月月考试题 数学试题.doc
- 北京小升初语文资料:小学105个易错成语卡片(为孩子收藏着).docx
- 北京市密云二中2012届高三12月月考试题(历史).doc
- 北京市某污水处理厂原有设备拆除施工方案_secret[指南].doc
- 北京市朝阳区九年级综合练习12010年北京市朝阳区初三二模物理试卷(含答案).doc.docx
- 北京市海淀区2014年春季高中会考历史模拟试卷.doc
- 北京市海淀区2014年1月八年级上期末统考数学试卷及答案.doc
- 北京市环境卫生统计报表制度(2008年).doc
- 动物高效繁殖实用技术_图文.ppt.ppt
- 北京市朝阳区2016年初三二模物理试题 20166月.doc
- 江苏省农垦集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版及参考答案.docx
- 江苏澄达集团有限公司校园招聘模拟试题附带答案详解完整.docx
- 河北衡水老白干酿酒集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版完.docx
- 2025年注册消防工程师之消防安全技术实务题库(全国通用).docx
- 2025年河南省濮阳市单招职业适应性测试必刷测试卷附答案.docx
- 河北兴泰发电有限责任公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版附答案.docx
- 2025年法律职业资格之法律职业客观题二题库及完整答案(夺冠系列).docx
- 江苏宝胜集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版带答案.docx
- 江苏省农垦集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版及答案1套.docx
- 2025年法律职业资格之法律职业客观题二题库【满分必刷】.docx
文档评论(0)