单片机课程设计单片机开发系统使用_第1页
单片机课程设计单片机开发系统使用_第2页
单片机课程设计单片机开发系统使用_第3页
单片机课程设计单片机开发系统使用_第4页
单片机课程设计单片机开发系统使用_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计单片机开发系统使用第1页,共74页,2022年,5月20日,3点6分,星期二单片机开发系统的使用一、Keil软件使用二、Proteus使用三、C51基础知识四、基于C51的一个设计实例第2页,共74页,2022年,5月20日,3点6分,星期二一、Keil软件使用使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。 第

2、3页,共74页,2022年,5月20日,3点6分,星期二(1)新建工程点击Project菜单,选择New Project,输入项目名称,扩展名为uv2,以后我们可以直接点击此文件以打开先前做的项目。 第4页,共74页,2022年,5月20日,3点6分,星期二(2)选择所要的单片机这里我们选择常用的Ateml公司的AT89C51 。 第5页,共74页,2022年,5月20日,3点6分,星期二(3)创建新的程序文件或加入旧程序文件点击图中的新建文件的快捷按钮,出现一个新的文字编辑窗口,这个操作也可通过菜单FileNew或快捷键Ctrl+N来实现。输入程序代码保存文件。这时你会发现程序有了不同的颜色

3、,说明KEIL的C语法检查生效了。 第6页,共74页,2022年,5月20日,3点6分,星期二(4)将程序文件加入项目中右击Source Group1文件夹图标,可以在项目中增加减少文件等操作。选择Add File to Group Source Group 1,在弹出文件窗口选择需添加的文件。第7页,共74页,2022年,5月20日,3点6分,星期二(5)编译运行程序图中1、2、3都是编译按钮1是用于编译单个文件2是编译当前项目3是重新编译在3右边的是停止编译按钮5是菜单中的相应项在4中可以看到编译的信息等,以后我们要查错就靠它了。6是”开启关闭调试模式”的按钮,快捷键为Ctrl+F5。 第

4、8页,共74页,2022年,5月20日,3点6分,星期二(6)进入调试模式 1为运行,2为停止,3是复位,模拟芯片的复位按4可以打开的串行调试窗口(如5)。第9页,共74页,2022年,5月20日,3点6分,星期二(7)生成HEX文件KEIL 编译生成用于烧写芯片的HEX文件。右击项目文件夹 ,弹出项目功能菜单,选Options for TargetTarget1 第10页,共74页,2022年,5月20日,3点6分,星期二(7)生成HEX文件转到Output选项页,1是选择编译输出的路径,2是设置生成的文件名,3是决定是否要创建HEX文件。第11页,共74页,2022年,5月20日,3点6分

5、,星期二二、Proteus 的使用Proteus是来自英国Labcenter公司的嵌入式系统仿真开发软件,它包括原理图布图、混合模式仿真、VSM嵌入式仿真以及PCB制板功能。第12页,共74页,2022年,5月20日,3点6分,星期二(一) Proteus 概览(二) 原理图设计(三) PROTEUS微处理器仿真(四) Proteus和Keil联合调试第13页,共74页,2022年,5月20日,3点6分,星期二在传统的CAD功能中添加了嵌入式系统的仿真可以完整地仿真微控制器以及相连的模拟和数字电路(一)Proteus 概览ProSPICE混合模式仿真器ISIS设计仿真平台VSM嵌入式仿真ARE

6、SPCB制版ProteusDesign Suite第14页,共74页,2022年,5月20日,3点6分,星期二Proteus 概览 在Proteus中, 从原理图设计、单片机编程、系统仿真到PCB布线一气呵成。完成了从概念到产品的整个过程。第15页,共74页,2022年,5月20日,3点6分,星期二Proteus是一个虚拟实验室,提供了大量的虚拟仪器、仪表、激励源和分析工具:13类激励源直流、正弦、脉冲13类曲线图表模拟、数字、频率12类虚拟仪器示波器、逻辑分析仪、SPI/I2C调试器电压/电流探针第16页,共74页,2022年,5月20日,3点6分,星期二PROTEUS虚拟实验室探针(Pro

7、be)电压探针(Voltage probes)既可在模拟仿真中使用,也可在数字仿真中使用。在模拟电路中记录真实的电压值,而在数字电路中,记录逻辑电平及其强度。 探针即可用于基于图表的仿真,也可用于交互式仿真中 。第17页,共74页,2022年,5月20日,3点6分,星期二预览窗口挑选元件按钮库管理按钮模型选择工具栏元件列表仿真按钮原理图编辑窗口方位控制按钮(二)原理图设计第18页,共74页,2022年,5月20日,3点6分,星期二1、原理图编辑窗口(The Editing Window)用来绘制原理图,蓝色方框内为可编辑区,元件要放到它里面。注意:这个窗口是没有滚动条的,你可用预览窗口来改变原

