电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机原理与C51基础 教学课件 ppt 作者 赵丽清 第10章

73页
  • 卖家[上传人]:E****
  • 文档编号:89503253
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:879KB
  • / 73 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第10章 单片机C51程序设计,第10章 目录,10.1 C51程序设计基础 10.1.1 C51中的基本数据类型 10.1.2 C51中扩充的数据类型 10.1.3 C51中的运算符 10.1.4 C51中的语句及程序结构 10.2 C51程序设计 10.2.1定时/计数器初始化程序设计举例 10.2.2点亮发光二极管实现流水灯程序 10.2.3单个中断系统设计举例 10.2.4定时器程序设计举例 10.2.5串行通信程序设计举例,10.1 C51程序设计基础,10.1.1 C51中的基本数据类型 C语言中的数据有常量和变量之分,当我们在编写单片机程序时,用到的相关变量在单片机的内存中都要占据一定的存储空间,变量大小不同,所占据的空间就不同,所以,“变量”数据的大小是有限制的,我们不能随意给一个变量赋任意大小的值。 为了合理利用内存空间,我们在编程时就要选择大小合适的数据,不同的数据类型也就代表了不同大小的数据,所以,我们在使用变量之前,首先要声明这个变量的类型,以便让编译器提前从内存中为其分配空间。 表10-1列出了C51的基本数据类型。,10.1 C51程序设计基础,10.1.1

      2、 C51中的基本数据类型,表10-1 C51的基本数据类型,10.1 C51程序设计基础,10.1.1 C51中的基本数据类型 说明: (1)在单片机中,所有的数据都是以二进制的形式存储在存储器中的,其中,1个字节=8位二进制(即1Byte=8bit)。 (2)在C语言中:short int即为int,long int即为long。 (3)前面若无unsigned则一律认为是signed型。 (4)一般情况下,float型数据只能提供7位有效数字,double型数据能够提供1516位有效数字,但是这个精度还和编译器有关系,并不是所有的编译器都遵守这条原则。,10.1 C51程序设计基础,10.1.1 C51中的基本数据类型 例如: float x; x=32.45678912; 由于float类型的有效数字是7位,故x=32.45679,若将x改 成double类型的则能将32.45678912全部存放在x中,所以, 在声明变量时应根据其使用情况来为其选择类型。 例如: int i=9; 在内存中占16位(即2个字节的存储单元) 。,10.1 C51程序设计基础,10.1.2 C51中

      3、扩充的数据类型 在C51中除以上基本数据类型外,为了适应单片机程序开发 的需要又扩充了如下的数据类型。 位变量声明bit:声明一个位变量。 8位寄存器声明sfr:声明一个8位寄存器。 16位寄存器声明sfr16:声明一个16位寄存器。 特殊功能位声明sbit:声明特殊功能寄存器中的某一位。,10.1 C51程序设计基础,10.1.2 C51中扩充的数据类型 bit flag; 说明:声明了一个变量名为flag的位变量。 sfr TCON = 0x88H; 说明: 单片机内部有很多特殊功能寄存器(sfr),每个sfr在单片机内部都分配有唯一的一个地址,当我们在程序中使用sfr时,我们一般通过声明将相应的地址编号赋给一个名称,以后通过该名称来使用相应sfr,其中这些声明绝大多数都包含在相应的头文件(如:reg51.h)中。 本例中TCON是单片机的定时器/计数器控制寄存器,它在单片机内存中的地址为0x88H,经过该语句声明以后,如在后面的程序中使用该寄存器则只需使用其名称TCON即可,当程序进行编译时,编译器也知道实际要操作的是单片机内部0x88地址处的这个寄存器,而TCON仅仅是这个地址

      4、的一个代号或名称而已,当然,我们也可以声明成其他的名称。,10.1 C51程序设计基础,10.1.2 C51中扩充的数据类型 sfr16 T1= 0x8BH; 说明: 声明了一个16位SFR,起始地址为0x8BH,道理与上例相同不再重复解释。 sbit TR0=TCON4; 说明: 首先应该有sfr TCON = 0x88H;这句的声明后,我们才知道TCON是定时器/计数器控制寄存器的名称,它是一个8位的寄存器,其中,TCON0为最低位,TCON7为最高位,通过本例的声明,以后当我们使用TCON4时,直接操作TR0即可,当然,我们也可以将TCON4声明成其他的名称。,10.1 C51程序设计基础,10.1.3 C51中的运算符 绝大多数的程序都需要对数据进行加工处理,即进行运算,要进行运算就得规定可以使用的运算符,C51中的运算符与C语言基本相同,在单片机程序开发过程中最常用的主要有算术运算符、关系运算符、逻辑运算符和位运算符等。,10.1 C51程序设计基础,10.1.3 C51中的运算符 说明: (1)“”表示测试两数是否相等,如a=b,测试a和b中的值是否相等。 (2)“!”表示

      5、测试两数是否不相等,如a!=b,测试a和b中的值是否不相等。,10.1 C51程序设计基础,10.1.3 C51中的运算符 说明: (1)右移,操作符为“”,每执行一次右移指令,被操作数的各位依次向右移动一位,其中,最高位补0,最低位移入PSW寄存器CY位,CY位中原来的数被覆盖。如图10-1所示。 (2)左移,操作符为“”,每执行一次左移指令,被操作数的各位依次向左移动一位,其中,最高位移入PSW寄存器CY位,CY位中原来的数被覆盖,最低位补0,如图10-2所示。,10.1 C51程序设计基础,10.1.3 C51中的运算符 其他运算符 赋值运算符: 条件运算符:?: 逗号运算符: , 指针运算符:* 和 & 求字节运算符:sizeof 强制类型转换运算符:(类型) 成员运算符:. 下标运算符: 其他,10.1 C51程序设计基础,10.1.4 C51中的语句及程序结构 1、语句 C51程序是由语句组成的,其中,语句可分为以下几类: (1)表达式语句: 由一个表达式(赋值表达式、算术运算表达式、关系表达式、逻辑表达式等)加上一个分号构成,最典型的就是赋值表达式构成的赋值语句。 例如:

      6、x=3.6; (2)函数调用语句:由一个函数调用加上一个分号构成。 例如:printf(“Hello everyone!”); 说明:在屏幕上输出显示Hello everyone!,10.1 C51程序设计基础,10.1.4 C51中的语句及程序结构 (3)控制语句: 条件语句:if、switch。 循环语句:for、while、do while。 控制转移语句:break、continue 、return、goto。 (4)复合语句: 用 把一些语句和声明括起来就构成了复合语句。 float x=3,y=9,z; z=x+y; printf(“z=%f”,z); (5)空语句:只有一个分号;什么也不做,可以作为程序流程的转向点,也可用作循环语句的循环体(循环体是空语句)。,10.1 C51程序设计基础,10.1.4 C51中的语句及程序结构 2、程序结构 由以上语句可以构成C程序的三大结构,即顺序结构、选择结构(分支结构)、循环结构。 (1)顺序结构:仅仅是简单的一个语句一个语句的执行。 (2)选择结构:主要由条件语句构成。 (3) 循环结构:主要由循环语句构成,与标准C语言一样,循

      7、环结构中可以使用break、continue 、return、goto。,10.1 C51程序设计基础,10.1.5 C51中的头文件 C51中已定义的常用的头文件主要有如下类别: absacc.h-包含允许直接访问8051不同存储区的宏定义。 assert.h-文件定义assert宏,可以用来建立程序的测试条件。 ctype.h-字符转换和分类程序。 math.h-数学函数程序。 reg51.h-51的特殊寄存器声明。 reg52.h-52的特殊寄存器声明。 setjmp.h-定义jmp_buf类型和setjmp和longjmp程序的原型。 stdarg.h-可变长度参数列表程序。 stdlib.h-存储器分配程序。 stdio.h-流输入和输出程序。 string.h-字符转操作程序,缓冲区操作程序。,10.1 C51程序设计基础,10.1.5 C51中的头文件 在单片机程序中,经常使用的头文件主要有math.h、 reg51.h或reg52.h、stdio.h等。 1、头文件math.h 头文件math.h是数学函数库,各种数学计算函数的具体实现就放在文件math.h里,比如,平

      8、方根函数 sqrt、绝对值函数fabs、指数函数 exp、正弦函数 sin、余弦函数 cos 等,当我们需要使用时可以直接调用这些函数。 2、头文件reg51.h和reg52.h 头文件reg51.h或reg52.h是声明51单片机或52单片机特殊功能寄存器和位寄存器的,这两个头文件中大部分内容是一样的,51单片机比52单片机少一个定时/计数器T2,因此,reg51.h中也就比reg52.h中少了几行对寄存器T2声明的内容。,10.1 C51程序设计基础,10.1.5 C51中的头文件 在单片机程序中,经常使用的头文件主要有math.h、 reg51.h或reg52.h、stdio.h等。 、头文件stdio.h 包含了与标准输入输出库有关的变量定义和宏定义以及对函 数的声明,标准输入输出函数主要有printf、scanf、 putchar、getchar等。 除以上已定义的头文件外,用户也可以根据自己的需要定义 扩展名为.h的头文件,存放到指定的目录下,在编程中可以 直接使用。,10.2 C51程序设计,10.2.1定时/计数器初始化程序设计举例 【例10-1】 在8051单片机中,

      9、利用定时器T0产生50ms的定时时间。 通过本例我们将对头文件、主函数main()、注释等三个方 面的知识点做讲解。程序代码如下: #include /包含头文件 void main() TMOD= 0x01; /设置定时器0为方式1、定时模式 TH0=(65536-45872)/256 /装初值 TL0=(65536-45872)%256; TR0= 1; /启动定时器0 while(1) /程序停止 ,10.2 C51程序设计,10.2.1定时/计数器初始化程序设计举例 说明: (1)按照定时/计数器的初始化流程,首先设置TMOD= 0x01,置T0工作于方式1、定时模式,给TH0和TL0装入初值,之后启动定时器开始计时,获得50ms的时间。 (2)下面说一下初值的计算。 晶振频率为fosc=11.0592Mhz 机器周期 T=12*1/fosc=12*1/11.0592Mhz=1.09s 计数值=5010-3/(1.0910-6)=45872 因单片机的定时器是加法计数器,如果想获得50ms的定时时间,我们就要给TH0和TL0装入计数初值X,在这个初值的基础上计45872个数至65536(方式1的溢出值216),定时器溢出,此时刚好50ms。因此,计数初值X=65536-45872=19664。在编写程序时要将计数值转换成16进制的,我们采用下面的方法转换,把19664对256求模,即19664/256装入THO中,把19664对256求余,即19664%256装入TLO中。,10.2 C51程序设计,10.2.1定时/计数器初始化程序设计举例 1、头文件 (1)头文件包含的书写方法:两种 当使用#include时(即本例中所使用的方法),编译器先进入到软件安装文件夹(KeilC51INC)处开始搜索这个头文件,如果这个文件夹下没有引用的头文件,编译器将会报错。 当使用#include“reg51.h”时,编译器先进入到当前工程所在文件夹处开始搜索该头文件,如果当前工程所在文件夹下没有该头文件,编译器将继续回到软件安装文件夹处搜索这个头文件,若仍然找不到该头

      《单片机原理与C51基础 教学课件 ppt 作者 赵丽清 第10章》由会员E****分享,可在线阅读,更多相关《单片机原理与C51基础 教学课件 ppt 作者 赵丽清 第10章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.