网站大量收购独家精品文档,联系QQ:2885784924

单片机原理与接口技术第4章MCS-51C程序设计教学幻灯片讲义.ppt

单片机原理与接口技术第4章MCS-51C程序设计教学幻灯片讲义.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
演示文稿演讲PPT学习教学课件医学文件教学培训课件

4.3.5 位地址访问 C51编译器支持bit数据类型,在C51程序中可以使用bit数据类型对位地址进行操作。 C51对位变量的定义有3种方法: 1.用bit关键字定义C51位变量 2.通过指定函数中参数为bit类变量 3.定义位寻址存储区的位变量 ----位变量定义 4.3.5 位地址访问 1.用bit关键字定义C51位变量 例如: bit lock; /*将lock定义为位变量*/ bit dirention; /*将direction定义为位变量*/ bit display; /*将display定义为位变量*/ 注意:不能定义位变量指针; 也不能定义位变量数组。 ----用bit定义位变量 例如: bit fun(bit a1,bit a2) { …… return(a1); } 4.3.5 位地址访问 2.通过指定函数中参数为bit类变量 ----函数参数为位变量 ----位寻址存储区的位变量定义 3.定义位寻址存储区的位变量 C51编译器允许数据类型为bdata的变量放入片内RAM可位寻址区中。 例如:先定义变量的数据类型和存储类型,然后使用sbit定义位变量。 bdata int ibdata; /* ibdata定义为bdata整型变量*/ bdata char carry[5]; /* carry定义为bdata字符数组*/ sbit mybit0= ibdata^0; /* mybit0定义为ibdata的第0位*/ sbit mybit15= ibdata^15; /* mybit15定义为ibdata的第15位*/ 4.3.5 位地址访问 ----位寻址存储区的位变量定义 sbit arrybit07= carry[0]^7; /* arrybit07定义为carry[0]的第7位*/ sbit arrybit37= carry[3]^7; /* arrybit37定义为carry[3]的第7位*/ arrybit37=0; /*carry[3]的第7位赋值为0(位寻址)*/ carry[0]=’A’; /*carry[0]赋值为’A’(字节寻址)*/ 位置(^操作符)后的最大值取决于指定的基本数据类型。对于char而言是0~7;对于int而言是0~15;对于long而言是0~31。 4.3.5 位地址访问 4.3.6 中断函数 中断服务程序在C51程序中是以中断函数的形式出现的,中断函数的格式为: void 函数名( ) interrupt n using m { 函数体语句 } interrupt是中断函数的关键字,n是中断号,MCS-51的中断号与中断源的对应关系如表5-5所示。 using是指定中断函数中选用工作寄存器组的关键字,m是0~3范围的常数,若不用该选项,编译器会自动选择默认工作寄存器组(0组寄存器)。 ----中断函数的格式 表4-6 MCS-51中断源和中断的关系 中断号 中断源 入口地址 0 外中断0 0003H 1 定时/计数器0 000BH 2 外中断1 0013H 3 定时/计数器1 001BH 4 串行口中断 0023H void 函数名( ) interrupt n using m 4.3.6 中断函数 ----中断函数的中断号 例: void T0_srv(void) interrupt 1 using 1 /*定时/计数器0中断函数*/ { …… /*定时/计数器0中断服务程序*/ } 中断号 中断源 入口地址 0 外中断0 0003H 1 定时/计数器0 000BH 2 外中断1 0013H 3 定时/计数器1 001BH 4 串行口中断 0023H 4.3.6 中断函数 ----中断函数举例 编写中断函数要点: 1) 中断函数不能进行参数传递。 2) 中断函数没有返回值,应定义为void型。 3) 禁止对中断函数的直接调用。 4) 如果中断函数调用了其他函数,被调函数与中断函数使用相同的寄存器组。 5) 中断函数最好写在程序尾部。 void 函数名( ) interrupt n using m 4.3.6 中断函数 ----编写中断函数要点 4.4 C51结构化程序设计 C51程序是一种结构化程序,由若干模块组成,每个模块中包含若干个基本结构,而每个基本结构中可以有若干条语句。 基本结构有三种: 顺序结构 选择结构 循环结构 ---- 三种结构程序

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档