全套电子课件:单片机应用技术(C语言).ppt

上传人(卖家):三亚风情 文档编号:3199076 上传时间:2022-08-01 格式:PPT 页数:462 大小:22.13MB
下载 相关 举报
全套电子课件:单片机应用技术(C语言).ppt_第1页
第1页 / 共462页
全套电子课件:单片机应用技术(C语言).ppt_第2页
第2页 / 共462页
全套电子课件:单片机应用技术(C语言).ppt_第3页
第3页 / 共462页
全套电子课件:单片机应用技术(C语言).ppt_第4页
第4页 / 共462页
全套电子课件:单片机应用技术(C语言).ppt_第5页
第5页 / 共462页
点击查看更多>>
资源描述

1、 冰箱 全自动洗衣机 楼宇防盗设备智能电饭煲 电子琴玩具 大屏幕呼叫系统 数控铣床 数控车床汽车 血压计 呼吸机心电监护仪任务任务1 认识单片机认识单片机任务任务2 了解单片机的硬件结构了解单片机的硬件结构任务任务3 单片机最小系统设计单片机最小系统设计任务任务1 认识单片机认识单片机1了解单片机的基本概念及发展史。2掌握AT89S51单片机的封装及引脚定义。3了解AT89S51单片机的主要功能特性。在利用单片机实现预定的设计目标前,首先需要对单片机有一个基本的了解。本任务的目的就是使读者对单片机形成一定的感性认识,学会识别不同封装形式单片机的引脚编号,并掌握各个引脚功能的定义。一、单片机的概

2、念一、单片机的概念单片机是采用超大规模集成电路技术把具有数据处理能力的中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、I/O接口电路、中断系统及定时/计数器等主要计算机部件集成到一块芯片上,使其具有计算机的基本功能,称为单片微型计算机(Single Chip Micro Computer,SCMC),简称单片机。二、单片机的发展史二、单片机的发展史第一阶段(19761979)单片机的探索阶段Intel公司MCS-48为代表 第二阶段(19791982)单片机的完善阶段Intel公司MCS-51为代表 第三阶段(19821990)16位单片机推出阶段Intel公司MCS-96为

3、代表 第四阶段(1990至今)微控制器全面发展阶段 Microchip PIC Motorola 为代表 MC68HC三、单片机的封装形式及引脚定义三、单片机的封装形式及引脚定义PDIP封装形式的封装形式的AT89S51单片机的引脚描述单片机的引脚描述引脚定义引脚定义引脚编号引脚编号功能描述功能描述VCC40电源引脚,接+5V电源GND20接地引脚,接+5V电源地XTAL1和XTAL219和18时钟引脚,外接时钟电路RST9复位引脚,用于单片机复位P0.0P0.7(P0口)39321.作为8位双向I/O口使用2.在访问外部存储器或外部接口电路时,分时用作低8位地址线和数据总线P1.0P1.7(

4、P1口)181.作为8位准双向I/O口使用2.用于ISP编程下载(P1.5、P1.6、P1.7)(续表)(续表)引脚定义引脚定义引脚编号引脚编号功能描述功能描述P2.0P2.7(P2口)21181.作为8位准双向I/O口使用2.在访问外部存储器或外部接口电路时,分时用作高8位地址线P3.0P3.7(P3口)10171.作为8位准双向I/O口使用2.具有第二功能(详见课题五中具体应用)/Vpp31外部/内部程序存储器使能端29外部程序存储器读选通信号端ALE/30地址锁存允许信号端EAPSENPROG四、四、AT89S51的功能特性的功能特性兼容MCS-51系列产品。4KB Flash存储器,支

5、持 在线编程,可反复擦写 1 000次。128B片内RAM。工作电压4.55.5 V。全静态时钟033 MHz。32个双向I/O口线。2个16位定时/计数器。5个中断源,2个中断优 先级。1个全双工UART串行口。看门狗定时器。低功耗空闲和省电模式。生产厂家生产厂家类别类别型号举例型号举例图图 片片ATMEL公司AT89系列AT89C2051(DIP封装)AT89S52(DIP封装)AT90系列(AVR单片机)ATmega48(QFP封装)查找资料,了解常见的其他类型单片机。查找资料,了解常见的其他类型单片机。生产厂家生产厂家类别类别型号举例型号举例图图 片片STC公司STC单片机STC89C

