单片机技术及C51仿真与应用(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-09 22:33:26

点击下载

作者:王冬星 许有军 主编

出版社:北京理工大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

单片机技术及C51仿真与应用

单片机技术及C51仿真与应用试读:

前言

单片机技术是计算机、电子、自动化等专业学生应该掌握的基本技能之一,也是这些专业的主干课之一。随着物联网时代的到来,以51单片机为“敲门砖”进而学习其他较难专业课的现象已经非常普遍。一、本书特色

为兼顾51单片机知识体系结构的完整性和技术学习需要快速上手的特点,本书从第1章起,在讲授理论的同时就配有相应的仿真实验环境和案例学习,让读者在学中练,在练中学。因此本书具有以下特色:(1)由浅入深,提供大量源代码、完全支持仿真练习。

本书在开始讲授理论知识时,就提供仿真案例和源程序讲解,通过对案例进行微小更改就能生成新的系统,源文件可自行下载练习,使读者能直观学习,提高学习效率。(2)C语言与汇编语言互相对照,方便同时学习两种语言。

本书既讲授了传统的单片机教学语言——汇编语言,又讲授了主流的单片机开发语言——C语言。在前7章中,均使用两种语言对案例进行了介绍,方便读者同时掌握两种语言。(3)图文并茂,面向应用,适合阅读;学练结合,体系结构完整,适合讲授。

书中有大量的实验步骤、实验效果和电子元器件实物图,使读者阅读明了,易于学习。知识体系结构完整,且每个知识点都配有面向应用的仿真练习,摒弃了应用类书籍的知识体系结构缺乏和传统理论书籍应用练习少的缺点。本书知识点涵盖适中,适合课堂讲授。二、本书使用建议

使用本书,建议用μVision Keil进行程序开发,没有实验环境时可先采用Proteus ISIS进行仿真,等具备单片机硬件实验环境时,可使用实际电子元器件进行系统开发。

本书建议学时为56+12学时,其中56学时为教学学时,包括课程教学中必要的实验练习,12学时是扩展知识学习,结合每一章节尤其是第10章的外部资源学习,可独立设计一个单片机控制系统。通过本书的学习可以掌握单片机系统设计的基本知识,为以后学习打下基础。

本书由王冬星、许有军担任主编,董雷刚、李娟担任副主编,马英瑞、王健主审。第1章、第3章、第6章由王冬星编写,第5章、第9章由许有军编写,第2章、第8章由董雷刚编写,第4章、第7章由李娟编写,第10章由许有军、董雷刚编写,附录B、E由王冬星编写,附录A、C、D由李娟编写,全书由王冬星统稿、定稿。作者向为本书提供许多宝贵建议和意见的程书伟老师表示衷心的感谢。

由于作者水平有限,书中难免存在不妥之处,敬请读者批评指正。邮箱cnwindy01@163.com。编者第1章 初识51单片机及其开发环境

学习目标:

◇ 掌握51单片机的基本结构、40个引脚的封装顺序。

◇ 掌握51单片机的最小系统的基本电路。

◇ 掌握51单片机的软硬件开发流程和Proteus仿真方法。

重点内容:

◇ 51单片机的基本结构。

◇ Proteus和keil C51开发环境的使用。1.1 微型机与单片机

微型计算机系统一般包括中央处理单元(CPU)、存储器(Memory)及输入/输出单元(I/O)三大部分,如图1.1所示。CPU正如人的大脑一样,控制整个计算机系统的运行。存储器则是存放系统运行所需的程序及数据,包括只读存储器(Read Only Memory,ROM)及随机存取存储器(Randon Access Memory,RAM)。通常ROM用来存储程序或永久性的数据,称为程序存储器;RAM则是用来暂时存储程序执行时的数据,称为数据存储器。I/O是微型计算机系统与外部沟通的管道,其中包括输入端口与输出端口。这三部分分别由不同的元器件组成,然后把它们组装在电路板上,形成一个微型计算机系统。图1.1 微型计算机组成

单片微型计算机(即单片机或微控制器)就是把中央处理单元、存储器、输入/输出单元等全部放置在一个芯片里,如图1.2所示,只要再配置几个小元件,如电阻器、电容器、石英晶体、连接器等,就成为一个完整的微型计算机系统。因此整个系统的体积小、成本低、可靠性高,成为目前微型计算机控制系统的主流。图1.2 单片机微控制器结构1.2 51单片机的基本结构概述

51单片机发展至今,虽然有许多厂商各自开发了不同的兼容芯片,但其基本结构变化不大,图1.3为标准的51单片机结构图。图1.3 51单片机基本结构框图

本章先介绍51单片机的基本结构、引脚、基本电路及51系列等,其中引脚结构需要熟记,本书提供记忆技巧,很快记住40个引脚和基本电路。

51单片机芯片内主要包括:

• 程序存储器ROM:内部4 KB、外部最多可扩展至64 KB。

• 数据存储器RAM/SFR:内部256 B、外部最多可扩展至64 KB。

• 四组可位寻址的8位输入/输出端口,即P0、P1、P2及P3。

• 两个16位定时器/计数器。

• 一个全双工异步串行口,即UART。

• 五个中断源,即、T0、T1、RXD或TXD。

• 111条指令。1.3 51单片机的引脚与封装

1. PDIP40与PDIP42

51单片机在教学过程中最常用的是40个引脚双列直插式封装(Plastic Dual Inline Package,简称PDIP),如图1.4所示,还有一种双列直插式封装如图1.5所示,即PDIP42。PDIP40与PDIP42引脚数量不相同,尺寸差异也很大。PDIP40特别适用于学校培训机构使用,但由于体积较大,制作成本较高,很少在商业里使用。图1.4 PDIP40双列直插式封装图1.5 PDIP42双列直插式封装

本书以PDIP40封装的51单片机为对象,进行案例开发。建议大家把PDIP40引脚记住。在此提供快速记忆技巧,让大家轻松记住这40个引脚。

51系列单片机最迷人处之一就是它的输入/输出功能,它有4组输入/输出端口P0~P3,每组端口8个引脚,共32个输入/输出引脚,它们占用了40个引脚中的绝大部分位置,必须熟记这32个引脚在PDIP40中的位置。

PDIP40的右上角40号脚为V引脚,连接(1±10%)×5V的电CC源;PDIP40左下角20脚为GND引脚,必须接地。

PDIP40第9脚为复位引脚,在复位引脚接高电平超过2个机器周期时可产生复位动作。按一下RESET键,系统即可复位。PDIP40的第18脚接XTAL2,第19脚接XTAL1。这两个引脚即时钟脉冲引脚,它是单片机的心脏,单片机的所有动作都是以此频率来工作的。

现在只剩下、ALE和三个引脚,现分别介绍如下:

• 存储器引脚。

51单片机既可以使用内部存储器也可以接外部存储器使用,至于使用内部存储器,还是外部存储器,则需视31脚(P0下面那个脚)而定。31脚为存取外部存储器使能(External Access Enable)引脚。当=1时,系统使用内部存储器;当=0时,系统使用外部存储器。

• 外部存储器控制引脚。

30脚为地址锁存使能ALE(Address Latch Enable),其功能是在存取外部存储器时,送出一个将原本在P0的地址(A0~A7)信号锁存到外部锁存器IC(如LS74373),让P0空出来,以传输数据。简单讲,当外接存储器电路时,若ALE=1,P0被用作地址总线;若ALE=0,P0被用作数据总线。

29脚为程序存储使能(Program Store Enable),其功能是读取外部存储器。通常此引脚连接到外部存储器(ROM)的OE引脚,当51单片机要读取外部存储器的数据时,此引脚就会输出一个低电平信号。

相对于前面的38个引脚,29、30脚比较难以说明,但是只要不用到外部存储器,就可当它们不存在,留待后面关于外部存储器的章节再行说明。

根据上述要诀,很容易记住这些引脚的位置和基本功能。需要补充说明的是,51单片机的40个引脚里有很多是复用引脚,简单讲就是多用途的引脚,以39脚到32脚为例,一般情况下为P0;若是连接外部存储器时,则当成AD0~AD7引脚,而AD0~AD7就是地址引脚与数据引脚混合的复用引脚,但如果不接外部存储器时就可以当它不存在。

2. QFP与PLCC封装

51单片机的QFP封装有PQFP和TQFP两种,均为扁平的44引脚表贴式封装,其体积小,成本低,是目前商业主流,学校和培训结构几乎不用,其引脚如图1.6所示。图1.6 QFP封装

51单片机中,PLCC也是一种常用的封装方式,也为44引脚表贴式封装,其引脚封装顺序与QFP类似,如图1.7所示,但这种封装可直接卡在电路板上,如图1.8所示,适用于实验室及大批量生产。图1.7 PLCC封装图1.8 PLCC芯片管座1.4 一个简单LED灯循环点亮实验

在了解51单片机的基本结构和引脚封装后,在Proteus仿真环境下用单片机最小系统实现一个LED灯循环点亮实验。一、实验目的(1)了解51单片机的开发过程,获得单片机系统制作的感性认识。(2)了解51单片机的汇编语言和C语言编程结构。二、实验要求

8个LED灯D1~D8由单片机控制,先是全亮,然后D1~D8依次由单片机的P2口控制被点亮。三、电路图

系统电路如图1.9所示。依次点亮过程如图1.10所示。图1.9 系统电路运行截图图1.10 LED灯循环点亮示意图四、程序流程图

程序的流程图如图1.11所示。图1.11 程序流程图五、程序设计

在μVision4中新建工程,加入汇编程序ch01.asm或C51程序ch01.c,μVision4开发环境在1.5节介绍。在Proteus仿真环境下绘制图1.9,仿真运行该实验,Proteus仿真环境在1.6节介绍。

汇编语言参考程序如下:;LED灯循环实验汇编程序ch01.asm org 0000H ; 程序从0000H开始运行 sjmp main ; 跳到主程序 org 0030H ; 主程序从0030H开始运行main:mov p2,#00H ; 全亮 lcall delay ; 调用延迟程序,延迟1 s mov a,#0FEH ; 寄存器a送初值,最低位为0loop:mov p2,a ; 输出到P2,点亮P2口最低位的灯即D1 lcall delay ; 调用延迟程序,延迟1 s rl a ; 位左移,灯循环右移 ajmp loop ; 跳到loop处循环delay:mov r5,#100 ; 延时100*10 ms=1 s子程序,闪烁灯调用d10ms:mov r6,#20 ; 延时10 ms d2:mov r7,#250 djnz r7,$ djnz r6,d2 djnz r5,d10ms ret end

C语言参考程序如下。/* ch01.c-LED灯循环实验C51程序 */#include  // 定义51单片机寄存器之头文件#define LED P2 // 定义LED接至P2void delay(int); // 声明延迟函数main() // 主程序开始{ unsigned char i; // 声明无符号变量i(占1B) LED=0; // 全亮 delay(100); // 延时100*10 ms=1 s while(1) // 无穷循环,程序一直运行 { LED=0xFE; // 初值=1111 1110,只有最左灯D1亮 delay(100); //延时100*10 ms=1 s for(i=0;i<7;i++) // 位左移,灯右移7次 { LED=(LED<<1)| 0x01; // LED左移1位,并设置最低位为1,相当于点亮的灯右移1位 delay(100); // 延迟100*10 ms=1 s } //for循环结束,右移结束,只有最右灯D8亮 } // while循环结束} // 主程序结束/* 延迟函数,延迟约x *10ms */void delay(int x) // 延迟函数开始{ // 声明整数变量i,j int i,j; for (i=0;i

注:本书大部分程序会用汇编语言和C51两种语言编写,当程序很大时,才只采用C51编写,而且经过实验验证后,全部可以运行。1.5 μVision4开发环境介绍

美国Keil公司生产的μVision开发环境是一款集编辑、编译(或汇编)、仿真调试等功能于一体的嵌入式集成开发环境,2013年10月,Keil正式发布了keil μVision5。由于keil μVision5还没有普及和破解,且μVision4很稳定,本书以μVision4为版本介绍Keil的使用。μVision支持数百种嵌入式处理器的程序开发(包括51系列单片机、ARM芯片等)。它支持汇编程序开发,也支持C程序开发。互联网上可以免费下载该软件,如Keil公司网站(http://www.keil.com)。1.5.1 μVision4开发界面

μVision4的开发界面如图1.12所示,包含一个51单片机开发环境所必需的工具,如文件编辑、片内外设所连接窗口(如P0~P3运行观察窗口)、运行信息窗口、存储器信息显示窗口、调试等工具。图1.12 μVision4运行界面

为便于工程运行,可以展开寄存器(Register)窗口、存储器信息显示窗口和变量观察窗口进行监视,还可以打开其他许多窗口进行调试。

μVision4把一个项目当作一个工程来开发,开发过程分为两个阶段,第一阶段是编辑程序,编译工程(build),生成目标程序和可执行文件,如.HEX文件;第二阶段,对编译生成的可执行文件进行调试和仿真。具体运行过程如下。

1. 新建工程

新建一个文件夹,如test01,用以保存同一工程下的相关文件。在Project菜单下选择New Project选项,在弹出窗口中,输入工程名test1,系统自动添加扩展名。

在新建工程中,新建一个文档,为.c或.asm,如ch01.asm或ch01.c,即1.4节所示的两个文件,直接复制过来即可。在工程窗口中,在Source Group1文件夹上右击鼠标,单击“Add Files to Group‘Source Group1’”选项,把ch01.asm或ch01.c文档添加到test1工程中。相应的还可以添加多个文件。

2. 设置工程

单击Project菜单下的“Options for Target‘Target 1’”选项,弹出工程设置窗口,如图1.13所示。或在工程窗口中右键单击Target 1,在弹出菜单中选择“Options for Target‘Target 1’”。图1.13 工程设置窗口

在工程设置窗口中,有许多选项可以进行设置,但经常设置的内容包括:(1)Device标签,选择芯片型号。(2)Target标签,设置晶振频率。(3)Output标签,选中十六进制Create HEX File输出文件。(4)Debug标签,选择调试模拟方式,主要有软件与硬件两种仿真方式。1.5.2 演示步骤(1)新建文件夹:test01。(2)在文件夹test01中,新建工程test1(工程的扩展名会自动添加)。(3)将1.4节ch01.asm文件复制到文件夹test01中,并添加到工程test1中。(4)在Project菜单的下拉选项中,单击“Options for Target‘Target 1’”,在设置窗口中进行以下操作:

①选择芯片型号为AT89S51,按“确定”后弹出对话框,询问“Copy Startup Code to Project Folder and Add File to Project?”,单击“否”,即不向工程中添加启动代码。

②设置晶振频率为12 MHz。

③在Output标签中,选中创建十六进制文件Create HEX File。

④在Debug标签选择“Use Simulator”(软件模拟)。(5)在Project菜单下,选择“Rebuild all Target files”选项,生成文件test1.hex,该文件可以下载到目标机上进行仿真调试。(6)选择Debug菜单下的“Start/Stop Debug Session”选项,进入调试状态。(7)选择Peripherals菜单下“I/O Ports”选项上的“Port 2”。(8)在Debug菜单下以Step(单步)方式运行,观察Port 2窗口变化状态。也可以使用Run(连续运行)方式,观察LED状态变化。1.6 Proteus仿真环境简介

Proteus是英国Labcenter electronic公司生产的工具软件包,历时十余年,它除具有同Protel 99等电路设计软件相同的PCB设计功能外,也是目前最好的模拟单片机等元器件运行的工具。对常见元器件,在硬件设计完成前通过Proteus进行硬件仿真,可以大量节约开发周期。1.6.1 Proteus的安装

目前,较新的版本是Proteus 8.0,其可适用于XP和Win7用户。Proteus 7.8是稍早用于XP用户的版本,下面分别介绍Proteus 7.8和Proteus 8.0的安装。

Proteus 7.8安装比较简单,安装前要准备好许可证安装文件和VDM51.DLL文件。双击Proteus 7.8安装文件,安装过程中全部按照默认设置,即每一步都选择“NEXT”即可,安装过程中若寻找许可证文件,指定好许可证文件目录即可。安装后,进行以下步骤验证:(1)在Keil目录下的C51/BIN文件夹中,查看是否有VDM51.DLL文件,若没有,将其复制到Keil目录下的C51/BIN文件夹中。(2)查看Keil目录下的TOOLS.ini文件,是否有TDRV3=BIN\VDM51.DLL (“Proteus VSM Simulator”)的字样,字符串“TDRV”后面的数字要按照顺序排列,保证不能重复,要根据自己的情况设置该语句,如图1.14所示,表示在Keil μVision4可以选择用“Proteus VSM Simulator ”进行仿真。图1.14 TOOLS.ini文件

Proteus 8.0安装主要有以下步骤:(1)下载好压缩包,并进行解压,运行“Setup.exe”安装程序,勾选“I accept the terms of..”之类的选项框,单击“Next”按键弹出如图1.15所示的界面,选择第一个“Use a locally installed license key”,意思是说使用本地的授权文件。图1.15 Proteus 8.0安装界面1(2)单击“Next”→“Next”两下,弹出如图1.16所示的界面。图1.16 Proteus 8.0安装界面2(3)单击“Browse For Key File”按键,找到解压包的Crack目录下的LICENCE.lxk文件,单击“Install”按键后在弹出的提示框单击“是”按键。界面如图1.17所示。图1.17 Proteus 8.0安装界面3(4)单击“Close”按键关闭,弹出如图1.18所示的界面,意思是问要不要导入Proteus 7的配件文件,把三项全部选中。图1.18 Proteus 8.0安装界面4(5)单击“Next”按键后,再单击“Typical”,选择典型安装模式,如图1.19所示。图1.19 Proteus 8.0安装界面5(6)然后按提示操作,单击“Next”按键,直到安装结束。

接下来两步操作很重要,请仔细看。(7)找到解压包的Crack目录下的“bin”文件夹,复制整个文件夹到Proteus 8.0的安装目录,一般为“C:\Program Files\Labcenter Electronics\Proteus 8 Professional”。(8)找到解压包的Crack目录下的“MODELS”文件夹,复制整个文件夹到“C:\Documents and Settings\All Users\Application Data\Labcenter Electronics\Proteus 8 Professional”目录(仅针对XP用户),如果是Win7用户,将“MODELS”复制到“C:\Users\All Users\Labcenter Electronics\Proteus 8 Professional”目录,“C:\Documents and Settings\All Users\Application Data”一般会隐藏的,如果无法找到,请做如下操作:选择工具菜单→文件夹选择→查看→把“显示所有文件和文件夹”选中。至此,安装Proteus 8.0完成。1.6.2 Proteus的使用

在“开始”→“所有程序”→“Proteus 8 Professional”中,选择“Proteus 8 Professional”,进入Proteus 8.0开发界面,如图1.20所示。或在“开始”→“所有程序”→“Proteus 7 Professional”中,选择“ISIS 7 Professional”,进入Proteus 7.8开发界面。单击图1.20中的ISIS快捷键,即可像Proteus 7进入ISIS开发界面一样。图1.20 Proteus 8.0启动界面

在Proteus ISIS开发界面中,如图1.21所示,工作区是用来绘制原理图的地方。缩略图区是对工作区的一个概览。器件工具栏是常用公共器件的列表,里面含有大量的公共元器件,如常用的VCC、GND、Buses(总线绘制工具)等,熟练使用会提高绘图效率。图1.21 Proteus ISIS开发界面

器件列表是绘图时,针对本次绘图从器件数据库中选择的元器件,如AT89C51、电容(CAP)、电阻(RES)、晶振(CRYSTAL)、LED等。仿真工具条是对绘制的原理图加载程序后,能够仿真运行的控制工具条。图1.22即为1.4节实验运行仿真时,实验初始灯全亮时刻的截图。图1.22 1.4节实验初始灯全亮时仿真截图

对51单片机加载程序的办法,如图1.23所示。在AT89C51单片机上单击右键,在弹出的窗口中选择“编辑属性”,在“编辑元件”选项对话框中单击“Program File”按钮,选择AT89C51单片机运行时所要运行的程序,与实物运行时一样,选择已将程序编译成十六进制的hex文件。若原理图已绘制完毕,且此时已将程序加载完毕,单击仿真工具条中的“开始”按钮,即可进行仿真。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载