第3章 MCS-51单片机接口技术与C语言编程.ppt
《第3章 MCS-51单片机接口技术与C语言编程.ppt》由会员分享,可在线阅读,更多相关《第3章 MCS-51单片机接口技术与C语言编程.ppt(120页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 MCS-51单片机的单片机的接口技术与接口技术与C语言编程语言编程华强2009-2010(2)单片机与应用单片机与应用8051单片机支持的编程语言:l 汇编语言l PL/M语言l BASIC语言l C语言l C+语言一、MCS-51单片机的C语言编程n n对单片机的指令系统不要求了解,仅要求对对单片机的指令系统不要求了解,仅要求对80518051的存的存储器结构有一定了解;储器结构有一定了解;n n 寄存器分配、不同存储器的寻址及数据类型等细节可寄存器分配、不同存储器的寻址及数据类型等细节可寄存器分配、不同存储器的寻址及数据类型等细节可寄存器分配、不同存储器的寻址及数据类型等细节
2、可由编译器管理;由编译器管理;由编译器管理;由编译器管理;n n 程序有规范的结构,可分成不同的函数,这种方式可程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;使程序结构化;n n 具有将可变的选择与特殊操作组合在一起的能力,改具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;善了程序的可读性;n n 提供的库包含许多标准子程序,具有较强的数据处理提供的库包含许多标准子程序,具有较强的数据处理能力;能力;n n 由于具有方便的模块化编程技术,使已编好程序可容由于具有方便的模块化编程技术,使已编好程序可容易地移植;易地移植;1-1、C语言与汇编语言相比,有如下优点:1-
3、2、编译器、开发套件和 IDE(1 1)编译器)编译器:由源代码文件生成目标文件由源代码文件生成目标文件(2 2)开发套件)开发套件:包含了编译器、链接器等开发工具的组合包包含了编译器、链接器等开发工具的组合包(3 3)IDEIDE(Integrated Development Environment Integrated Development Environment 集成开发环境)集成开发环境)集成开发环境)集成开发环境)将项目管理、源代码编辑和程序编译、链接、调试等各种工具组合在一将项目管理、源代码编辑和程序编译、链接、调试等各种工具组合在一个功能强大的环境中,具有良好人机界面。个功能强
4、大的环境中,具有良好人机界面。8051单片机所使用的单片机所使用的C语言编译器简称为语言编译器简称为 Cx51例如包含例如包含Cx51、Ax51、BL51、LIB51、OH51、RTX51等等KEIL C51 KeilKeil Vision3 IDEVision3 IDEKeilKeil Vision3 IDEVision3 IDECx51.exeKeilKeil C51 C51开发套件开发套件 v7.50v7.50n C51的程序结构#include#include void delay()void delay();void void main main()()delay();delay()
5、;P0=0 x33 P0=0 x33;例:文件例:文件例:文件例:文件led.cled.c内的代码如下:内的代码如下:内的代码如下:内的代码如下:头文件头文件头文件头文件(一个或若干个)(一个或若干个)主函数主函数主函数主函数n 程序的入口程序的入口 函数名固定,且与书写的位置无关函数名固定,且与书写的位置无关n 有且仅有一个有且仅有一个 函数声明或定义函数声明或定义函数声明或定义函数声明或定义n 库函数或用户自定义的函数库函数或用户自定义的函数n 可以有若干个可以有若干个C51程序大体上是若干函数的集合C语言编程的三大要素l 数据 数据类型、数据结构、存储类型l 运算 算术运算、关系运算、逻
6、辑运算、位操作l 控制 顺序结构、选择结构、循环结构、函数数据类型数据类型长度长度值域值域 bit1 bit0,1 unsigned char8 bit0 255 (signed)char8 bit-128 127 unsigned int16 bit0 65535 (signed)int16 bit-32768 32767 unsigned long32 bit0 4294967295 (signed)long32 bit-21474836482147483647 float32 bit1.7e-38 3.40e+38 (6位)double64 bit1.7e-38 3.40e+38 (10
7、位)*(一般指针)13字节存储空间地址n C51的数据类型的数据类型q 位变量的使用n 不能定义成一个指针,不能定义成一个指针,如不能定义:如不能定义:bit*pointer;bit*pointer;n 不存在位数组不存在位数组如不能定义:如不能定义:bit bit b_arrayb_array n 位变量定义时,存储类型只允许为位变量定义时,存储类型只允许为datadata、bdatabdata或者或者idataidata,如果将位变量的存储类型,如果将位变量的存储类型定义成其它类型都将导致编译出错。定义成其它类型都将导致编译出错。q char 数据类型单片机应用中单片机应用中ASCIIAS
8、CII字符和字符串的使用比较少(因字符和字符串的使用比较少(因为很少需要大量的文本信息),因此在单片机应用中定为很少需要大量的文本信息),因此在单片机应用中定义为义为 unsigned char unsigned char 和和 char char 的变量常用来表示数值。的变量常用来表示数值。q 数据类型的使用单片机系统总存储空间往往比较有限,因此在实际单片机系统总存储空间往往比较有限,因此在实际使用中应注意节约存储空间;使用中应注意节约存储空间;对于对于8 8位单片机,位单片机,8 8位的数据类型是运算最快的;而位的数据类型是运算最快的;而对于对于1616位单片机,位单片机,8 8位的数据和
9、位的数据和1616位的数据可能运算速位的数据可能运算速度是一样的。度是一样的。l l常量常量常量常量 又称为标量,常量的值在程序执行过程中不能改变。又称为标量,常量的值在程序执行过程中不能改变。符号常量(不是严格意义上的常量,只是一个宏)符号常量(不是严格意义上的常量,只是一个宏)使用使用#define#define 语句定义语句定义 定义在定义在ROMROM里的常量里的常量使用使用“codecode”关键字定义的数据关键字定义的数据 定义在定义在RAMRAM里的常量里的常量使用使用“constconst”关键字定义的数据关键字定义的数据在在C51C51中常量的定义有中常量的定义有3 3种方式
10、:种方式:q 常量和变量q 常量和变量在在C51C51中常量的使用:中常量的使用:9:P0=constA;C:0 x008F758014MOVP0(0 x80),#0 x14 10:P1=constB;C:0 x00929000A2MOVDPTR,#constB(0 x00A2)C:0 x0095E4CLRAC:0 x009693MOVCA,A+DPTRC:0 x0097F590MOVP1(0 x90),A 11:P2=constC;C:0 x00998508A0MOVP2(0 xA0),constC(0 x08)#include#define#define constA 20 unsigne
11、d char codecode constB =20;unsigned char constconst constC=20;q 常量和变量在在C51C51中常量的使用:中常量的使用:1 1、符号常量、符号常量(常用)(常用)(常用)(常用)是一个宏,在编译时常被当作指令的立即数。2 2、定义在、定义在ROMROM中的常量中的常量(常用)(常用)存放在ROM中,掉电不丢失,访问需要MOVC指令,和16位地址,访问速度较慢。3 3、定义在、定义在RAMRAM中的常量中的常量存放在RAM中,访问较快,但占用RAM资源,掉电丢失,需要在单片机上电时进行初始化。#include#define#defin
12、e constA 20 unsigned char codecode constB =20;unsigned char constconst constC=20;l l变量变量 在程序执行过程中,其值可以改变的量称为变量。变量只能存放在RAMRAM中。n 数据类型数据类型数据类型数据类型 存储器类型存储器类型存储器类型存储器类型 变量名变量名变量名变量名 =初值初值初值初值 例:例:例:例:unsigned charunsigned charunsigned charunsigned char xdataxdataxdataxdata FlagFlagFlagFlag =0 x0F=0 x0F
13、=0 x0F=0 x0F;C51C51的变量的定义:的变量的定义:的变量的定义:的变量的定义:q 常量和变量存储类型存储类型说明说明datadata直接寻址的片内数据存储器(128B),访问速度最快bdatabdata可位寻址的片内数据存储器(16B),允许位和字节混合访问idataidata间接访问的片内数据存储器(256B),全部片内RAM空间pdatapdata分页访问的片外数据存储器(256B)xdataxdata片外数据存储器(64KB),访问速度相对比较慢codecode程序存储器(64KB),只读n C51数据的存储类型数据的存储类型 在讨论在讨论C51的数据类型的时候,必须理解
14、数据的的数据类型的时候,必须理解数据的存储类型存储类型和它与和它与8051单片机单片机存储器结构存储器结构的关系的关系.l定义变量时如果省略定义变量时如果省略“存储器类型存储器类型”选项,则按编译时使用选项,则按编译时使用的存储器模式的存储器模式SMALLSMALL、COMPACTCOMPACT、或、或、或、或LARGELARGE来使用默认来使用默认的存储器类型。的存储器类型。SMALL SMALL:默认存储类型为默认存储类型为data,访问速度最快,容量小,访问速度最快,容量小COMPACT COMPACT:默认存储类型为默认存储类型为pdataLARGE LARGE:默认存储类型为默认存储
15、类型为xdata,访问效率最低,代码长,访问效率最低,代码长,容量大容量大 一般使用一般使用一般使用一般使用SMALLSMALL模式,对部分容量大的变量,手动指定存储模式,对部分容量大的变量,手动指定存储模式,对部分容量大的变量,手动指定存储模式,对部分容量大的变量,手动指定存储器类型(如定义为器类型(如定义为器类型(如定义为器类型(如定义为xdataxdata类型)。类型)。类型)。类型)。n C51数据的存储模式数据的存储模式n C51的运算符的运算符1、算术运算2、关系运算3、逻辑运算4、位操作运算q 循环移位指令?#include#include extern unsigned cha
16、r extern unsigned char_ _crorcror_ _(unsigned char,unsigned char);(unsigned char,unsigned char);extern unsigned char extern unsigned char _ _crolcrol_ _(unsigned char,unsigned char);(unsigned char,unsigned char);extern unsigned extern unsigned intint _ _iroriror_ _ (unsigned(unsigned intint,unsigned
17、 char);,unsigned char);extern unsigned extern unsigned intint _ _irolirol_ _ (unsigned(unsigned intint,unsigned char);,unsigned char);extern unsigned long extern unsigned long _ _lrorlror_ _ (unsigned long,unsigned char);(unsigned long,unsigned char);extern unsigned long extern unsigned long _ _lrol
18、lrol_ _ (unsigned long,unsigned (unsigned long,unsigned char);char);n C51的流程控制的流程控制(略)二、MCS-51单片机接口技术例:用单片机设计一台数控方波发生器二、MCS-51单片机接口技术n 2-0 2-0 并行并行IOIO的基本应用的基本应用n 2-1 2-1 键盘控制接口键盘控制接口n 2-2 2-2 显示器控制接口显示器控制接口n 2-3 2-3 定时定时/计数器的使用计数器的使用n 2-4 2-4 串行通信接口串行通信接口n 2-5 2-5 外部总线接口外部总线接口n 2-6 2-6 外部总线接口的应用外部总
19、线接口的应用n单片机的IO功能分为两大类:数字量IO模拟量IO由并行由并行由并行由并行IOIO实现实现实现实现由由AD和和DA模块实模块实现现2-0 并行IO的基本应用基本应用:基本应用:基本应用:基本应用:n 开关量输出控制(继电器、模拟开关、灯泡、发光二极管等)开关量输出控制(继电器、模拟开关、灯泡、发光二极管等)n 开关量输入(开关、按键、开关型传感器(限位开关)等)开关量输入(开关、按键、开关型传感器(限位开关)等)n 波形输出(矩形波、波形输出(矩形波、PWM等)等)复杂控制:复杂控制:复杂控制:复杂控制:n 并行数据并行数据IO控制(数码管、液晶、键盘等)控制(数码管、液晶、键盘等
20、)n 串行数据串行数据IO控制(控制(IIC总线模拟、总线模拟、SPI总线模拟等)总线模拟等)n 第二功能的使用(通用数据总线、外部中断输入等)第二功能的使用(通用数据总线、外部中断输入等)1、并行IO的应用概述注意事项:注意事项:注意事项:注意事项:n 并行并行IO主要用于数字量(开关量)的输入输出,逻辑电平主要用于数字量(开关量)的输入输出,逻辑电平为为CMOS电平,即电平,即1接近于电源电压,接近于电源电压,0接近于接近于0V。n n 使用并行使用并行使用并行使用并行IOIO时应当注意时应当注意时应当注意时应当注意IOIO口的驱动能力!口的驱动能力!口的驱动能力!口的驱动能力!1、IO口
21、的允许电压最大为电源电压,一般为口的允许电压最大为电源电压,一般为5V;2、每个、每个IO口的输出驱动电流,一般不能超过口的输出驱动电流,一般不能超过15mA;3、当被控制的设备(如灯泡,继电器等)需要更大的电、当被控制的设备(如灯泡,继电器等)需要更大的电压或电流时,需要外接驱动电路或者驱动芯片;压或电流时,需要外接驱动电路或者驱动芯片;当输入数字量信号的高电平超过或当输入数字量信号的高电平超过或 低于低于5V时(如工业时(如工业常用常用12V、24V传感器),需使用适当的电平转换电路。传感器),需使用适当的电平转换电路。1、并行IO的应用概述1、并行IO的应用概述驱动驱动电路电路电平转电平
22、转换电路换电路外部数字量输入外部执行机构单片机IO常用简单驱动和转换电路:负载负载 ,例如:灯泡、继电器、,例如:灯泡、继电器、电磁阀、电动机电磁阀、电动机 增大驱动电流(几十增大驱动电流(几十mA 几几A)光耦的功能:光耦的功能:n n 电平转换电平转换电平转换电平转换 输入输出端的逻辑电平大小可以任意转换;n n 电气隔离电气隔离电气隔离电气隔离 输入端和输出端可以使用不同的电源,从而使输入端和输出端隔离,提高抗干扰能力,并为单片机提供一定的保护功能。常用简单驱动电路:使用光耦进行连接使用光耦进行连接2、LED的控制的控制q sbit的使用n 分析电路:1、由图,D3由IO引脚P2.2控制
23、;2、由硬件电路可知,当IO口输出逻辑电平0时对应的LED点亮,当IO口输出逻辑电平1时LED熄灭。例:如上图所示电路图,要求编程控制发光二极管D3点亮。普通发光二极管只需要几个mA的电流就可以点亮#include sbit D3=P22;void main()D3=0;/点亮LED while(1)/循环,挂起 ;n 按要求编程:按要求编程:_ _ _ 引用含有引用含有SFRSFR符号定义的头文件符号定义的头文件 定义符号定义符号D3D3为为P2P2口的第口的第2 2位位 D3D3可以换为其他自定义符号,作可以换为其他自定义符号,作用相同,如:用相同,如:sbitsbit P2_2=P22;
24、P2_2=P22;点亮发光二极管的功能语句点亮发光二极管的功能语句 while(1)while(1)无限循环,用于程序的无限循环,用于程序的反复执行或者程序挂起,很重要!反复执行或者程序挂起,很重要!使用使用tabtab或者空格,使程序结构或者空格,使程序结构清晰,便于阅读清晰,便于阅读 适当加入注释,使编程思路清晰,适当加入注释,使编程思路清晰,便于阅读和后期的修改便于阅读和后期的修改q sbit的使用q while(1)循环#include sbit D3=P22;void main()D3=0;/点亮LED while(1)/循环,挂起 ;while(1)D3=0;可以实现相同的功能q
25、while(1)循环n 如果主函数中没有如果主函数中没有while(1)循环会出现怎么样的情况?循环会出现怎么样的情况?0000H 0200H0201H 02FFH0300H0301H 0FFFH#include ;void main();用用户户代代码码区区域域空闲区域,可能存在随机代码没有while(1)有while(1)q while(1)循环读取按读取按键代码键代码根据按键代码执行相应操作根据按键代码执行相应操作 例:使用单片机作为控制器,设计一个数学计算器。空代码?空代码?无键按无键按下,不下,不执行任执行任何操作何操作数字键?数字键?运算键?运算键?数字数字输入输入 例:使用单片机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 MCS-51单片机接口技术与C语言编程 MCS 51 单片机 接口 技术 语言 编程
限制150内