8、理图的可视范围。第19页,共74页,2022年,5月20日,3点6分,星期二2、预览窗口(The Overview Window)可显示两个内容.(1)当你在元件列表中选择一个元件时,它会显示该元件的预览图;(2)当你的鼠标焦点落在原理图编辑窗口时,会显示整张原理图的缩略图,可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。 第20页,共74页,2022年,5月20日,3点6分,星期二3、模型选择工具栏(Mode Selector Toolbar)主要模型(Main Modes) 1)选择元件(components)(默认选择的) 2)放置连接点 3)放置标签(用总线时会用

9、到) 4)放置文本 5)用于绘制总线 6)用于放置子电路 7)用于即时编辑元件参数 (先单击该图标再单击要修改的元件) 第21页,共74页,2022年,5月20日,3点6分,星期二方便快捷的元件查找、放置功能:模糊查找分类查找结果列表元件预览封装预览第22页,共74页,2022年,5月20日,3点6分,星期二配件(Gadgets) 1)终端接口:有VCC、地、输出、输入等接口 2)器件引脚:用于绘制各种引脚 3)仿真图表:用于各种分析,如Noise Analysis 4)录音机 5)信号发生器(generators) 6)电压探针:使用仿真图表时要用到 7)电流探针:使用仿真图表时要用到 8)

10、虚拟仪表:有示波器等 第23页,共74页,2022年,5月20日,3点6分,星期二2D图形(2D Graphics) 1* 画各种直线 2* 画各种方框 3* 画各种圆 4* 画各种圆弧 5* 画各种多边形 6* 画各种文本 7* 画符号 8* 画原点等 第24页,共74页,2022年,5月20日,3点6分,星期二4、元件列表(The Object Selector) 用于挑选元件(components)、 终端接口(terminals)、仿真图表(graph)、信号发生器(generators)等。举例:当你选择“元件 ”,单击“P”按钮会打开挑选元件对话框,选择了一个元件后,单击“OK”

11、(或双击元件),该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选择即可。 第25页,共74页,2022年,5月20日,3点6分,星期二5、方向工具栏(Orientation Toolbar) 旋转 :旋转角度只能是90的整数倍。 翻转 :完成水平翻转和垂直翻转。 使用方法:先右键单击元件,再点击(左击)相应的旋转图标。 第26页,共74页,2022年,5月20日,3点6分,星期二6、仿真工具栏 仿真控制按钮 1* 运行 2* 单步运行 3* 暂停 4* 停止 第27页,共74页,2022年,5月20日,3点6分,星期二(三)PROTEUS微处理器仿真Proteus VSM是一个

12、基于ProSPICE混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台 。单片机系统的仿真是PROTEUS VSM的主要特色。用户可在Proteus中直接编辑、编译、调试代码,并直观地看到仿真结果。CPU模型有ARM7(LPC21xx)、PIC、Atmel AVR、Motorola HCXX以及8051/8052系列。同时模型库中包含了LED/LCD显示、键盘、按钮、开关、常用电机等通用外围设备。第28页,共74页,2022年,5月20日,3点6分,星期二PROTEUS VSM仿真与分析示例1:PWM电机控制动态效果动态器件使仿真直观生动CPU可加载程序运行第29页,共74页,2022年,

13、5月20日,3点6分,星期二51单片机仿真过程1绘制原理图2选择软件设计语言(汇编、C)编写源代码3编译代码,生成目标文件。4装载HEX或OMF文件,仿真调试。第30页,共74页,2022年,5月20日,3点6分,星期二第三方工具的应用 直接使用第三方IDE(Integrated Development Environment ) 如:Keils uVision 2、WAVE6)开发源代码,并进行编辑,生成HEX文件后,切换到Proteus VSM ,再进行仿真。 1、使用第三方IDE建立工程,编写C程序2、编译生成HEX代码,加载到CPU当中。(无源码调试信息)3、编译生成OMF格式代码,加

14、载到CPU当中。第31页,共74页,2022年,5月20日,3点6分,星期二装载HEX或OMF文件,仿真调试。程序加载到CPU第32页,共74页,2022年,5月20日,3点6分,星期二仿真调试实时显示系统输出结果 实时显示元器件 引脚电平说明:红色代表高电平,兰色代表低电平,灰色代表不确定电平(floating)。 第33页,共74页,2022年,5月20日,3点6分,星期二(四) Proteus和Keil联合调试联调过程: 1. 运行驱动程序vdmagdi.exe 2. 在Proteus中设计电路原理图,并选中Debuguse remote debug monitor 3.在Keil环境下