6、52RC(DIP封装)MicroChip公司PIC单片机PIC16F877A(DIP封装)PHILIPS公司51LPC系列LPC2148FBD64(LCC封装)生产厂家生产厂家类别类别型号举例型号举例图图 片片TI公司MSP430系列MSP430F1612(QFP封装)TMS370系列TMS370C722FNT(LCC封装)Motorola公司MC68HC908系列MC68HC908SR12CB(DIP封装)任务任务2 了解单片机的硬件结构了解单片机的硬件结构 1了解AT89S51单片机的内部结构。2了解AT89S51单片机I/O端口的结构特点。3掌握AT89S51单片机I/O端口的使用方法。

7、设计单片机应用系统,不仅要进行程序的设计,还要进行硬件电路的设计。因此,设计时要求设计者对单片机的硬件结构要有一定的了解。本任务就是要在了解单片机内部结构的基础上,掌握单片机I/O端口与外围电路的合理设计方法。一、单片机内部结构一、单片机内部结构单片机各组成部分说明单片机各组成部分说明组成部分组成部分说说 明明中央处理器(CPU)单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调地工作,完成运算和控制输入输出功能等操作数据存储器(RAM)内部有256B的RAM,其中包含128B用户数据存储单元(地址为00H7FH)和128B专用寄存

8、器单元(地址为80HFFH)程序存储器(ROM)内部有4KB掩膜ROM,用于存放用户程序,原始数据或表格定时/计数器(T0、T1)含有两个16位的定时/计数器(T0、T1),以实现定时或计数功能组成部分组成部分说说 明明并行输入输出(I/O)口 共有4组8位并行I/O口(P0、P1、P2和P3),用于单片机与外围设备之间的数据传输全双工串行口 内置一个全双工串行通信口,用于与其他设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用中断系统 共含有5个中断源(2个外部中断、2个定时/计数器中断和1个串行中断),并具有2级的优先级别选择时钟电路 需外接晶振和微调电容构成振

9、荡电路,产生单片机运行的脉冲时序(续表)(续表)二、单片机的二、单片机的I/O端口端口 AT89S51单片机有4个并行的I/O端口,即P0、P1、P2和P3口。每个端口均由8个引脚(即8位)构成,包括一个锁存器、一个输出驱动器和一个输入缓冲器。P0口为双向8位三态I/O口,作为通用I/O口时,每一位能以吸收电流的方式驱动8个TTL负载。当用于外接存储器或者扩展I/O接口时,作为数据总线(D0D7)和地址总线(A0A7)的低8位(分时复用,通过ALE信号区分)。CPU可对其按字节方式或位方式进行操作。1P0口口 P0口为漏极开路输出端口,即漏极没有电阻接至电源。作为I/O口输出时,输出低电平为“

10、0”,但输出高电平为高阻态(并非+5V,相当于悬空状态),也就是说P0口不能真正地输出高电平,因此在使用时需外接上拉电阻,由电源通过这个上拉电阻给负载提供电流,如右图所示。P0口作为通用I/O口时,要外接上拉电阻才能输出高电平,上拉电阻的阻值由外部负载电流决定;当作为地址/数据总线时,无需外接上拉电阻,此时不能再作通用I/O口使用。P1口为8位准双向I/O口。使用时与P0口相似,但其内部具有提升电路,由于输入不能锁存,必须先输出1才能正确读出端口电平,故称为准双向口。作为通用I/O口使用时可以直接驱动4个TTL负载。2P1口口 P1.5:MOSI端(用于端(用于ISP编程,主出从入数据端)。编

11、程,主出从入数据端)。P1.6:MOSO端(用于端(用于ISP编程,主入从出数据端)。编程,主入从出数据端)。P1.7:SCK端(用于端(用于ISP编程,串行时钟输入端)。编程,串行时钟输入端)。同时P1口的部分引脚还具有第二功能:P2口为8位准双向I/O口。当用作通用并行I/O口时,其操作方式与P0、P1口类似,每一位可驱动4个TTL负载。当用于外接存储器或者扩展I/O接口时,P2口作为扩展的高8位地址(A8A15)总线口,与P0口共同构成16位地址总线(A0A15)。3P2口口引脚引脚符号名称符号名称功能功能P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2外部中断0输入P3.3

