第1章单片机基础知识及其开发系统_第1页
第1章单片机基础知识及其开发系统_第2页
第1章单片机基础知识及其开发系统_第3页
第1章单片机基础知识及其开发系统_第4页
第1章单片机基础知识及其开发系统_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

1、第第1章章 单片机基础知识单片机基础知识及其开发系统及其开发系统单片机应用技术单片机应用技术二层含义:二层含义:1.单片机:单片微机、也称单片机:单片微机、也称51单片机的单片机的结构和基础知识结构和基础知识2. 应用技术:输入输出等接口技术应用技术:输入输出等接口技术 类似的教材名称和课程类似的教材名称和课程名称名称单片微机与接口技术单片微机与接口技术单片机的原理与应用单片机的原理与应用单片机应用技术单片机应用技术单片机系统设计、仿真与应用单片机系统设计、仿真与应用 1.1 初识单片机初识单片机知识我们熟悉个人计算机我们熟悉个人计算机(Personal Computer)CPU+存储器存储器

2、+主板主板+显卡显卡+声卡声卡+网卡网卡+显示器显示器+鼠标鼠标+键键盘盘基本功能部件基本功能部件接口部件接口部件外部设备外部设备支持它的软件五花八门,应有尽有支持它的软件五花八门,应有尽有CPU输输入入设设备备输输出出设设备备软软件件系系统统+硬件系统输输入入接接口口设设备备输输出出接接口口设设备备运 算 器控 制 器存 储 器单片机的全称是单片微型计算机(单片机的全称是单片微型计算机(Single Chip Microcomputer)DIP引脚分布 电源及晶振引脚(共电源及晶振引脚(共4只)只)控制引脚(共控制引脚(共4只)只)端口引脚端口引脚 (共(共32只)只) 三类产品系列产品系列

3、MCS: intel公司生产AT: atmel公司生产,但核还是intel公司技术转移STC: 深圳宏晶公司.8031系列:无程序存储器8051:有程序存储器:固定4K ROM8751 :有程序存储器:4K EPROM可紫外擦除89C51、89S51:有程序存储器:4K flash ROM,在线编程ISP单片机的特点及应用单片机的特点及应用 体积小,重量轻体积小,重量轻电源单一,功耗低电源单一,功耗低功能强,价格低功能强,价格低(5元元)运行速度快,抗干扰能力强,可靠性高运行速度快,抗干扰能力强,可靠性高 1.2 单片机单片机开发系统单片机单片机开发系统知识各组成部分既相对独立,又相互交叉单片

4、机硬件硬件、软件软件、接口接口、开发工具开发工具四方面知识硬件系统软件系统接口系统开发工具开发工具硬件系统硬件系统(RAM,IO,T/C,INT,UART)存储器输入/输出单元定时/计数器中断系统串行通信接口系统接口系统(LED,KEY,AD,DA,IO扩展)键盘电路数码管数码管键盘键盘模数转换模数转换数模转换数模转换可编程接口可编程接口硬件开发工具硬件开发工具PROTEUS单片单片机仿真软件机仿真软件软件系统软件系统C51语言程序汇编语言程序Keil C51是是51单片机软件开发的单片机软件开发的C语言和汇编语言语言和汇编语言环境,可以进行纯软件仿真;环境,可以进行纯软件仿真;软件开发工具软

5、件开发工具 Keil C51Keil C51、Proteus 联调仿真联调仿真29一、一、keilkeil软件的应用软件的应用 在开发单片机时,常使用C语言编程,它都不能直接烧写到单片机里面,执不执行暂且不说,光是代码的体积,就足以撑破整个单片机。所以,我们需要一个软件,把C语言或者汇编语言编译生成单片机可执行的二进制代码,即机器码,形成HEX可执行文件,而且它的体积也非常的小,足够写入并存放在单片机的存储器里面。 Keil uVision是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的51架构的单片机芯片,甚至ARM,它集编辑,编译,仿真等于一体。1.2.1 keil (fo

6、r C51)软件的使用软件的使用30 Keil是公司的名称,有时候也指Keil公司的所有软件开发工具,目前2005年Keil由ARM公司收购,成为ARM的公司之一。 uVision是Keil公司开发的一个集成开发环境(IDE)。uVision有uVision2、uVision3、uVision4、uVision5四个版本,目前最新的版本是uVision5。 Keil C51,亦即PK51,是Keil公司开发的基于uVision开发环境,支持绝大部分8051内核的微控制器开发工具。31二、使用步骤二、使用步骤1. 建立工程项目文件夹首先我们要养成一个习惯:最好先建立一个空文件夹,把工程文件放到里

7、面,以避免和其他文件混合,创建了一个名为“LED闪灯项目”文件夹。322.启动Keil uVision 点击桌面上的Keil uVision图标,或者点击屏幕左下方的“开始-程序Keil uVision”,出现启动画面文件夹。333.工作界面Keil uVision工作界面提供菜单1和一个工具条2,以及源代码的显示窗口3、项目信息显示4、编译信息显示5344.建立工程文件点击“Project - New uVision Project”新建一个工程355.工程项目命名在对话框,选择放在刚才建立的“LED闪灯项目”文件夹下,给这个工程取个名后保存,不需要填后缀,注意默认的工程后缀为uvporj3

8、66.选择单片机型号弹出一个框,在CPU类型下我们找到并选中“Atmel”下的AT89C51或52单片机。377.略过启动代码新建工程中,一般不需要修改这个STARTUP.A51启动代码,所以选择“否”388.项目文件建立项目文件建立成功399.新建源程序文本以上工程创建完毕,接下来开始点击“File-New”建立一个源程序文本4010.编辑源程序.c文件在空白区别写入或复制一个完整的C程序41该项目的源程序如下。#include sbit P1_0=P10; void delay(unsigned char t); void main(void) while(1) P1_0=! P1_0;

9、delay(250); void delay(unsigned char t ) unsigned char j,k; for(j=0;jt;j+) for(k=0;k255;k+) 42(1)“reg51.h”头文件在Keil C51中,“reg51.h”或“reg52.h”是编译软件自带的 AT89S51等单片机特殊功能寄存器声明头文件,其文件名“reg51.h”中的“reg”就是英文“register”(寄存器)的缩写。对特殊功能寄存器进行声明后,编写程序时就不需要使用难以记忆的寄存器地址来对寄存器进行操作了。当用户要使用时,只须要在使用之前用一条预处理命令#include 把这个头文件

10、包含到程序中,然后就可使用殊功能寄存器名和特殊位名称,比如P0、P1寄存器等。43(2)sbit定义位名称 在C语言里,如果直接写P1.0或P1_0,C编译器并不能识别,不是一个合法的C语言变量名。C编译器只能识别P1,为了取得输入输出P1寄存器的第0位,需要给它重新命名为P1_0,可以使用了Keil C51的关键字sbit给它们建立联系并定义。sbit的用法有三种方法,其中,“”表示一个寄存器地址的某一位。比如定义P1中的0位可以用以下三种方法:“sbit P1_0=0 x90”表达了0 x90是P1口0位的位地址值;“sbit P1_0=P10”表达了P1口的第0位;“sbit P1_0=

11、0 x902”表达了0 x90就是P1口的地址值,所以是P1口的第2位。44(3)“!”逻辑运算符“!”为逻辑运算符“非”,逻辑非返回值为“真”和“假”两种状态,C语言用“非0”表示真,用“0”表示假,所以非“真”即为“0”,非“假”即为“1”。“”为按位取反,指将一个数的二进制的每个位取反,即将“0001010”按位取反就是“1110101”。单片机有四个8位输入输出寄存器P0、P1、P2、P3,初始都为ffH,即每位都是“1”,P1_0经非运算后变为“0”,LED亮起,循环后变为“1”,LED熄灭,如此反复循环下去。4511.保存或打开源程序.c文件输入源程序文件名名称,如果是C语言,需要

12、加入“.c”。点击“File-Save”,选择文件夹,保存为.c文件,如输入“LED.c”,然后保存。此时可以看到程序文本字体颜色已发生了变化4647如果源程序已经存在,可以直接调用。点击“File-Open”调用文件夹中的一个.c源程序文本4812.添加源程序.c文件到工程项目接下来需要把刚创建的源程序文件加入到工程项目文件中,鼠标右击“Source Group1”,选择“Add Existing File to Source Group1”,选择刚刚建立的LED.c源程序,先点“Add”,然后点Close。49这时,在工程项目Project窗口的“Source Group1”下可以发现有了

13、“LED.c”文件,完成了工程文件的建立5013.工程项目设置最后还要有设置一下,按下图设置晶振,建议修改成12M。点击魔术棒 ,选择Target,改写为12M51选择Output,选择Create HEX File,使编译器输出单片机需要的HEX文件5214.编译调试形成.hex可执行文件 工程项目创建和设置全部完成,工程项目创建和设置全部完成,点击点击 Build target编译当前项目,编译当前项目,完成编译。完成编译。 在在Build Output窗口可以看到窗口可以看到编译结果,必须没有错误,也就编译结果,必须没有错误,也就是是0 Error(s),而有个别,而有个别Warning

14、(s)是允许的,当然最好是是允许的,当然最好是0 Warning(s),才能形成,才能形成.hex编译文件。如编译文件。如果有错误,则根据提示的错误行果有错误,则根据提示的错误行号和错误信息,进行修改调试号和错误信息,进行修改调试53查看工程文件夹内容。工程文件为LED.uvproj,C源程序为LED.c,编译成功后获得可执行文件为LED.hex。5415. 程序模拟调试的设置与调试(1)点击魔术棒 ,选择Debug标签,选中“Use Simulator”55(2)开启调试模式56(3)按“Peripherals”调试。如打开Port1,可以显示P1口的变化57(3)按“Peripherals

15、”调试。如打开Port1,可以显示P1口的变化58(4)选择“View”菜单中的选项“Periodic Window Update”59(5)选择单步跳执行,可动态显示P1口的变化结果。图中 四个按钮,分别代表了四种执行模式:单步、单步跳、跳出循环和执行到光标处6016.查看代码段运行时间在ProjectOptions for Target里设置晶振频率为实际单片机晶振频率为12M,选择菜单DebugStart/Stop Debug Session开始调试程序。在想测算运行时间的程序段的第一句语句上右键选择Set Program Counter设置程序调试运行开始点61在想测算运行时间的程序段

16、的结束语句上右键选择Insert/Remove Breakpoint设置程序调试运行结束点62在想测算在Keil界面右下角的计时器栏处右键单击 选择Show Stop Watch (t1)然后选择Reset Stop Watch (t1)设置计时器为0的程序段的结束语句上右键选择Insert/Remove Breakpoint设置程序调试运行结束点63上面两个是复位“t1”和“t2”的,下面3个是选择在状态栏上显示运行时间。点击Keil界面左上角的运行图标运行程序,选定的程序段即开始运行64运行结束后,可以在t1处查看到程序段运行时间,单位为秒65 Proteus软件是英国Lab Center

17、 Electronics公司出版的电子分析与仿真工具软件,支持电路图设计、PCB布线和电路仿真。 Proteus支持单片机应用系统的仿真和调试,使软硬件设计在制作PCB板前能够得到快速验证,不仅节省成本,还缩短了单片机应用的开发周期。 Proteus是单片机工程师必须掌握的工具之一1.2.2 PROTEUS软件的使用软件的使用66 以一个项目为例,演示如何Proteus的基本操作,包括新建工程、添加组件、绘制电路图以及仿真。通过8051单片机的输入/输出I/O口P1的管脚P1.0驱动1只发光二极管LED,并让闪烁。单片机P1.0能输出高低电平,但由于单片机I/O驱动能力弱,需要接到正电源Vcc

18、。LED还需要接电阻220限流,电流太大,超过核定电流,会烧坏,而电流太小,则无法点亮。671.运行Proteus,默认打开一个空白工程,区域为菜单,区域为工具栏,区域为元器件调整工具栏,区域为对象模式区,区域器件列表,区域为编辑窗口,区域为运行工具条。682.建立文件选择菜单【FileSave Design】,保存工程为LED.dsn,保存到一个新建的文件夹:LED闪灯项目。每个工程项目对应一个文件夹,方便文件管理。693.添加元件到元件列表库单击切换到组件模式后,单击P按钮打开Pick Devices 对话框,调出元器件库,常用在Keywords栏输入元件关键词,关键词就是该元件名称的英文单词或英文单词的一部分,双击搜索结果中要添加的元件即可。704.放置元器件在元件列表选择要放置的元件,单击画布空白区,通过鼠标移动元件到放置地单击即可,若右击则取消放置71首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时就可以在浏览区看到选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整。72放大/缩小画布:鼠标滚轮,向前放大,向后缩小。快速定位:单击预览区,移动鼠标,再次单击确认。拖动元件:单击元件,拖到到新位置,再单击空白处。

温馨提示

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

评论

0/150

提交评论