- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈理工课程设计——C51与开发环境.ppt
学年设计智能4路模拟量巡检仪C51语言与开发环境 哈尔滨理工大学自动化系 2010.12 目录 Ch1. C51语言 Ch2. 工程文件 Ch3. 星研开发环境 Ch4. Keil C开发环境 Ch5. STC51单片机的程序下载 Ch6. 工程文件实例 Ch1 C51语言 概述 Ch1 C51语言 数据类型的扩充 Ch1 C51语言 存储器类型 Ch1 C51语言 存储器模式 Ch1 C51语言 存储器模式 Ch1 C51语言 数据定义举例 Ch1 C51语言 中断服务函数 Ch1 C51语言 中断服务函数 Ch1 C51语言 实例 Ch1 C51语言 实例 Ch2 工程文件 工程文件 Ch2 工程文件 使用工程文件的基本步骤 Ch3 星研开发环境 注意事项 Ch4 Keil C开发环境 注意事项 Ch5 STC51单片机程序下载 Ch5 STC51单片机程序下载 图片 Ch6 工程文件实例 任务步骤 Ch6 工程文件实例 硬件电路分析 * * C51是用于开发MSC51系列单片机的C语言 C51兼容与ANSI C C51对ANSI C做了扩充,使之适合与MSC51系列的单片机 假定熟悉C语言 bit--定义一个位变量 bit flag; sbit--定义特殊功能寄存器中的某个位 sbit CLK0=P2^4; sfr和sfr16--定义特殊功能寄存器 sfr PSW=0xD0; 指针类型 由于MCS51系列单片机采用的是隔离编址(独立编址)方式,因此片内寄存器、片内RAM、程序存储器、片外数据存储器的寻址方式是不同的。对于指向不同存储区的指针,需要用不同的方式定义。 扩充关键字:data,bdata,idata,sfr,code,xdata,pdata 变量和常量必须以一定的存储器类型定位于单片机的存储区域中。 ROM区域,间接寻址,共64k字节。(MOVC @DPTR) 16 code 片外RAM,间接寻址,共64k字节。(MOVX @DPTR) 16 xdata 片外RAM的前256字节,分页间址,共256字节。(MOVX @Ri) 8 pdata 片内RAM的高128字节,间接寻址,共128字节。 (MOV @Ri) 8 idata 片内RAM低128字节,直接寻址,共128字节。 (MOV Ri) 8 data 片内RAM,位寻址区,共128位。(亦能字节访问) 1 bdata 对应单片机存储器 长度(位) 存储器类型 如果用户不对变量的存储器类型进行定义,C51编译器采用默认的存储器类型。由编译控制命令中的存储模式指令限制。 char var;/* 在SMALL模式时,var定位data存储区 */ /* 在COMPACT模式时,var定位pdata存储区 */ /* 在LARGE模式时,var定位xdata存储区 */ 用DPTR间址片外RAM,代码长,效率低。重入栈在xdata中模拟 xdata LARGE 片外RAM小于256,用R0和R1间址片外分页RAM;栈在片内RAM中。 pdata COMPACT 直接访问片内RAM;栈在片内RAM中。 data SMALL 特 点 默认存储类型 存储模式 int data ibase; /* 定义整形变量ibase ,位于data区 */ char code Tab[10]; /* 定义字符数组array[4] ,位于code区 */ char data * str; /* 指向data 空间char型数据的指针 */ int *data number; /* 位于data 空间的一般指针 */ int data *data num; /* 指针本身在data空间 */ char code *xdata strptr; /* 位于xdata 空间的指向code空间的指针 */ 中断函数的定义形式为: void 函数名(void)interrupt n [using m] { 函数体 } n 表示中断源的编号,范围是0~31 m 表示中断服务函数使用的寄存器组 常用的中断源对应的中断号 using 用于指定使用的工作寄存器组,m的范围是0~3。不设定工作寄存器组时,编译系统会将当前工作寄存器组的寄存器压入堆栈。 在应用程序中任何函数都不能调用中断服务函数,因为它是由系统调用的。 4 3 2 1 0 中断号 串行口 定时器1 外中断1 定时器0 外中断0 中断源 用T0方式1,产生10ms的定时,使P1.0引脚上输出周期为20ms方波,采用中断方式,设系统
您可能关注的文档
最近下载
- 2024年第四季度医德医风培训.pptx VIP
- 医院感染管理规范.pdf VIP
- 甲基封端及环氧基封端聚醚的合成及应用.pdf VIP
- 大学生职业生涯规划与就业指导论文.docx VIP
- T∕CCAS 014.7-2022 水泥企业安全管理导则 第7部分:水泥工厂承包商安全.docx VIP
- rocscienceslide二维边坡稳定分析.ppt VIP
- 基层卫生院优质服务基层行-3.3.1查对制度.docx VIP
- 监理服务方案.docx VIP
- T∕CCAS 014.6-2022 水泥企业安全管理导则 第6部分:水泥工厂危险能量隔离管理.docx VIP
- 《网络改变世界》PPT课件【优质】.pptx VIP
文档评论(0)