12、外部中断1输入P3.4T0定时器0的外部输入P3.5T1定时器1的外部输入P3.6外部数据存储器写信号P3.7外部数据存储器读信号 P3口为8位准双向口,其结构和操作方式等与P2口类似。同时P3口还可按位复用为第二功能,具体见下表。INT0WRRDINT1 4P3口口三、单片机三、单片机I/O口的读写操作口的读写操作 P0口作为口作为输出口使用输出口使用单片机单片机最小系统最小系统P2口作为口作为输入口使用输入口使用 单片机的4个I/O口在使用时,当某一端口既作输入又作输出使用,且要进行输出转输入操作时,需先将该端口写“1”然后再读。例例 P1口在输出转输入操作时的软件编程方法。口在输出转输入

13、操作时的软件编程方法。汇编:汇编:MOV P1,#23H C51:P1=0 x23;/P1口作输出口使用 MOV P1,#0FFH P1=0 xff;/先将P1口置“FF”MOV A,P1 ACC=P1;/P1口由输出转输入口若端口只作输入口使用,则读数时不必再向端口先写“1”。已知P0口内部位结构图如下图所示,试查找相关资料分析为何当P0口输出高电平时需外接上拉电阻。任务任务3 单片机最小系统设计单片机最小系统设计1了解单片机最小系统各部分的组成及功能。2掌握单片机最小系统的设计与制作方法。单片机是一种微控制器,而任何微控制器正常工作最基本的条件是要有正确的电源、时钟和复位电路(即最小系统)

14、,三者缺一不可。因此,在所有的单片机应用电路中,单片机必须满足以上三个条件才能正常运行工作。本任务就是要认识单片机最小系统的组成及各部分的作用,并最终完成单片机最小系统的设计与制作,这是每一位设计者必须掌握的最基本的硬件电路设计知识。一、电源电路一、电源电路 单片机的工作电压单片机的工作电压 单片机要想工作,首先要有为整个系统提供电源的供电模块。电源模块的稳定可靠是系统平稳运行的前提前提和基础基础。51系列单片机工作电源的电压一般为+4.5+5.5 V,典型值为+5V,即将单片机的VCC脚接+5V电源,GND脚接地。二、时钟电路二、时钟电路 单片机的单片机的“心脏心脏”即单片机内部的高增益反向

15、放大器通过XTAL1、XTAL2引脚外接作为反馈元件的片外晶体振荡器(呈感性)与电容组成的并联谐振回路构成一个自激振荡器,向内部的时钟电路提供振荡时钟。1内部时钟方式内部时钟方式外部时钟方式常用于多片51单片机同时工作,以便于同步。它是将外部振荡脉冲信号通过CMOS门电路输入至XTAL1脚,XTAL2脚悬空,如下图所示。时钟电路异常也会引起单片机CPU不工作,可通过测量ALE脚是否有六分频信号输出来判断振荡电路是否起振。2外部时钟方式外部时钟方式3时序时序51系列单片机的一个机器周期由12个振荡周期组成,分为6个状态,分别称为S1、S2、S3、S4、S5、S6,每个状态都包含P1和P2两相。振

16、荡周期、状态周期、机器周期和指令周期的关系如下:例例AT89S51外接晶振频率为外接晶振频率为12 MHz,则,则4个时间个时间周期的具体值为:周期的具体值为:解:振荡周期 1/12s状态周期 2振荡周期 1/6s机器周期 6状态周期 1s指令周期 (14)机器周期 1 4s三、复位电路三、复位电路单片机恢复初始状态值单片机恢复初始状态值1硬件复位硬件复位上电复位电路 上电与按键均有效的复位电路 2软件复位软件复位即看门狗复位,AT89S51内部自带看门狗定时器,由一个14位定时器及WDTRST(Watch Dog Time RST)寄存器构成。利用软件控制看门狗定时器,当系统进入死循环(程序

17、跑飞)时,看门狗定时器自动复位,让系统恢复正常运作状态。一、画出单片机最小系统电路原理图一、画出单片机最小系统电路原理图步骤步骤说明说明示范图片示范图片1材料准备参照元器件清单表二、备料二、备料三、硬件电路焊接及调试过程三、硬件电路焊接及调试过程 步骤步骤说明说明示范图片示范图片2硬件焊接注:单片机的 /VPP端接电源,选内部存储器电路板元件布局图电路板背面 /Vpp端GNDVCC(+5V)EAEA步骤步骤说明说明示范图片示范图片3通电调试最小系统运行图任务任务1 Proteus ISIS 7.5软件的使用软件的使用任务任务2 Keil C51 Vision3软件的使用软件的使用 任务任务1

