




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 单片机的C语言编程,9.1 C51编程语言简介 9.2 C51的数据类型 9.3 数据的存储器类型和存储器模式 9.4 SFR、位变量、存储器和I/O接口的定义 9.5 C51的函数和运算符 9.6 汇编语言与C51的混合编程 9.7 C语言单片机程序编写举例,9.1 C51编程语言简介,9.1.1 C51编程语言 C语言与任何特定的硬件或系统无关。 C语言的代码效率高,可与汇编语言媲美。 既可以实现高级语言的模块化编程,又可以实现很多底层的操作。 在对效率或硬件操作要求比较高的地方,一般采用C语言和汇编语言联合编程的方法。,C51语言具有的以下优点: (1) C51自动管理存储器的分
2、配,无需考虑不同存储器的寻址和数据类型等细节。 (2) 程序由函数构成,便于进行模块化程序设计。 (3) 子程序库丰富,大大减轻了编程的工作量。 (4) 可以与汇编语言交叉编程,使编程更加灵活方便,便于提高程序的性能。,9.1.2 C51的程序结构,C51程序的基本结构如下所示,包含五个部分( ): #include /*预处理文件*/ #include 全局变量说明 /*可被程序中所有函数引用的变量*/ function1(形参列表); /*函数1声明*/ functionN(形参列表); /*函数N声明*/,main( ) /*主函数,程序入口*/ 局部变量说明 /*只能在本函数体内引用的
3、变量*/ C 执行语句 /*包括可能的函数调用语句等*/ ,function1(形参列表) /*函数1*/ 形参说明 局部变量说明 C 执行语句 /*包括可能的函数调用语句等*/ functionN(形参列表) /*函数N*/ 形参说明 局部变量说明 C 执行语句 /*包括可能的函数调用语句等*/ ,C51 语言的基本规则如下: (1) 变量必须先说明后引用,所有符号对大小写敏感。 (2) 每条语句必须以分号“;”结尾,一行可以写多条语句,一条语句也可以写多行。 (3) 注释用/*/表示,或用/表示(注意/只能注释一行)。 (4) 花括号必须成对出现,书写位置不限。 下面是一段在C51学习中经
4、常被引用的程序:,#include /AT89X51 头文件 #include void main() /*这是第一种注释方式*/ /这是第二种注释方式 SCON=0 x50; /串行口方式1,允许接收 TMOD=0 x20; /定时器1定时方式2 TCON=0 x40; /设定时器1开始计数 TH1=0 xE8; /11.0592MHz1200bps TL1=0 xE8; TI=1; /设置TI发送第一个字符至串口 TR1=1; /启动定时器 while(1) printf(helloworld! n); /显示Hello World! ,9.2 C51的数据类型,C51 的数据分为常量和变
5、量。 常量是在程序的运行过程中不能被改变的量,变量是在程序运行过程中可以被改变的量。 变量由变量名和变量的内容构成。变量名指出了变量存放的位置,其内容就是变量的值。 无论变量还是常量,其实都是一个容器,它们的名字是容器的地址,它们的内容是容器的值。 它们在存储器中具体的存储位置则是由编译器自动进行安排的。,9.2.1 C51常量的类型,(1)数值型常量 对于数值型常量可以用const和define来定义,如 int const a = 10; (2)符号型常量 对于符号型常量,必须用宏定义指令定义,如:#define PI 3.1415926,9.2.2 C51变量的类型,定义一个变量的格式如
6、下: 存储种类 数据类型 存储器类型 变量名表 存储种类可分为两类四种:自动(auto)、外部(extern)、静态(static)和寄存器(register),缺省类型为自动(auto)。 自动和寄存器属于动态存储变量;外部和静态属于静态存储变量。,团结协作、形成凝聚力是教研组建设的前提。下面是小编整理提供的教研组工作计划范文,欢迎阅读参考!希望大家采纳!更多相关信息请关注美文网的栏目!篇一一、基本情况:综合组本学期共有教师11人,分别担任英语、心理、科学和信息技术的教学工作。综合组工作有其特色和活力,但由于课程综合性较强,所担任科目也不一样,教研组工作的开展仍需各位教师加强团队合作精神,共
7、同探讨。二、指导思想根据学校总体工作计划的安排和教导室的教研工作安排,认真学习先进的教育思想和新的课程标准、积极实践课改理念,全面深化素质教育,以更新观念为前提,以提高师资整体素质为核心,紧紧围绕“课堂教学”这一主线,结合本校特点,加强教学研究,不断解决教学中的新问题,更新教学观念,改变教师的教学行为和学生的学习方式,使我组教学质量稳中有升。三、工作重点及要求:1.认真做好新课程实验工作,最大限度地提高课堂教学效果。2.加强组内教研,做好听课评课工作,使组内教师课堂教学水平得以提高。认真备课,学习各学科的课程标准,加强集体备课,提高备课质量,为上课做好准备。认真执行学校的上课、听课制度,并通过
8、听课使本组教师,说明: (1) 字符型、整型和长整型数据均分为有符号型和无符号型两种。有符号型数据以补码形式在内存中存放。 (2) 编译程序时,编译器自动进行数据类型转换。当运算符两边的数据类型不同时,编译器将低级的数据类型转换为较高级的数据类型。运算结果为高级数据类型。 (3)bit、sbit、sfr和sfr16数据类型用于8051硬件和C51编译器,并不是标准C语言的一部分,不能通过指针进行访问。bit、sbit、sfr和sfr16数据类型用于访问8051的特殊功能寄存器,例如sfr P0 = 0 x80,表示声明变量P0,并为其分配特殊功能寄存器地址0 x80。,9.3 数据的存储器类型
9、和存储器模式,9.3.1 数据的存储器类型,1.DATA区 DATA 区的寻址是最快的,所以应该把经常使用的变量放在DATA区,但是空间有限。DATA区声明中的存储类型标识符data,通常指低128B的内部数据区存储的变量,可直接寻址。举例如下: unsigned char data system_status=0; unsigned int data unit_id2; char data inp_string16; float data outp_value; mytype data new_var;,2.BDATA区 BDATA区实际就是DATA区中的位寻址区,在这个区声明变量就可进行位
10、寻址。BDATA区声明中的存储类型标识符为bdata,指内部可位寻址的16B存储区(20H2FH)可位寻址变量的数据类型。 unsigned char bdata status_bute; unsigned int bdata status_word; unsigned long bdata status_dword; sbit stat_flag=status_byte4; if(status_word15) stat_flag=1;,3.IDATA 区 IDATA区也可存放使用比较频繁的变量,使用寄存器作为指针进行寻址,即在寄存器中设置8位地址进行间接寻址。IDATA区声明中的存储类型标识
11、符为idata,指内部的256B的存储区,但是只能间接寻址,速度比直接寻址慢。举例如下: unsigned char idata system_status=0; unsigned int idata unit_id2; char idata inp_string16; float idata outp_value;,4.PDATA 区和XDATA区 PDATA区和XDATA区属于外部存储区,最多可有64KB,当然这些地址不是必须用作存储区的。但PDATA区只有256B,而XDATA区可达到65535B。声明举例如下: unsigned char xdata system_status=0;
12、unsigned int pdata unit_id2; char xdata inp_string16; float pdata outp_value;,5.CODE区 程序在存储区CODE中的数据是不可改变的,跳转向量和状态表对CODE区的访问和对XDATA区的访问时间是一样的。程序存储区声明举例如下: unsigned int code unit_id2=1234; unsigned char code a = 0 x00, 0 x01,0 x02, 0 x03, 0 x04, 0 x05, 0 x06, 0 x07, 0 x08, 0 x09, 0 x10, 0 x11, 0 x12,
13、 0 x13, 0 x14, 0 x15 ;,9.4 SFR、位变量、存储器和I/O接口的定义,9.4.1 特殊功能寄存器(SFR)的定义 1. sfr sfr用来定义字节寻址的特殊功能寄存器,如: sfr P0 = 0 x80;/表示P0口地址为80Hsfr TMOD = 0 x89; /定义定时器模式寄存器地址 sfr Acc = 0 xc0; /定义累加器地址 sfr SCON = 0 x98; /定义串行通信控制寄存器地址,2.sfr16 sfr16用来定义16位的特殊功能寄存器,如DPTR通过名字或地址来引用特殊功能寄存器,地址必须高于80H。许多新的8051派生系列单片机用两个连续
14、地址的SFR来指定16位值,例如8052用地址0 xCC和0 xCD表示定时/计数器2的低和高字节,如: sfr16 T2=0 xCC; /*表示T2 口低地址T2L=0 xCC,高地址T2H=0Xcd*/,3. sbit (1)sbit位变量名SFR寄存器名位位置 sfr PSW = 0 xD0; /声明PSW为特殊功能寄存器,地址为0 xD0 sbit EA=IE7; /指定IE的第7位为EA,即中断允许 sbit P0_1=P01; /P0_1 定义为P0 的第1 位 一般可把特殊功能寄存器的声明放在一个头文件中,例如: #include sbit P2_7=P27; /P2_7 定义为
15、P2 的第7 位 sbit acc_0=ACC0; /acc_0 定义为ACC 的第0 位,(2)sbit位变量名位地址 sbit P1_1 = 0 x91; sbit CY = 0 xD7; sbit EA = 0 xAF; (3)sbit 字节地址位位置 该变量用一个整常数作为sbit的基地址,基地址值必须能被8整除。“”后面的表达式指定位的位置,必须在07之间。例如: sbit OV = 0 xe02; /指定地址为0 xe0的第2位为OV,即溢出标志,9.5 C51的函数和运算符,9.5.1 函数 1.函数的分类 C 语言的函数分为库函数和自定义函数两种。C 编译系统提供了一系列的标准
16、函数。这些函数包含在若干个头文件中。用户可以根据需要用#include命令将有关的头文件包含在自己的程序中,这样用户就可以用调用函数的方法使用这些库函数。自定义函数是用户根据需要以函数的形式自己编写的程序。 从是否有参数来看,函数分为有参函数和无参函数。有参函数在调用时用实际参数代替形式参数。函数要将结果返回调用函数。,2.函数的定义 所有的函数都是以“”开始,以“”结束。 (1)有参数函数的定义: 返回值类型 函数名(形式参数列表) 形式参数类型说明 函数体语句 return(返回形参名) (2)无参数函数的定义: 返回值类型 函数名( ) 函数体语句 如果函数没有返回值,可以将返回值类型设
17、为void。,3.函数的调用 调用函数的形式为: 函数名(实际参数列表); 其中实际参数必须和形式参数的数目相等、类型一致。调用函数有3种方式: (1) 函数调用语句,把被调用函数名作为调用函数的一个语句。 (2) 被调用函数作为表达式的一个运算对象。 (3) 被调用函数作为另一个函数的实际参数。,9.5.2 运算符,1.赋值运算符 赋值运算符为:(赋值)。它表示将“”右边的表达式的值赋给左边的变量。 2.算术运算符 算术运算符包括:(加或正号)、(减或负号)、(乘号)、(除号)、(求余)。 算术运算符的优先级顺序为先乘除后加减,先括号内后括号外。 3.关系运算符 关系运算符包括:(小于)、(
18、大于)、(小于等于)、(大于等于)、(相等)、!(不相等)。 关系运算符的优先级顺序为前4个同级为高,后两个同级为低。,4.逻辑运算符 逻辑运算符包括: /定义变量a 为int 类型 do /do while 组成循环 for (a=0; a50000; a+); /这是一个循环 P1_0 = 0; /设P1.0 口为低电平,点亮LED for (a=0; a50000; a+); /这是一个循环 P1_0 = 1; /设P1.0 口为高电平,熄灭LED while(1); ,例9-2 8路跑马灯。 可以在上面例子的基础上,依次点亮八个灯,设计出一个亮灭的花样来。电路如图9-2。,#include /预处理文件 void main (void) /定义花样数据 const unsigned char design32= 0 xFF,0 xFE,0 xFD,0 xFB,0 xF7,0 xE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 春节前后企业安全生产培训体系
- 初中化学中考复习 2020中考化学专项突破(课件)专项二 坐标曲线题-课件下载
- 2025年平面设计师专业能力测试卷:平面设计创意灵感与思维拓展能力提升能力培养试题
- 女性时间管理艺术
- 2025年学校新教师入职培训方案关注教师个性化成长
- 低钾血症护理教学查房
- 计算机二级Delphi学习常见误区试题及答案
- 甘肃省定西市通渭二中2017届高三上学期第一次月考化学试卷含解析
- 福建省福州八县(市、区)一中2019-2020学年高一政治上学期期中联考试题
- 财务成本控制的策略与方法试题及答案
- 中国老年患者术后谵妄防治专家共识
- 科学上海会考试卷及答案
- 中小学校园安全风险防控规范操作手册与案例分析
- 大模型备案-落实算法安全主体责任基本情况-XX集团有限公司
- 重大危险源安全管理培训
- 封闭管理的疫情防控课件
- 离婚协议书正规打印(2025年版)
- 门诊口腔院培训
- 世界各地文化创意产业发展报告表
- 园林植物养护管理 项目4 任务4.5行道树整形修剪学习资料
- 房地产交易律师见证书范文
评论
0/150
提交评论