单片机控制装置安装与调试 上册(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-15 22:11:48

点击下载

作者:雷林均

出版社:电子工业出版社

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

单片机控制装置安装与调试 上册

单片机控制装置安装与调试 上册试读:

前言

单片机技术的应用越来越广泛,电子技术的应用领域中,几乎可以说“想得到就用得上”。为了推广单片机技术,推动电工电子类专业课程改革,全国技能大赛电工电子类设置了“单片机控制装置安装与调试”竞赛项目。为了满足广大师生对单片机教学及参加技能大赛训练的需要,特编撰此书奉献给读者。

本书以行动导向的思想为指导,通过大量实例,围绕单片机控制装置,由浅入深、由简到繁地安排训练项目。将单片机硬件知识和C语言编程知识分解到实例中,通过“做中学”来教授单片机硬件知识和编程知识,特别适合“做、学、教”一体化教学方案。书中既有基础知识和基本技能的训练,又有满足大赛需要的高级技术、技巧。

单片机编程有汇编语言和C语言两种。采用C语言编程具有代码短、可读性强、可移植性强、开发周期短的优点,特别是在较大规模的单片机运用场合及比较复杂的算法实现上,C语言明显优于汇编语言。因此本书采用C语言进行编程。

笔者在编写过程中,针对每一个模块,总是尽量采用多种程序算法和列举较多的应用实例,以拓展读者思维。例如,对一个简单的“开关控制LED”实验,介绍if语句法、问号语句法、赋值法、函数法等;矩阵键盘取键值的函数,介绍扫描法、反转法、单键判断法等;流水灯效果,介绍十余种程序算法;各种显示器,不但介绍基本的显示技术,还介绍许多显示特效的程序算法;对定时器的应用,给出计数器、频率计、脉宽测量、交通灯、音乐演奏、电子钟、闹钟、农历日历钟等大量实例。

书中实例涵盖全国单片机技能大赛指定设备的所有模块,但不限22于大赛模块,还介绍了并行存储器、IC存储器、IC实时时钟芯片、压力传感器、PS2键盘、非接触式IC卡、USB接口等大量其他常用模块的应用。

本书还特别介绍了基于RTX-51 Tiny多任务操作系统的编程,使读者面对复杂应用系统的开发也能应对自如。

作为综合应用系统设计示例,书中介绍了物料搬运、微波炉、电梯等典型控制系统,还对全国单片机大赛试题进行了详细解析。

即使您是一个单片机“外行”,相信通过本书的学习和实战训练,也一定能快速成长,成为能独立运用单片机技术解决实际问题的技术人才。

本书配套光盘中提供书中所有示例的源程序,同时提供Proteus ISIS仿真电路,方便读者进行实验。

在本书的编写过程中,王莉负责大量文稿处理和校对工作,雷磊负责源程序验证实验工作,在此表示感谢!

由于作者水平有限,书中难免存在一些错误和不足之处,希望广大读者批评指正。

编者

2011年1月

第1章 开始学习单片机

1.1 单片机及应用

1.1.1 什么是单片机

独具魅力的单片机产品正改变着我们的工作和生活,在即将遨游神奇的单片机世界之前,先简略了解一下什么是单片机。

单片机是一种神奇的集成电路,它内部集成了计算机的核心技术。单片机芯片上有中央处理器CPU(控制器、运算器)、随机存取存储器RAM、只读存储器ROM、输入/输出端口(I/O)等主要的计算机功能部件。单片机是一台概念上完整的微型计算机,也称为微控制器(Micro Controller Unit,MCU)。单片机是大规模集成电路技术发展的结晶,它具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。

CPU(控制器、运算器)是单片机的“大脑”,能“理解”程序意图,根据预先写好的程序指令指挥各部件协调工作,运算器完成各种算术、逻辑运算。RAM用来存储动态数据,ROM用来存储程序员事先编好的程序指令和常数。I/O口负责与外部设备进行交互,从而实现信息输入和控制输出。

单片机是一种智能芯片,但是,一个没有写入程序(软件)的单片机,就是一个“植物人”,不能完成工作任务。开发人员需要编写单片机工作程序,并且把程序“写入”单片机的ROM,单片机才能按程序工作。软件是单片机的“灵魂”。

单片机技术发展十分迅速,其芯片品种繁多,较为流行的有 51 系列、PIC 系列、AVR系列、ARM 系列等。不同系列或型号的单片机,内部 RAM 和 ROM 的容量大小可能不一样,I/O引脚数量也可能不同,内部定时器、串行通信、A/D、D/A等功能也有差别。51系列单片机是历史最悠久、应用非常广泛的一类单片机。PIC 系列单片机是采用精简指令集(RISC)的单片机。AVR 系列单片机也使用一种精简指令集,运行速度较快。ARM 系列单片机内部资源丰富,但是学习难度远大于一般单片机。本书将以 51 系列中典型的 AT89S52为主,引导读者学习单片机技术,如图 1.1.1所示。图1.1.1 AT89S52单片机

1.1.2 单片机的广泛应用

如图1.1.2所示,单片机广泛应用于自动检测、自动控制、智能数据处理、通信、显示等。在生活、生产、科研、办公、服务、交通、国防等各种领域都有应用,可以说,“想得到就用得上”。全世界单片机的年产量达几百亿片,我国的年需求量大约在3亿片。单片机技术在我国有着无限广阔的应用前景和大量人才需求。现列举一些典型的应用,让读者感受单片机的神奇魅力。(1)家电中的应用:电视机、录像机、CD/VCD/DVD、语言复读机、MP3/MP4播放器、卫星电视接收机、音响系统、摄像机、照相机、洗衣机、电冰箱、空调器、洗碗机、微波炉、电磁炉、电饭煲、热水器、万年历、智能充电器、各种安防报警器、智能电度表等。(2)办公设备中的应用:复印机、打印机、绘图机、扫描仪、传真机、考勤机、打铃器、电子词典、计算器、键盘、鼠标、软/硬盘驱动器、光盘驱动器、移动硬盘、U盘、显示器等。(3)通信设备中的应用:电话机、寻呼机、移动电话、对讲机、业余无线电台、通话计费器、程控电话交换机等。(4)工业生产:自动生产线、数控机床、智能机器人、智能温控、智能检测、环保监测等。(5)生活服务:售货机、柜员机、电子广告牌、电子秤、智能刷卡设备、掌上游戏机、电子宠物、智能玩具、遥控玩具、学习玩具、跑马灯等。(6)交通:汽车发动机电控系统、汽车安全系统、GPS导航、车载通信、智能报站、自助售票机、智能交通灯、电子警察等。(7)国防:导弹、鱼雷、智能武器、雷达、电子战飞机等。图1.1.2 单片机广泛的应用领域

单片机的应用从根本上改变了传统控制系统的设计思想和设计方法,以前必须由模拟电路或数字电路实现的功能,大部分能使用单片机通过软件方法实现了。这既提高了产品的可靠性,又降低了成本,还能增强产品功能,经济效益明显提高。

1.1.3 准备学习工具、软件和器材

工欲善其事,必先利其器。工具、软件和实验器材是顺利学习单片机技术的保障。

1.电路安装、调试工具

单片机是与电路密不可分的,学习单片机技术就要进行焊接、安装、调试等工作。因此要准备一套电子制作、测量的工具,如万用表、电烙铁、各种规格的螺丝刀、小钳子等。

2.计算机和软件

单片机程序的编辑和编译都需要计算机,它对电脑的配置要求不高。但是如果要使用Proteus ISIS来仿真的话,计算机配置要高一些,否则仿真运行不流畅。(1)编程软件环境。

51系列单片机的编程工具软件很多,如Keil C51、MedWin V3、TKStudio V3等。

Keil C51是德国Keil Software公司出品的51系列兼容单片机软件开发环境。它提供了丰富的库函数和功能强大的集成调试工具μVision3。用 C 语言编程时,能编译出效率很高的目标代码。Keil C51是最流行的51系列单片机编程工具。

MedWin V3.0是万利电子有限公司系列仿真器全中文集成开发环境,集编辑、编译/汇编、在线及模拟调试为一体。

TKStudio V3集成开发环境是广州致远电子有限公司开发的一个微处理软件开发平台,它是一款具有强大内置编辑器的多内核编译/调试环境。完美支持TKScope智能仿真开发平台,支持51、ARM、AVR等多种内核系列产品,支持芯片的种类非常丰富。

以上几款软件的基本操作相似,学会其中的一种,稍加学习就可以使用另两种软件。本书将以Keil C51作为主要开发工具。(2)电路仿真软件。

用软件来进行单片机电路仿真,能降低学习成本,减少硬件投入。对一些简单的电路和编程实验,用仿真软件进行初期调试,可以提高学习效率。

对于电路仿真软件,笔者首推Labcenter出品的电路分析实物仿真系统Proteus。Proteus ISIS可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便。该软件在同类产品中具有明显的优势。

● ISIS 具有模拟电路仿真、数字电路仿真、单片机系统仿真、2RS-232 动态仿真、IC 调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

● ISIS 目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列、ARM 系列及各种外围芯片。

● 支持大量的存储器和外围芯片。

总之,ISIS是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

3.仿真器

仿真软件必然会有它的局限性,为了检验编写的软件及连接的电路是否能正常工作,常使用“仿真器”对实际电路进行仿真测试。仿真器配有“仿真头”,把仿真头插到单片机集成电路的插座上,代替单片机。使用仿真器,可以在编程环境下,一边编辑程序、一边仿真,非常方便。

4.编程器

编好的程序经过编译变成机器码,还必须写入单片机的ROM中,才能让单片机工作。编程器就是用来把编译后的程序写入单片机的。给单片机编程(也叫烧写芯片)有两种形式:一种是并行方式,即把单片机放到专用编程器的IC插座上进行编程,如图1.1.3(a)所示。并行方式的编程器,通常能支持很多型号的芯片;另一种是串行编程(ISP编程),单片机不需要从电路板上取下来,通过预留的编程接口进行在线编程,如图1.1.3(b)所示。在线编程功能使得程序调试很方便,也方便产品的软件升级。图1.1.3 常用实验器材

如果你使用的是AT89C51系列单片机,只能用并行编程。AT89S51/52既可以并行编程,也可以串行在线编程。

5.亚龙YL-236实验台

如图1.1.4所示,“亚龙YL-236型单片机控制功能实训考核装置”是全国中等职业学校职业技能大赛指定器材,本书涉及的绝大多数实验都可以在此装置上完成。如果没有这种实验台,可以用仿真软件或自制电路板,还可以用其他实验箱来实验。图1.1.4 亚龙YL-236实验台

1.2 AT89S51/52单片机

51系列单片机有很多派生型号。ATMEL公司的AT89S51/52完全取代了以前的8751、89C51系列,是目前最典型的51系列单片机。

1.2.1 AT89S52方框图

AT89S52内部方框图如图1.2.1所示。其中,CPU是单片机的指挥中心;电源、时钟、复位是单片机正常工作的基本条件;总线是单片机内部各个模块之间进行交互的高速通道;ROM存储用户程序和常数,RAM存储可变数据;特殊功能寄存器有很多不同的单元,它们具有专门的用途,可以存储工作状态信息,也可以通过它设置单片机某些模块的工作模式;输入/输出端口负责接收外部信息(如按键)或控制外部设备(如指示灯)。图1.2.1 AT89S52内部方框图

1.2.2 AT89S51/52主要性能

AT89S51/52单片机主要参数如下:

● 系统可编程Flash存储器:AT89S51为4KB,AT89S52为8KB。

● 片内RAM存储器:AT89S51为128B,AT89S52为256B。

● 工作电压:4.0V~5.5V。

● 可重复擦写:1 000次。

● 时钟频率:0Hz~33MHz。

● 加密结构:三级。

● 可编程I/O口:4×8位。

● 定时/计数器:16位,AT89S51为2个,AT89S52为3个。

● 中断源:AT89S51为6个,AT89S52为8个。

● 全双工UART串行通道。

● 具有低功耗空闲工作模式和掉电保持模式。

● 内置看门狗定时器和复位电路。

● 双数据指针。

AT89S51/52由于使用Flash存储器作为程序存储器,可以反复快速擦写,因此调试非常方便。AT89S52的8KB存储空间对绝大多数单片机应用系统而言已经足够了。但是,片内随机存取存储器RAM容量较小,AT89S51只有128B,AT89S52有256B。在编程时,要合理分配存储空间,定义变量时尽量使用占用空间小的变量类型,提高RAM利用率。能用位变量,就不要用字符变量,能用字符变量,不要用整型或长整型变量,尽量不用浮点数,多使用局部变量,少使用全局变量。常数表用“CODE”定义在程序存储器空间中。在需要大量数据存储与交换时,可以考虑扩展外部数据存储器,具体型号如6264、62256等。

1.2.3 AT89S51/52引脚

AT89S51/52有40脚PDIP、44脚PQFP、44脚PLCC等封装形式。40脚双列直插式封装引脚排列如图1.2.2所示。其中P0.0~P0.7称为P0口,P1.0~P1.7称为P1口,P2.0~P2.7称为P2口,P3.0~P3.7称为P3口,这些引脚除可用做普通输入/输出(I/O)引脚外,绝大多数都有第二功能,下面做简单介绍。图1.2.2 AT89S52引脚图

VCC:电源,+5V。

GND:接地,0V。

XTAL1,XTAL2:外接振荡器。XTAL1是振荡器反相放大器和内部时钟发生电路的输入端,XTAL2是振荡器反相放大器的输出端。(注1)

RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。“看门狗”计时完成后,RST脚会输出96个晶振周期的高电平。特殊寄存器AUXR(地址0x8E)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。:选择运行内部程序或外部程序。通常接电源,以选择(注2)内部 ROM 中的程序来运行。此脚也是编程电压输入脚。:单片机访问外部“地址”时,此脚送出低 8 位地址的锁存信号。不扩展外部器件时,此脚以晶振固定频率的 1/6 输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。对 AT89S52,将地址为0x8E的特殊功能寄存器SFR的第0位置“1”,则无输出(接地时除外)。芯片编程时,此脚输入编程脉冲。:读外部程序时的选通信号。不用外部程序,此脚为空。

P0口:这是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚呈高阻抗输入状态,无上拉电阻。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用,在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节,需要外部上拉电阻。

P1口:这是一个具有内部上拉电阻的8位准双向I/O口。P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。对AT89S52,P1.0是定时器/计数器T2的外部计数输入或时钟输出脚;P1.1是作为定时器/计数器T2的捕捉/重装触发信号和方向控制脚。P1.5、P1.6、P1.7为ISP在线编程的控制引脚。

P2口:这是一个具有内部上拉电阻的8位准双向I/O口。P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。在访问外部程序存储器或用(注16位地址读取外部数据存储器(例如执行dat=XBYTE[0x1234]3))时,P2口送出高8位地址。在这种应用中,P2口使用很强的内(注4)部上拉电阻发送1。在使用8位地址(如PBYTE[0x56]=dat)访问外部数据存储器时,P2口输出P2锁存器的内容,即当做普通I/O使用。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:这是一个具有内部上拉电阻的8位准双向I/O口。P3输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。P3口全部具有第二功能,如下所示:

P3.0—RXD(串行输入);

P3.1—TXD(串行输出);(外部中断0);(外部中断1);

P3.4—T0(定时器0外部计数输入);

P3.5—T1(定时器1外部计数输入);(读/写外部程序或数据时,自动产生写选通信号);(读/写外部程序或数据时,自动产生读选通信号);

在Flash编程和校验时,P3口也接收一些控制信号。

注1:AT89S51/52系列单片机每12个时钟振荡周期称为一个机器周期。机器周期是单片机指令执行的最小时间单位。大多数机器指令的执行,需要1~2个机器周期。

注2:向芯片内部的EPROM或Flash存储器中写入程序称为芯片编程(也叫烧写程序)。

注3:dat=XBYTE[0x1234]将外部地址为0x1234处的数据读到变量dat中。高8位地址0x12由P2口发送,低8位地址0x34由P0口发送。前缀“0x”是C语言中十六进制数的表示方法。

注4:PBYTE[0x56]=dat将变量dat的值送到外部存储器某页且页内地址为0x56的位置。地址0x56由P0口送出。

1.2.4 特殊功能寄存器

单片机内部有一系列的特殊功能寄存器,一些反映单片机某些部件的工作状态,另一些控制着单片机的某些部件的工作模式。虽然单片机C语言编程中,不需要太关注片内结构,但是也有相当一部分特殊功能寄存器是C语言编程必须掌握的,如:

P0,P1,P2,P3—I/O口;

IE—中断控制;

IP—中断优先级控制;

TMOD—定时器方式控制;

TCON—定时器开关控制及中断标志,外部中断控制;

TL0,TH0—定时/计数器0;

TL1,TH1—定时/计数器1;

SCON—串行口控制与状态寄存器;

SBUF—串行数据缓冲。

有部分特殊功能寄存器是要了解记住的,如:

PCON—节电控制与波特率加倍控制;

AUXR1—双数据指针选择(C语言可不了解);

WDTRST—看门狗喂狗寄存器;

AUXR—看门狗及ALE控制。

对于AT89S52还有以下特殊功能寄存器:

T2CON—定时器2方式控制。

T2MOD—定时器2输出与方向控制;

RCAP2L,RCAP2H—重装与捕捉寄存器;

TL2,TH2—定时/计数器2。

51单片机的特殊功能寄存器,绝大多数是单字节长度。其中有一部分可以按位进行操作(置1或清0),如:P0、P1、P2、P3、IE、TCON、SCON、IE、IP、T2CON等。也有些不能进行位操作,如:TMOD、TH0、TL0、TH1、TL1、TH2、TL2、RCAP2H、RCAP2L、SBUF、PCON等。

这些特殊功能寄存器的用途和用法,将在以后逐渐介绍。

1.2.5 单片机的最小系统

学习单片机,必须了解其最小系统,由此了解单片机工作必需的条件。AT89S52单片机最小系统包括:时钟电路、复位电路、电源,如图1.2.3所示。图1.2.3 最小系统电路

电源:AT89S52的工作电压4~5.5V,推荐电源电压为5V。EA接电源,否则执行外部程序。

时钟:时钟频率范围可以为0~33MHz,常用的频率有6MHz、11.0592MHz、12MHz、24MHz。频率高,单片机运算就快。用6MHz、12MHz、24MHz这几种值,容易计算定时常数,而11.0592MHz这个值可以获得准确的串行通信波特率。振荡电容可取10~30pF,电容值对晶振频率有一定影响,做高精度电子钟时要注意。

复位:通常用电阻、电容构成简单的微分复位电路。电阻值可以取 1~10kΩ,电容可以取1~20μF。若需人工复位,可以在复位引脚与电源之间加一个按钮。

这个最小系统没有使用单片机的任何I/O线,既不能输出信息,也不能接收信息。所以不管写入什么程序,都没有实际“效果”。单片机的“工作”要通过“I/O”口来“体现”,因此以后我们看到的电路,或多或少都使用了几个I/O引脚。电源、时钟、复位是必不可少的电路,以后提供的实验电路图,可能没有画出这三个部分,如果进行焊机实验请自行补上,如果使用亚龙YL-236实验台主机模块,则已经内置了这些电路。

1.3 第一个C51工程

单片机控制装置安装与调试一般流程是:(1)电路设计;(2)连接电路;(3)程序设计与调试;(4)编译程序并烧写芯片。下面通过一个简单的单片机任务,来“过一遍”这个流程。

1.3.1 任务书

用开关SW来控制LED发光二极管D。当SW闭合时,发光二极管D亮,否则D熄灭。

根据题意绘出电路图,并进行电路连接,如图1.3.1所示。图1.3.1 第一个C51工程

接下来,创建一个工程,然后编写程序并进行调试。

1.3.2 创建工程

(1)单击“开始”菜单里的,打开Keil软件,界面如图1.3.2所示。(2)新建一个工程。

单击“Project”→“NewμVision Project”,新建工程,如图1.3.3所示。注意,因Keil版本差异,新建工程可能是在“File”→“new”→“NewμVision Project”菜单里。图1.3.2 Keil软件界面图1.3.3 Keil软件界面(3)在弹出的对话框里,选择保存位置,输入工程文件名,然后确定,如图1.3.4所示。图1.3.4 新建工程(4)在后继对话框里,选择芯片供应商,再选择芯片型号,然后确定,如图1.3.5所示。(5)接下来又弹出对话框,如图1.3.6所示。询问是否要将系统自带的初始化文件添加到你的工程中?选择是或否都可以,这里选择“否”。这时,可以看到软件左边的项目管理窗口里出现了新建工程,工程就建好了,如图1.3.7所示。

建好工程后,接下来需要建源程序文件,并将它添加到工程中,再进行编译、调试。图1.3.5 选择单片机型号图1.3.6 是否添加初始化代码图1.3.7 工程窗口

1.3.3 新建源程序文件

(1)新建文件。

可以通过单击“File”→“New”或者单击快捷图标来新建源程序文件。新建文件后,在软件编辑窗口中出现一个文本编辑窗口,如图1.3.8所示。

当新建了一个源程序文件后,不必急于输入程序内容(输入也不会错),建议马上单击保存这个文件。保存时,默认保存在与工程文件相同的文件夹里,这个位置一般不要改变它。在给源程序文件命名时,一定要加上扩展名(.c),以表明它是一个C语言程序文件。如果是汇编语言程序,应加扩展名(.a或.a51或.asm),如图1.3.9所示。保存后,编辑器才能正确识别关键词,并用彩色显示不同内容。图1.3.8 新建程序文件图1.3.9 保存程序文件(2)添加到工程。

新建的源程序文件与工程还没有任何关系,必须把源程序文件添加到工程中,它才属于这个工程,才能参与编译,生成目标代码。

把源程序文件添加进工程的方法,首先用鼠标右键单击如图1.3.10所示位置(源文件组),再在鼠标右键菜单中选择“Add Files to Group‘Source Group 1’(添加文件到源文件组1)”,如图1.3.11所示。这时弹出添加源文件的对话框,如图1.3.12所示。选择刚才保存的文件,单击“Add”按钮。如果有多个,可再选,再添加。添加完毕关闭窗口。图1.3.10 用鼠标右键单击源文件组图1.3.11 鼠标右键菜单图1.3.12 选择添加源文件

向工程的“源文件组”中添加源文件后,软件左边窗口就出现了刚才添加的文件。如图1.3.13所示。如果没看见,可以点“+”号展开。如果没有“+”号,说明添加不成功。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载