18、Proteus ISIS 7.5软件的使用软件的使用 1熟悉Proteus ISIS 7.5仿真软件的集成工作环境。2掌握Proteus ISIS 7.5仿真软件的基本使用方法。通过绘制、编辑跑马灯控制电路原理图,熟悉Proteus ISIS 7.5仿真软件工作环境,并完成软件系统和硬件系统的连接调试。一、进入一、进入Proteus ISIS的方法的方法方法1:双击桌面上的ISIS 7 Professional图标“”。方法2:单击“开始”“程序”“Proteus 7 Professional”“ISIS 7 Professional”命令。二、工作界面二、工作界面一、新建设计文件一、新建设计

19、文件1打开Proteus ISIS 工作界面,单击“文件”“新建设计”命令,弹出模板选择窗口,选择好模板后单击“确定”按钮。模板选择窗口2单击“文件”“保存设计”命令,在弹出的保存窗口中设置好保存路径和文件名,最后单击“保存”按钮,则完成新建设计文件的保存。保存窗口在“”按钮中单击“P”按钮进入元器件选择窗口。二、添加元器件二、添加元器件添加元器件主要有两种方法:添加元器件主要有两种方法:1在关键字文本框中直接输入所需元件名称,则会在元件列表区出现与关键字相匹配的元件列表。选中所需元件,单击“确定”按钮或直接双击,便可将器件添加到ISIS的对象选择器窗口中。2在元件类别列表中选择元件所属类,然

20、后在元件子类别列表中选择所属子类,再从元件列表区选择出所需元件。三、元件的放置、移动、旋转、删除和属性设置三、元件的放置、移动、旋转、删除和属性设置1放置放置在对象选择器中单击选中要放置的元件,然后将光标移动到原理图的编辑区,在任意位置单击鼠标左键,即可出现一个随光标浮动的元器件原理图符号,移动光标到适当位置再单击鼠标左键即可完成该元器件的放置。2移动移动在原理图编辑窗口中,左击选中需要移动的元件(默认选中时为红色),再按住鼠标左键拖动元件至适当位置,释放鼠标左键,并左击空白处撤销选中状态,即可完成元件的移动。3旋转旋转放置元件前,在对象选择器窗口先选中要旋转的元件,再根据需要单击“”方位控制

21、按钮,即可更改元件的放置方向。4删除删除方法1:右键双击该元件;方法2:先左击选中该元件,再按下“Delete”键删除。5属性设置属性设置用鼠标左键双击要编辑的元件,可弹出编辑元件窗口对元件相关属性进行设置。元件的放置、移动、旋转、删除和属性设置操作均可通过右击该元件,弹出如图所示的快捷菜单来操作完成。四、放置电源、地四、放置电源、地单击“”图标,选中“POWER”行,将鼠标移到原理图编辑窗口的适当位置再单击,便可引入“电源”。选中“GROUND”,便可引入“地”。五、元器件的连线五、元器件的连线1两个对象之间的连线两个对象之间的连线 引脚间直接连线任意角度的连线设定路径连线 2总线与分支线的

22、画法总线与分支线的画法 (1)单击总线按钮“”。总线与分支线之间的连接(2)在合适位置单击鼠标左键放置总线起点,双击鼠标左键放置总线终点。(3)将光标移近对象引脚末端,单击引出分支线,使其终点移近总线并与总线中心相连,同时按住“Ctrl”键,即可画出与总线相连的分支线。在元件的连线过程中,如果下一次的连线路径与上一次的连线相同,则可在下一个要连元件的引脚上左双击,这样就会形成一条和上一条路径相同的连线。当电路中多根数据线、地址线、控制线并行时建议使用总线设计。3添加网络标号添加网络标号在Proteus仿真时,系统会默认网络标号相同的引脚是连接在一起的。六、电气检测六、电气检测单击菜单“工具”“

23、电器规则检查”命令进行电气检测。七、仿真运行七、仿真运行1双击电路原理图中的AT89C51单片机,在弹出的属性编辑窗口中载入“跑马灯.hex”文件。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD1

24、0P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89S5112MHZCRYSTALC230pFC330pF+5VC110uFR08k2R1470RD1R2470RD2R3470RD3R4470RD4R5470RD5R6470RD6R7470RD7R8470RD8+5V在仿真运行中,各元件引脚会呈现不同的颜色。例如红点代表输出高电平,蓝点代表低电