15、创建项目,编辑源程序(C或ASM)并编译为hex文件; 第34页,共74页,2022年,5月20日,3点6分,星期二(四) Proteus和Keil联合调试4. 在Keil中,设置Targettarget option-debug,选用Proteus VSM Simulator;5. 在Proteus中将Keil生成的hex文件加载给CPU; 6. 在Keil中运行、调试程序,同时在Proteus中观察运行结果。 第35页,共74页,2022年,5月20日,3点6分,星期二PROTEUS与Keil联调Keil处于运行状态PROTEUS同时进入运行状态第36页,共74页,2022年,5月20日,

16、3点6分,星期二三、C51基础知识1、标识符标识符是用来标识源程序中某个对象的名字,这些对象可以是函数、变量、数组等。C语言对大小些敏感, 如“Timer1”、“TIMER1” 是完全不同定义的标识符。标识符由字符串、数字和下划线等组成,注意的是第一个字符必须是字母或下划线。标识符在命名时应当简单,含义清晰,这样有助于阅读理解程序。第37页,共74页,2022年,5月20日,3点6分,星期二三、C51基础知识2、关键字关键字则是编程语言保留的特殊标识符,它们具有固定名称和含义,在程序编写中不允许标识符与关键字亦同。在KEIL uVision2中的关键字除了有ANSI C标准的32个关键字外还根

17、据51单片机的特点扩展了相关的关键字。第38页,共74页,2022年,5月20日,3点6分,星期二数据类型长度值域unsigned char单字节0255signed char单字节-128+127unsigned int双字节065535signed int双字节-32768+32767unsigned long四字节04294967295signed long四字节-2147483648 +2147483647float四字节1.175494E-383.402823E+38*13字节对象的地址bit位0或1sfr单字节0255sfr16双字节065535sbit位0或13、KEIL C51

18、编译器所支持的数据类型第39页,共74页,2022年,5月20日,3点6分,星期二1)char字符类型char类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。unsigned char:0255。signed char:字节中最高位字节表示数据的符号,“0”表示正数,“1”表示负数,负数用补码表示。所能表示的数值范围是-128+127。unsigned char常用于处理ASCII字符或用于处理小于或等于255的整型数。第40页,共74页,2022年,5月20日,3点6分,星期二2)int整型int整型长度为两个字节,用于存放一个双字节数据。signed int:-32768+32

19、767 unsigned int:065535第41页,共74页,2022年,5月20日,3点6分,星期二3)long长整型long长整型长度为四个字节,用于存放一个四字节数据。分有signed long和unsigned long4)float浮点型float浮点型在十进制中具有7位有效数字,是符合IEEE754标准的单精度浮点型数据,占用四个字节。5)*指针型指针型本身就是一个变量,在这个变量中存放的指向另一个数据的地址。第42页,共74页,2022年,5月20日,3点6分,星期二6)bit位标量bit位标量是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能

20、定义位数组。它的值是一个二进制位,不是0就是1,类似高级语言中的Boolean类型中的True和False。第43页,共74页,2022年,5月20日,3点6分,星期二7)sfr特殊功能寄存器sfr也是一种扩充数据类型,点用一个内存单元,值域为0255。利用它可以访问51单片机内部的所有特殊功能寄存器。如用sfr P1 = 0 x90这一句定P1为P1端口在片内的寄存器,在后面的语句中我们用以用 P1 = 255(对P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。第44页,共74页,2022年,5月20日,3点6分,星期二8)Sfr1616位特殊功能寄存器sfr16占用两个内存单元

21、,值域为065535。sfr16和sfr一样用于操作特殊功能寄存器,所不同的是它用于操作占两个字节的寄存器,如定时器T0和T1。第45页,共74页,2022年,5月20日,3点6分,星期二9)sbit可寻址位sbit是C51中的一种扩充数据类型,利用它可以访问芯片内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。如先前我们定义了sfr P1 = 0 x90; sbit P1_1 = P11; /P1_1为P1中的P1.1引脚第46页,共74页,2022年,5月20日,3点6分,星期二4、常量 常量是在程序运行过程中不能改变值的量,而变量是可以在程序运行过程中不断变化的量。变量的定义可以使用所

22、有C51编译器支持的数据类型常量的数据类型只有整型、浮点型、字符型、字符串型和位标量。第47页,共74页,2022年,5月20日,3点6分,星期二常量的数据类型说明:1)整型常量整型常量可以表示为:十进制,如123、0、89等。十六进制则以0 x开头如0 x34,-0 x3B等。长整型就在数字后面加字母L,如104L等。第48页,共74页,2022年,5月20日,3点6分,星期二常量的数据类型说明2)浮点型常量:可分为十进制和指数表示形式。十进制由数字和小数点组成,如0.888,3345.345,0.0等,整数或小数部分为0,可以省略但必须有小数点。第49页,共74页,2022年,5月20日,

