《第七次课共2学时.docx》由会员分享,可在线阅读,更多相关《第七次课共2学时.docx(8页珍藏版)》请在优知文库上搜索。
1、第七次课(共2学时)一、授课题目:C51基础知识1二、教学目标和任务:1 .知悉C51在C语言基础上新增的关键词及其含义;2 .了解C51标识符命名规则;3 .掌握C51变量定义规则;4 .掌握C51函数定义规则和特点;5 .掌握C51编程框架。三、教学重难点:重点:C51命名规则、C51函数定义规则、C51编程框架。难点:C51命名规则。四、授课过程:回顾:简要的回顾上一节课的主要知识点,MOWMOVX、MOVC、PUSH、POP、XCHXCHDSWAP等数据交换指令的用法,ANL、ORL.XRL指令的用法。0.引入汇编语言晦涩难懂,实际应用中常常采用C51进行编程,C51是在ANSI基础上
2、根据8051单片机的特点设计而成的。该部分讲解过程中,适当引入C语言发展过程中的小故事,激发学生的学习热情,并向同学们介绍当今最热门的高级语言Python01. C51关键词ANSIC共有32个关键词,分别为:存储种类说明5个,数据类型说明14个、程序语句12个、运算符13个。C51包含13个新的关键词,这些关键词主要有:a.与存储结构相关的关键词,微机为冯诺依曼结构,数据与程序分开存放,而单片机为哈弗结构,包含程序Flash、基本RAM、扩展RAM等存储空间,因此C51引入了存储器类型相关的关键词:code:程序存储器data:直接寻址片内RAM,低128字节idata:间接寻址片内RAM,
3、256字节bdata:可位寻址的8051单片机内部RAMpdata:8位寄存器可间接寻址的片外RAM(MoVXA,Ri)xdata:16位寄存器寻址的片外RAM(MOVXA,DPTR)b.SFR相关关键词,单片机特有的SFR需要事先定义才可以使用,这样的定义通常在头文件中完成,通过如下两个关键词实现:Sfr(定义一个8位特殊功能寄存器地址)sfrl6(定义一个16位特殊功能寄存器地址)c.位相关关键词,微机没有位处理功能,而单片机有位处理功能,因此需要如下与位相关的关键词:bit位标量声明(声明一个位标量或者位类型数据)Sbit可寻址位声明(定义一个可寻址位变量的地址)d.函数定义关键词int
4、errupt中断函数声明(定义一个中断函数)USirlg寄存器组定义(函数使用的寄存器组)reetrant再入函数声明(定义一个再入函数)2.变量的定义变量定义为本节课重点内容,变量标准定义如下:【存储种类】数据类型【存储器类型】变量名列表其中存储种类和存储器类型可以缺省。2.1存储种类变量的生存区间,有以下三种类型auto:本函数内有效,默认为该类型static:本file有效extern:整个ProjeCt内有效2. 2数据类型unsignedchar单字节无符号字符类型signedchar单字节有符号字符类型unsignedint双字节无符号整型signedint双字节有符号整型unsi
5、gnedlong四字节无符号长整型signedlong四字节有符号长整型float四字节浮点数*char、int指针变量Iong默认为Singedbit位标量定义,值只有0,1Sbit位地址定义,给某位变量指定位地址Sfr为某特殊功能寄存器指定地址sfrl6为dptr指定sfr的地址变量定义规则:用不到小数就不选float、用不到负数就不选signed8位能表示的用char16位能表示的用into不同数据一起运算的时候可以相互转化:bit-char-int-long-floatsigned-unsigned2. 3存储器类型定义code存放于程序Flashdata存放于直接寻址的基本RAM低1
6、28字节idata存放于间接寻址的基本RAM中bdata分配在20H2FH的片内RAM的位寻址区,允许位和字节访问。xdataXRAM,寻址范围OOOOHFFFFH,用MOVXDPTR寻址。pdataXRAM,寻址范围OOlrFFH,用MOVXRi寻址该字节可以缺省,缺省时默认存储空间与编译模式有关,编译模式为Small时,默认为dala,编译模式为CoMPACT时默认为Pdala,编译模式为Iarge时,默认为Xdala,编译模式默认为Sma11。3. 标识符定义规则标识符:用户为某对象取的名字,规则如下:a、数字字母下划线组成,字母区分大小写b、第一个字符必须是字母或者下划线c、下划线开头
7、的标识符时编译系统专用的,用户编程时一般以字母开头。d、标识符长度不超过32位f、关键词不作为标识符例题1:判断下列标识符是否合法A、abc123、mybookINT、int、a%y答:J、J、X、J、J、X、4,函数定义函数是一个完成一定相关功能的执行代码段。C语言就是由一个一个函数构成的,函数是C语言的基本结构。函数定义规则如下:a、C51语言中函数的数目是不限制的,b、但是一个C51程序必须有一个函数,以main为名,称为主函数,c、主函数是唯一的,d、整个程序从这个主函数开始执行。函数定义形式为:返回值类型函数名(形式参数列表)usingn函数体;)1、usingn使用的寄存器组,取值
8、03,该字段可以省略不写2、参数列表可以为空,叫做无参函数3、返回值类型也可以是空,类型写作VOid,只做动作不返回值。主函数:voidmainO使用interrupt可将一个函数定义成中断服务函数。使用inteupt定义后,编译时函数将被放在中断入口地址,当满足中断条件中断将自动触发,执行完毕自行返回。5. C语言程序框架5.1 headerfile头文件必不可少,至少要包含芯片定义头文件ttincludeftinclude#includeabed,h”头文件一般有三类:a、51芯片头文件,主要包含定义好的特殊功能寄存器地址列表。b、库函数,如包含移位函数_crol_(,)的c、用户自己定义
9、的头文件。用户自己定义的头文件(放在ProjeCt文件夹里)和安装文件中的头文件用的符号时不同的。5.2 宏定义defineucharunsignedchardefineuintunsignedint#definePi3.145.3 变量声明sfr特殊位声明全局变量声明,整个程序都要用到的变量,从定义开始处往后均可以使用。5.4 函数声明由于ANSlC的特征是,程序只有先出现才可以使用,因此主程序中用到的函数均需要先定义,或者先声明之后再定义。5. 5主程序voidmain(void)/*预处理段*/while (1)/*不断重复主程序*/*主体*/)五、作业1 .有如下定义:inti;请问i
10、的存储类型为?存储器类型为?是有符号数还是无符号数?2 .定义一个无符号数X,要求作用范围为本file,存放在间接寻址的内部基本RAM03 .定义一个有符号数y,要求值为100,存放在code区。课后习题:1.5L10、2.6210、353.6、4.44.9、4.11、4. 12六、参考文献1 .丁向荣编,单片机微机原理与接口技术(第2版),北京:电子工业出版社,2018.2 .张毅刚编,单片机原理及应用:C51编程+Proleus仿真(第2版),北京:高等教育出版社,2016.3 .丁元杰编,单片微机原理及应用(第三版),北京:机械工业出版社,2011.4 .郭文川编,MCS-51单片机原理接口及应用,北京:电子工业出版社,2013.5 .周航慈编,单片机应用程序设计技术(修订版),北京:北京航天航空大学出版社,2002.6 .严洁编,单片机原理及其接口技术,北京,机械工业出版社,2010.七、课后记知识点琐碎繁多,需要抓住重点,强调考点,充分举例,引导学生理解。