25、平,灰点代表高阻状态,黄点表示短路。可以根据引脚的颜色来区分此时引脚输出的状态。2单击仿真运行“”按钮开始仿真。任务任务2 Keil C51 Vision3软件的使用软件的使用1熟悉Keil Vision3的集成开发环境。2掌握Keil Vision3的基本使用方法。3掌握烧录器的使用方法。在Keil Vision3环境下创建一个C项目,完成程序的输入、项目的编译和调试以及程序的仿真及下载,熟悉Keil Vision3的集成开发环境。一、启动一、启动Keil Vision3的方法的方法1双击桌面上的Keil Vision3图标“”。2单击“开始”“程序”“Keil Vision3”命令。菜单栏

26、常用工具栏工程文件管理窗口程序编辑区信息窗口二、工作界面二、工作界面 文件工具栏的具体功能描述文件工具栏的具体功能描述符号符号命令命令符号符号命令命令符号符号命令命令新建文件右缩进一个制表符返回到之前位置打开文件左缩进一个制表符向前到新位置保存文件在当前行设置书签切换浏览器窗口保存全部文件移光标到下一个书签打印当前文档剪切移光标到前一个书签调试状态切换按钮复制清除所有书签切换工程窗口粘贴在多个文件中查找切换输出窗口撤销查找与替换插入/删除断点重做增加查找删除所有断点设置/关闭断点关闭所有断点创建工具栏的具体功能描述创建工具栏的具体功能描述 调试工具栏的具体功能描述调试工具栏的具体功能描述 一、

27、创建一、创建C项目项目单击“Project”“New Project”命令设好路径,单击“保存”在“Data base”区展开Atmel系列单片机,从中选择“AT89C51”,并单击“确定”即完成创建二、新建源程序文件二、新建源程序文件单击“File”“New”命令或单击“”按钮设好路径,单击“保存”程序输入完毕单击“File”“Save”命令当源程序为C语言程序时,后缀“.C”必须手工输入,这样才能让Keil C51采用对应的C语言方式来编译源程序。若为汇编语言,后缀名为“.ASM”即可。保存成功后,源程序将会以不同颜色显示出来。三、编译文件三、编译文件1 将文件加载到工程文件管理窗口右击“

28、Target 1”下拉菜单中的“Source Group 1”选择所需文件,单击“Add”,将文件加载到工程文件管理窗口2 编译文件右击“Target 1”“Options for Target Target 1”命令,或直接单击“”图标。单击创建工具栏中的编译按钮“”,开始编译当前源程序。晶 振 频率设置勾选创建HEX 文件单击“确定”按钮四、四、Proteus软件仿真软件仿真五、程序的烧录五、程序的烧录EP3.0 程序烧录器用串口数据线将烧录机与计算机的COM口连接好,然后将要烧录的单片机放入编程器IC锁紧座并锁紧。运行程序烧录软件“Easy 51Pro.exe”进行程序的烧录:1检测芯片

29、ID,根据烧录单片机的类型选择具体型号。2单击“(自动)擦除器件”命令,将要烧录的单片机中之前的程序擦除。3单击“(自动)装入文件”命令,添加通过编译后的“*.HEX”或“*.BIN”文件。4单击“写器件”命令,将所选“*.HEX”或“*.BIN”文件写入单片机。5单击“(自动)效验数据”,检验数据是否出错,当提示“效验成功,数据正确”时,说明此次烧录成功。6取下单片机,插入电路板,观察实际运行情况。烧录完成后状态信息任务任务1 C51程序结构及内部单元赋值操作程序结构及内部单元赋值操作任务任务2 C51运算符的应用运算符的应用任务任务3 选择语句的应用选择语句的应用任务任务4 循环语句的应用

30、循环语句的应用任务任务5 指针的定义及引用指针的定义及引用任务任务1 C51程序结构及内部单元赋值操作程序结构及内部单元赋值操作 1了解C51程序的基本结构。2掌握C51语言的数据类型。3利用绝对地址方式访问片内RAM存储单元。在单片机内部,运行时的程序及数据均存放在存储器中,运行过程中对内存单元的数据操作较为频繁。本任务主要练习如何手动修改单片机内部RAM单元的内容。如对单片机内部RAM存储空间地址为0 x30的单元进行赋值运算操作。一、一、C51程序基本结构程序基本结构/*点亮单片机P1.0口发光二极管.C*/#include /包含头文件sbit LED=P10;/位定义单片机 /的P1