23、3点6分,星期二常量的数据类型说明3)字符型常量是单引号内的字符,如a, d等,不可以显示的控制字符,可以在该字符前面加一个反斜杠组成专用转义字符。转义字符含义ASCII码(16/10进制)o空字符(NULL)00H/0n换行符(LF)0AH/10r回车符(CR)0DH/13t水平制表符(HT)09H/9b退格符(BS)08H/8f换页符(FF)0CH/12单引号27H/39双引号22H/34反斜杠5CH/92第50页,共74页,2022年,5月20日,3点6分,星期二常量的数据类型说明4)字符串型常量由双引号内的字符组成,如test,OK等。当引号内的没有字符时,为空字符串。在使用特殊字符时

24、同样要使用转义字符如双引号。在C中字符串常量是做为字符类型数组来处理的,在存储字符串时系统会在字符串尾部加上o转义字符以作为该字符串的结束符。第51页,共74页,2022年,5月20日,3点6分,星期二常量可用在不必改变值的场合,如固定的数据表,字库等。常量的定义方式有几种:#difine False 0 x0; /用预定义语句可以定义常量#difine True 0 x1; /这里定义False为0,True为1 /在程序中用到False编译时自动用0替换,同理True替换为1第52页,共74页,2022年,5月20日,3点6分,星期二unsigned int code a=100; /这一

25、句用code把a定义在程序存储器中并赋值const unsigned int c=100; /用const定义c为无符号int常量并赋值以上两句它们的值都保存在程序存储器中,而程序存储器在运行中是不允许被修改的,所以如果在这两句后面用了类似a=110,a+这样的赋值语句,编译时将会出错。 第53页,共74页,2022年,5月20日,3点6分,星期二5、变量变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。第54页,共74页,2022年,5月20日,3点6分,星期二5、变量定义一个

26、变量的格式如下:存储种类 数据类型 存储器类型变量名表在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类是指变量在程序执行过程中的作用范围。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)第55页,共74页,2022年,5月20日,3点6分,星期二存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。第56页,共74页,2022年,5月20日,3点6分,星期二KEIL 所能认别的存储器类型存储器类型说明data直接访问内部数据存储器(128字节),访问速度最快

27、bdata可位寻址内部数据存储器(16字节),允许位与字节混合访问idata间接访问内部数据存储器(256字节),允许访问全部内部地址pdata分页访问外部数据存储器(256字节),用MOVX Ri指令访问xdata外部数据存储器(64KB),用MOVX DPTR指令访问code程序存储器(64KB),用MOVC A+DPTR指令访问第57页,共74页,2022年,5月20日,3点6分,星期二如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计

28、数器和队列索引放在内部数据区可以显著的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。第58页,共74页,2022年,5月20日,3点6分,星期二例:数据类型 存储类型 变量Char data var1;bit bdata flags;unsigned char xdata vextor10;第59页,共74页,2022年,5月20日,3点6分,星期二6、运算符与C语言基本相同:+ - * / : (加 减 乘 除) = : (位右移 位左移)& | : (按位与 按位或) : (按位异或 按位取反)第61页,共74页,2022年,5月20日,3点6分,星期二7、C51的

29、基本语句与标准C语言基本相同:if 选择语言switch/case 多分支选择语言while 循环语言do-while 循环语言 for 循环语言第62页,共74页,2022年,5月20日,3点6分,星期二8、C程序的规范化设计在单片机C程序设计中,项目一般按功能进行结构化设计。将一个项目划分为多个功能,每个功能的相关程序放在一个C程序文档中,称之为一个模块(group),对应的文件名即为模块名。一个模块通常由两个文档组成:一个为头文件.h,对模块中的数据结构和函数原型进行描述;另一个则为C文件.c ,对数据实例或对象定义,以及函数算法具体实现。第63页,共74页,2022年,5月20日,3点

30、6分,星期二(1)C51库函数与H头文件C51编译器的运行库中包含有丰富的库函数,使用库函数可以大大简化用户的程序设计工作,提高编程效率。由于8051系列单片机本身的特点,某些库函数的参数和调用格式与ANSI C标准有所不同。每个库函数都在相应的头文件中给出了函数原型说明,用户如果需要使用库函数,必须在源程序的开始处采用预处理器指令#include将有关的头文件包含进来。第64页,共74页,2022年,5月20日,3点6分,星期二C51包含的头文件常用有:reg51.h(定义特殊功能寄存器和位寄存器);math.h 数学函数库(定义常用数学运算);absacc.h 绝对地址访问头文件(定义一些宏用来对存储器空间进行绝对地址访问)intrins.h 内部函数库 (包含变量循环移位、位操作等函数)第65页,共74页,2022年,5月20日,3点6分,星期二(2) C51的程序结构 与一般C语言的结构相同,以main()函数为程序人口,程序体中包含若干语句还可以包含若

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论