31、.0口void main()/主函数 LED=0;/点亮P1.0口LED预处理命令预处理命令main()main()语句语句1;1;/语句注释语句注释 语句语句2;2;1预处理命令预处理命令 主要包括文件包含(include)、宏定义(define)和条件编译(ifndef)。程序中的“#include”代码表示在该程序中调用了AT89系列单片机的头文件。常用的还有“#include”、“#include”。这个文件中定义了AT89系列单片机内部的特殊功能寄存器(SFR)的所有端口。文件的调用一般位于程序的开头,常见的调用表示方法有两种:(1)#include (2)#include“AT89

32、X51.h”2main主函数主函数一个C程序中有且只有一个main主函数,它是函数的入口。main函数可以调用其他的功能函数,但其他功能函数不能调用main函数。函数后面一定要有一对大括号“”,程序就写在大括号里面。main前面的“void”表示“空”,即当main函数执行完后,不返回任何值,编程时可省略不写。main后面的“()”中没有写任何参数,表示了main函数和其他函数间没有任何的参数传递。但后面的“()”必须有,不能省略。3语句语句语句是构造函数的主体部分,C程序中的语句大致分为两类:一类为说明语句,用来描述数据,决定内存的分配;另一类为执行语句,用来描述对数据进行的动作,决定内存的

33、内容。C51程序没有行号,书写格式自由,一行内可以书写多条语句,一条语句也可分写在多行上,但为了区分程序中不同结构层次的语句,通常要求在同一结构层次上的语句,在行中缩进相同的字数。并且每条语句最后必须以一个分号“;”结尾,因为分号是语句的必要组成部分。4注释注释在C51程序中,为了增加程序的可读性,通常使用“/”或一对“/*/”对程序中的某些地方作必要注释。前者只能注释一行内容,后者则可以注释多行内容。注释只是为了方便用户编写和阅读程序,其自身在编译时不参与编译。同时还经常利用“/”或“/*/”屏蔽程序中的某些语句来调试程序。二、标识符与关键字二、标识符与关键字1标识符标识符指用来表示源程序中

34、自定义对象名称的符号,可以是常量、变量、数组、结构、语句标号以及函数等。在C51中,标识符只能由字母(az,AZ)、数字(09)和下划线“_”组成,并且第一个字符必须是字母或者下划线。在C51程序中,标识符区分大小写,如“max”和“MAX”表示两个完全不同的标识符。用户自定义的标识符不能与系统保留的关键字重复。关键字是C51编译器保留的一些特殊标识符,具有特定的含义和用法。单片机C51程序语言继承了ANSI C标准定义的关键字共32个,如auto、double、int、break、else、switch、case等。2关键字关键字sfr P0=0 x80;/*定义地址为“0 x80”的特殊功

35、能寄存器命名为“P0”。对P0口的操作也就是对地址为“0 x80”的特殊功能寄存器操作*/sbit LED=P20;/*位定义LED为单片机的P2.0端口,对LED操作也即对P2.0端口操作*/同时结合单片机硬件的特点扩充了一些关键字,如sfr、sbit。三、常量与变量三、常量与变量在程序运行过程中,数值不能被改变的量称为常量,可以为字符、十进制数或十六进制数;数值能被改变的量称为变量。例已知符号常量例已知符号常量“PI”,它的值为,它的值为3.1415926,求任意圆的周长,求任意圆的周长和面积。和面积。#define PI 3.1415926 /*宏定义符号常量PI=3.141596*/m

36、ain()float r,c,s;/定义三个实型变量分别为r、c、s c=2*PI*r;/圆的周长公式 s=PI*r*r;/圆的面积公式 四、四、Keil C51支持的数据类型支持的数据类型类型类型符号符号基本数据基本数据长度长度/bit取值范围取值范围字符型无unsigned char80255有signed char8-128+127整型无unsigned int16065535unsigned long3204294967295有signed int16-32768+32767signed long32-2147483648+2147483647(续表)(续表)类型类型符号符号基本数据基

37、本数据长度长度/bit取值范围取值范围实型有float32 1.176E-38 3.40E+38指针型无*824存储空间065535位类型无bit10或1sbit10或1特殊功能寄存器型无sfr80255sfr1616065535一、程序设计一、程序设计C51数据的存储类型与51单片机实际存储空间的对应关系:存储类型存储类型长度长度/bit描描 述述data8直接寻址的片内RAM低128B,访问速度快bdata1片内RAM的可位寻址区(20H2FH),允许字节和位混合访问idata8间接寻址访问的片内RAM,允许访问全部片内RAMpdata8用Ri间接访问的片外RAM的低256Bxdata16

38、用DPTR间接访问的片外RAM,允许访问全部64k片外RAMcode16程序存储器ROM 64k空间在C51编译器中提供了一组宏定义对51单片机的code、data、pdata和xdata空间进行绝对寻址。并且规定只能以无符号数方式访问,定义了8个宏,其函数原型如下:#define CBYTE(unsigned char volatile*)0 x50000L)#define DBYTE(unsigned char volatile*)0 x40000L)#define PBYTE(unsigned char volatile*)0 x30000L)#define XBYTE(unsigned

39、 char volatile*)0 x20000L)#define CWORD(unsigned int volatile*)0 x50000L)#define DWORD(unsigned int volatile*)0 x40000L)#define PWORD(unsigned int volatile*)0 x30000L)#define XWORD(unsigned int volatile*)0 x20000L)上述函数原型放在absacc.h文件中,使用时只需用预处理命令将其包含到源程序的文件中,即#include。如对单片机片内RAM的0 x30单元进行操作,可使用DBYTE以

40、字节形式对data区寻址,即0 x30的绝对地址为DBYTE0 x30。接下来向单片机内存单元的赋值操作,可借助Keil C51编译器所支持的无符号字符变量进行操作。unsigned char data30=0 x15;/将十六进制数15赋值给无 /符号字符变量data30 DBYTE0 x30=data30;/将data30中的值(0 x15)传送到 /片内RAM的30H单元根据上述任务分析编写完整的程序:二、编写程序并录入二、编写程序并录入三、调试运行三、调试运行编译无误后单击调试按钮,将自动弹出“debug”工具栏和存储器观察窗口。通过在存储器观察窗口地址栏内输入“字母:数字”即可显示相

41、应单元值。其中字母代表的意义如下表所示。数字代表所要查看相应单元中的地址,可以为十进制数也可以为十六进制数。字母字母对应的存储器空间对应的存储器空间字母字母对应的存储器空间对应的存储器空间C代码存储空间I间接寻址的片内存储空间D直接寻址的片内存储空间X扩展的外部 RAM 空间在地址栏后的文本框内输入“D:0 x30”,然后单击运行“”按钮,则程序进入运行状态,再单击停止“”按钮,程序执行结束,即可观察到地址为0 x30开始的片内RAM新的单元值,如下图所示。任务任务2 C51运算符的应用运算符的应用 1了解C51的运算符、表达式及其规则。2掌握每一种算术运算符对数据操作的具体功能。3能够完成计

42、算梯形面积程序的设计与调试。51系列单片机为单芯片微控制器(简称MCU),内部有具有数据运算处理能力的CPU。本任务主要利用C51中的算术运算符,计算下图所示梯形的面积(已知梯形的上底长为a,下底长为b,高是h),并通过串行窗口输出显示出来。一、算术运算符一、算术运算符运算符运算符意意 义义示示 例(设例(设x=5,y=3)加法运算z=x+y;/z=8减法运算z=x-y;/z=2*乘法运算z=x*y;/z=15/除法运算z=x/y;/z=1模运算(取余运算)z=x%y;/z=2 在运算过程中,当只用作加1和减1运算时,可以采用自增和自减运算符:运算符运算符意意 义义示示 例(设例(设x的初值为

43、的初值为2)x+先使用x的值,再让x加1y=x+;/y=2,x=3+x先让x加1,再使用x的值y=+x;/y=3,x=3x-先使用x的值,再让x减1y=x-;/y=2,x=1-x先让x减1,再使用x的值y=-x;/y=1,x=1二、关系运算符二、关系运算符运算符运算符意意 义义示示 例(设例(设a=5,b=6)小于a大于ab;/返回值 0=小于等于(不大于)a=大于等于(不小于)a=b;/返回值 0!=不等于a!=b;/返回值 1=等于a=b;/返回值 0三、逻辑运算符三、逻辑运算符运算符运算符意义意义示示 例(设例(设a=5,b=6)&逻辑与 a&b;/返回值 1|逻辑或 a|b;/返回值

44、1!逻辑非!a 或 !b;/返回值 0关系运算符和逻辑运算符通常用来判别某个条件是否满足,其运算结果只有“0”和“1”两种值。即当所指定的条件满足时结果为“1”,否则为“0”。四、位运算符四、位运算符运算符运算符意义意义示示 例例(设(设a=0 x25,b=0 x46)&按位与c=a&b;/c=0 x04|按位或c=a|b;/c=0 x67按位取反c=a;/c=0 xda运算符运算符意义意义示示 例例(设(设a=0 x25,b=0 x46)按位异或c=a b;/c=0 x63 左移(各位同时左移若干位,高位舍弃,低位补零)c=a 右移(各位同时右移若干位,低位舍弃,高位补零)c=a2;/c=0

45、 x94(续表)(续表)逻辑与是判断“&”两侧的表达式是否都为真,都为真则此逻辑与表达式值为真;按位与是将“&”两侧的数用二进制展开,每一位都求与运算(有0出0,全1出1),最后得到的二进制数即为结果。逻辑与结果只讲真和假,而按位与得出的仍然是一个二进制数。五、复合赋值运算符五、复合赋值运算符运算符运算符意意 义义示示 例例+=左边的变量或数组元素加上右边表达式的值b+=a 相当于b=b+a=左边的变量或数组元素减去右边表达式的值b=a 相当于b=ba*=左边的变量或数组元素乘以右边表达式的值b*=a 相当于b=b*a/=左边的变量或数组元素除以右边表达式的值b/=a 相当于b=b/a%=左边

46、的变量或数组元素模右边表达式的值b%=a 相当于b=b%a(续表)(续表)运算符运算符意意 义义示示 例例=左移操作,再赋值b=a 相当于b=b=右移操作,再赋值b=a 相当于b=ba&=按位与操作,再赋值b&=a 相当于 b=b&a|=按位或操作,再赋值b|=a 相当于 b=b|a=按位异或操作,再赋值 b=a 相当于b=b a六、条件运算符六、条件运算符一般形式如下:逻辑表达式?表达式逻辑表达式?表达式1:表达式:表达式2例当例当a=10,b=12时,求时,求a、b中最大值。中最大值。其条件表达式:max=(ab)?a:b一、程序设计一、程序设计梯形面积的计算主要分为三步:a+b;(a+b

47、)h;(a+b)h2。根据C51中提供的算术运算符,则梯形的面积表达式为:S=(a+b)*h/2 为了保证梯形面积计算结果的准确,程序中应定义梯形上底长a、下底长b、高h和梯形面积值S均为浮点型变量。二、编写程序并录入二、编写程序并录入根据上述任务分析编写完整的程序:三、调试运行三、调试运行 1载入源文件,编译无误后单击调试按钮,自动弹出“debug”工具栏和存储器观察窗口。为了查看程序的运行结果,单击“”按钮,弹出“serial#1”的串行窗口。2单击运行按钮“”,按提示输入相应的值再分别按下回车键,则在串行窗口中即可显示出单片机计算后的梯形面积值。运行中可进行多次数据输入并计算,如图所示。

48、任务任务3 选择语句的应用选择语句的应用 1了解C51程序中选择结构的构建。2了解if、switch/case语句的功能。3能够完成学生成绩等级划分程序的设计与调试。将某校学生成绩划分为A、B、C、D、E五个等级,见下表。同时,要求根据不同的分数打印出其相应等级。数据范围(成绩)数据范围(成绩)等级等级100error90100A8089B7079C6069D100)grade=e;/错误(error)else if(score=90)grade=A;/等级为 A else if(score=80)grade=B;/等级为 B else if(score=70)grade=C;/等级为 C e

49、lse if(score=60)grade=D;/等级为 D else grade=E;/等级为 E 对于不同成绩的等级划分,借助于switch/case语句打印输出:switch(grade)case A:printf(学生的成绩等级为 Ann);break;case B:printf(学生的成绩等级为 Bnn);break;case C:printf(学生的成绩等级为 Cnn);break;case D:printf(学生的成绩等级为 Dnn);break;case E:printf(学生的成绩等级为 Enn);break;default:printf(Errorn);break;二、编写

50、程序并录入二、编写程序并录入根据上述任务分析编写完整的程序:三、调试运行三、调试运行 1载入源文件,编译无误后单击调试按钮,自动弹出“debug”工具栏和存储器观察窗口。为了查看程序的运行结果,单击“”按钮,弹出“serial#1”的串行窗口。2单击运行按钮“”,按提示输入一名学生的成绩再按下回车键,则在串行窗口中即可显示出该学生的成绩等级。运行中可进行多次成绩输入,如图所示。任务任务4 循环语句的应用循环语句的应用 1了解C51程序中循环结构的构建。2掌握for、while等循环语句的功能。3掌握0100累加和的程序设计与调试方法。在单片机的程序设计中,当一段程序需要反复执行时,通常采用循环

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(全套电子课件:单片机应用技术(C语言).ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|