《单片机原理与应用设计》总结

时间:2024.4.20

单片机原理与应用设计

第一章 单片机概述

在一块半导体硅片上集成了中央处理单元(CPU)、存储器(RAM/ROM)、和各种I/O接口的集成电路芯片由于其具有一台微型计算机的属性,因而被称为单片微型计算机,简称单片机。单片机主要应用于测试和控制领域。

单片机的发展历史分为四个阶段。1974—19xx年是单片机初级阶段,1976—19xx年是低性能单片机阶段,1978—19xx年是高性能单片机阶段,期间各公司的8位单片机迅速发展。1983至现在是8位单片机巩固发展及16位、32位单片机推出阶段。单片机的发展趋势将向大容量、高性能、外围电路内装化等方面发展。

单片机的发展非常迅速,其中MCS-51系列单片机应用非常广泛,而在众多的MCS-51单片机及其各种增强型、扩展型的兼容机中,AT89C5x系列,尤其是AT89C51单片机成为8位单片机的主流芯片之一。

第二章 89C51单片机的硬件结构

89C51单片机的功能部件组成如下:8位微处理器,128B数据存储器片外最多可外扩64KB,4KB程序存储器,中断系统包括5个中断源,片内2个16位定时器计数器且具有4种工作方式。1个全双工串行口,具有四种工作方式。4个8位并行I/O口及特殊功能寄存器。

89C51单片机的引脚分为电源及时钟引脚、控制引脚及I/O口。电源为5V供电,P0口为8位漏极开路双向I/O口,字节地址80H,位地址80H—87H。可作为地址/数据复用口,用作与外部存储器的连接,输出低8位地址和输出/输入8位数据,也可作为通用I/O口,需外接上拉电阻。P1、P2、P3为8位准双向I/O口,具有内部上拉,字节地址分别为90H,A0H,B0H。其中P0、P2口可作为系统的地址总线和数据总线口,P2口作为地址输出线使用时可输出外部存储器的的高8位地址,与P0口输出的低8位地址一起构成16位地址线。P1是供用户使用的普通I/O口,P3口是双向功能端口,第二功能很重要。

89C51的CPU包括运算器和控制器,其中运算器包括ALU、累加器A、位处理器、程序状态字寄存器PSW及两个暂存器。控制器包括程序计数器、指令寄存器、指令译码器、定时及控制逻辑电路等,其主要任务是识别指令,并根据指令的性质控制单片机个功能部件。

89C51的存储器空间分为程序存储器、内部数据存储器、特殊功能寄存器、位地址空间及外部数据寄存器。外部数据存储器与外扩的I/O口统一编址。89C51复位后程序存储器PC的内容为0000H,P0—P3口为FFH,SP为07H,程序从0000H开始执行。5个中断源的中断入口地址为:INT0是0003H,T0是000BH,INT1是0013H,T1是001BH,串行口为0023H。通常在这5个中断入口地址处都存放一条跳转指令条向中断服务程序。

89C51的时钟信号有内部时钟方式和外部时钟方式两种,指令的执行是以时钟周期为时序基准,12个时钟周期为一个机器周期。

第三章 89C51的指令系统

89C51的寻址方式有7种。

1、寄存器寻址方式,即操作数在寄存器中。例如:MOV A,Rn

2、直接寻址方式,指令中直接以单元地址的形式给出操作数,该单元地址中的内容就是操作数。例如:MOV A,40H

3、寄存器间接寻址方式,寄存器中存放的是操作数的地址,为区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方式中应在寄存器名称前面加前缀“@”。例如:MOV A,@Ri ;i=0或1

4、立即寻址方式,即直接在指令中给出操作数,为与直接寻址中的直接地址加以区别,在立即数前加“#”。例如:MOV A,#40H

5、基址寄存器加变址寄存器间接寻址,用于读程序存储器中的数据到累加器中。以DPTR或PC作为基址寄存器,以累加器A作变址寄存器并以两者内容相加形成16位地址作为操作数的地址。例如:MOVC A,@A+DPTR

6、位寻址方式,位寻址指令中可以直接使用位地址。例如:MOV C,40H

7、相对寻址方式,目的地址=转移指令所在地址+转移指令字节数+rel;其中rel是一个带符号的8位二进制数补码数,范围为-128~+127。

89C51指令系统共111条指令,按功能分为5类:

1、数据传送类(28条)。2、算术运算类(24条)。3、逻辑操作类(25条)。

4、控制转移类(17条)。5、位操作类(17条)。

第四章 89C51汇编语言程序的设计与调试

汇编语言语句有两种类型:指令语句和伪指令语句。指令语句汇编产生指令代码。伪指令语句是在汇编语言源程序中向汇编程序发出的指示信息,告诉它如何完成汇编工作的。伪指令不产生相应的机器代码。

汇编语言语句的四分段格式:标号字段:操作码字段 操作数字段 ;注释字段

注:符号$用于表示该转移指令操作码所在地址,例如:JNB F0,$

常用伪指令:ORG汇编起始地址命令, END汇编终止命令, DB定义字节命令, DW定义数据字命令, EQU赋值命令

汇编语言程序设计步骤:1、分析问题确定算法 2,、根据算法画程序框图 3、分配内存工作区及有关端口地址 4、编写程序 5、上机调试

汇编语言程序的基本结构分:顺序结构、分支结构、循环结构、子程序、中断服务子程序。

各类程序设计简介:

1、子程序,是一种能完成某一特定任务的程序段。

注:(1)子程序子程序第一条指令前必须有标号

(2)两条子程序调用指令:绝对调用指令ACALL addr11;长调用指令LCALL adder16

(3)子程序结构中必须用到堆栈,但现场保护与恢复不是必须的

(4)子程序返回主程序最后一条指令必须是RET

2、查表程序,查表就是根据自变量x,在表格中寻找y,使y=f(x);两条查表指令为:MOVC A,@A+DPTR和MOVC A,@A+PC

3、关键字查找程序,有两种(1)顺序检索,要检索的表是无序的。(2)对分检索,要检索的数据表已排好序,按对分原则取数进行关键字比较。

4、数据极值查找程序,在指定数据区中找出最大值或最小值。

5、数据排序程序,将一批数按降序或升序排列。最常用的排序算法是冒泡法。

6、分支转移程序设计,分无条件分支转移和有条件分支转移。有条件分支转移程序又分单分支选择结构和多分支选择结构。

7、循环程序,分循环计数控制结构和条件控制结构

第五章 89C51的中断系统

89C51有5个中断请求源 ,具有两个中断优先级,可实现两级中断服务程序嵌套。5个中断源为:

(1)/INT0—外部中断请求0。

(2)/INT1—外部中断请求1。

(3)定时器/计数器T0计数溢出中断请求。

(4)定时器/计数器T1计数溢出中断请求。

(5)串行口中断请求。

中断请求标志位分别有特殊功能寄存器TCON和SCON的相应位锁存。 TCON为定时器/计数器的控制寄存器,字节地址88H,可位寻址。

SCON为串行口控制寄存器,字节地址98H,可位寻址。

IE为中断允许寄存器,字节地址A8H,可位寻址。

IP为中断优先级寄存器,字节地址B8H,可位寻址。注:在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应取决于内部的查询顺序。外部中断0中断级别最高,串行口中断级别最低。

响应中断请求的条件:

(1) 总中断允许打开IE=1;

(2) 该中断源发出中断请求;

(3) 该中断源中断允许位=1;

(4) 无同级或更高级中断正在被服务;

在一个单一中断系统里,89C51单片机对外部中断请求的响应时间在3~8个机器周期。外部中断请求有两种触发方式:电平触发方式和跳沿触发方式(负跳变)。但跳沿触发方式,输入的负脉冲宽度至少要保持一个机器周期。

中断响应的撤销:两个定时器计数器的中断请求及外部中断跳沿方式的请求是自动撤销。电平触发的外部中断请求,其中断请求标志自动撤销,中断请求信号的低电平需自己处理。串行口中断请求的撤销只能使用软件方法。

第六章 89C51的定时器/计数器

89C51内有两个16位的硬件增1定时器/计数器T0、T1,分别由特殊功能寄存器TH0、TL0,TH1、TL1构成。都具有定时器、计数器两种工作模式及四种工作方式(方式0~3)。其中特殊功能寄存器TMOD用于选择T0、T1的工作模式和工作方式。TCON用于控制T0、T1的启动和停止计数,同时包含T0、T1的状态。TMOD、TCON均由软件来设置。计数模式是对加在T0(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数。定时模式是对单片机的时钟信号经片内12分频后的脉冲计数。

TMOD字节地址89H不能位寻址。其中M1、M0为工作方式选择位,00—方式0为13位定时器/计数器。由TLx的低5位和THx的高8位构成。11—方式1为16位定时器/计数器。10—方式2为8位自动重装定时器/计数器。11—方式3,仅适用于T0,此时T0分成两个8位计数器TL0、TH0,T1停止工作,TL0可计数/定时,TH0被固定为一个8位定时器(不能作为外部计数模式)。

注:T0处于工作方式3时,T1可定位方式0~2,用来作为串行口的波特率发生器,或不需要中断的场合。

定时器/计数器工作于计数模式时,输入信号产生负跳变时计数值增1。外部输入的计数脉冲的最高频率为系统震荡器频率的1/24。

注:在读运行中的定时器/计数器的计数值时,应先读THx,后读TLx,再读

THx,若两次读得的THx相同,则读得正确。

第七章 89C51的串行口

89C51单片机片内有一个可编程的全双工的异步通信串行口,它有两个物理上独立的接收发送缓冲器SBUF,共用同一个字节地址99H。它有四种工作方式,波特率可通过软件设置片内的定时器/计数器控制。串行口的控制寄存器有两个SCON、PCON。SCON中的SM0、SM1两位为工作方式选择位,00—方式0,同步移位寄存器方式(用于扩展I/O口)。01—方式1,8位异步收发,波特率可变(由定时器控制)。10—方式2,9位异步收发,波特率为fosc/64或fosc/32。11—方式3,9位一步收发,波特率可变(由定时器控制)。PCON中的SMOD位为波特率选择位。89C51的串行口用于串行通信时要占用定时器T1作为波特率发生器。

多个89C51单片机可利用串行口进行多机通信。串行口控制寄存器中的SM2位即为多机通信控制位。方式2和方式3中的第9位数据在多机通信和双机通信奇偶校验中很重要。

根据89C51的双机通信距离和抗干扰性的要求可选择TTL电平传输,或选择RS-232C、RS-422A、RS485串行接口进行串行数据传输。

第八章 89C51单片机扩展存储器的设计

89C51采用的是程序存储器空间和数据存储器空间分开的哈弗结构。最大可分别外扩64KB的存储空间,其中I/O接口芯片中的寄存器也作为数据存储器的一部分。

要进行系统扩展首先要构造系统总线,按功能常把系统总线分为3组,地址总线、数据总线、控制总线。以P0口作为低8位地址/数据总线,以P2口作为高8位地址线,形成16位地址线,可寻址64KB范围。控制信号线有引脚/PSEN、/RD、/WR、ALE、/EA。

为使外扩存储器空间分配时一个存储器单元对应一个地址,实地址不发生重叠以避免数据冲突就需要考虑存储器的地址空间分配问题。89C51必须进行两种选择:一是“片选”,二是在片选基础上进行“单元选择”。实现片选有两种方法:线性选择法和地址译码法。常用译码芯片有74LS138(3-8译码器)、74LS139(双2-4译码器)、74LS154(4-16译码器)。在外扩存储器的接口设计中,89C51单片机与存储器的连接就是地址线与地址引脚,数据线与数据引脚的连接,关键要做好控制线的连接。

89C51单片机P0口数据线和低八位地址线,为将它们分离出来须在单片机外加地址锁存器,如74LS373、74LS573。

只读存储器简称ROM,程序存储器的扩展使用比较多的是EPROM、EEPROM。EPROM的典型芯片是27系列产品。单片机系统常用RAM芯片的典型型号有6616、6264、62128、62256。

第九章 89C51扩展I/O接口的设计

虽然89C51本身已有4个I/O口,但是真正用作I/O口线的只有P1的八位I/O线及P3口的某些位线。在多数应用系统中89C51单片机都需要扩展I/O口。89C51扩展I/O接口电路应满足以下要求:1、实现和不同外设的速度匹配。2、输出数据锁存。3、输入数据三态缓冲。

每个I/O接口中的端口都要有地址,常用I/O端口编址方式有两种:独立编址、统一编址。89C51单片机使用的是统一编址。

为实现和不同外设的速度匹配,I/O接口必须根据不同的外设选择恰当的I/O

数据传送方式,有三种:同步传送、异步传送、中断传送。目前常用的外围I/O接口芯片有:82C55、81C55。

82C55具有3个8位的并行I/O口,三种工作方式,可通过编程改变其功能。方式0—基本输入/输出。方式1—选通输入/输出。方式2—双向传送(仅PA口)。 81C55包含256B的RAM存储器,RAM的存取时间为400ns,两个可编程的8位并行口PA和PB,一个可编程的6位并行口PC,以及一个14位的减1计数器。PA和PB口可工作与基本输入/输出方式(同82C55的方式0)或选通输入/输出方式(同82C55的方式1)。81C55有两种工作方式:存储器方式和I/O方式。

在89C51单片机系统中有时还需要使用廉价的74LSTTL芯片来扩展并行I/O口。若串行口未被使用,使用串行口来扩展并行I/O口也是一种较好的扩展方案。

第十章 89C51与键盘、显示器、拨盘、打印机的接口设计

大多数的单片机应用系统,都需要配置输入外设和输出外设。常用的输出外设有LED显示器、LCD显示器、打印机等,常用输入外设有键盘、BCD码拨盘等。

LED分共阳极和共阴极两种,为8段或七段。LED显示器有两种工作方式:静态显示方式和动态显示方式。

在单片机系统中常用的键盘有两种:机械式按键键盘和薄膜键盘。常用键盘接口分两种:独立式键盘接口和行列式键盘接口。键盘的工作方式分三种:编程扫描方式、定时扫描方式、中断扫描方式。按键的确认一定要注意按键的消抖。 在单片机应用系统设计中,一般把键盘和显示器放在一起考虑。此时可利用I/O芯片81C55或82C55来实现。也可用专用可编程键盘/显示器接口电路芯片Intel 8279和HD7279A。8279芯片是动态循环扫描显示方式,与89C51的接口需要8位数据线、段驱动器、位驱动器,还需扩充译码器。HD7279芯片可同时驱动8个共阴极LED显示器和64键的矩阵键盘,也是采用动态循环扫描显示方式,与89C51单片机间采用串行接口方式,仅占用4条口线,内部含有译码器及驱动器,能自动消抖和识别键值。性能要优于8279芯片。

LCD显示器具有功耗低,抗干扰能力强等优点,按排列形状可分为:字段型、点阵字符型、点阵图形型。在单片机应用系统中常用点阵字符型LCD显示器,使用时必须有相应的LCD控制器、驱动器来对LCD进行扫描、驱动,还要一定 空间的RAM和ROM来存储写入的命令和显示字符的点阵。

在单片机应用系统设计中多使用微型点阵式打印机,常用的有TPuP-40A/16A、GP16及XLF嵌入仪器面板上的汉字微型打印机。有时输入一些控制参数使用数字拨盘简单方便,最方便的拨盘是十进制输入、BCD码输出的BCD码拨盘。

第十一章 89C51单片机与D/A、A/D转换器的接口

D/A为数模转换器,主要技术指标为分辨率、建立时间和精度。常用的8位D/A转换器有DAC0832,它具有两个输入数据寄存器,电流输出,建立时间为1us,可双缓冲输入、单缓冲输入或直接数字输入,单一电源供电,功耗为20mW。DAC0832可以单、双极性电压输出。设计89C51与DAC0832的接口电路时,常用单缓冲方式或双缓冲方式的单极性输出。当8位DAC的分辨率不够用时,可以采用高于8位的DAC。如12位分辨率的电压输出型D/A转换器AD667。 A/D为模数转换器,其种类很多,广泛应用于单片机应用系统的主要有:逐次比较型转换器、双积分型转换器、∑-△式转换器。主要技术指标为转换时间

和转换速率、分辨率、转换精度。常用的8位A/D转换器ADC0809是一种逐次比较型8路模拟输入、8位数字量输出的A/D转换器。ADC0809虽有8路模拟通道可以同时输入8路模拟信号,但每个瞬间只能转换一路。8位ADC不够用时可使用12位A/D转换器AD574A,它是12位逐次比较型A/D转换器。转换时间为15us,转换精度≤0.05%。具有三态缓冲电路,片内有高精度的基准电压源和时钟电路,所以AD574A可在不需要外加电路和时钟信号的情况下完成A/D转换。

双击分型ADC由于两次积分时间比较长,所以AD转换速度慢,但精度可以做的比较高,对周期变化的干扰信号积分为零,抗干扰性能较好。常用的有三位半的双积分型AD转换器MC14433和四位半的双击分型AD转换器ICL7135。 第十二章 单片机的串行扩展技术

目前,单片机系统中使用的串行扩展方式主要有PHILIPS公司的I?C总线,DALLAS公司的单总线、Motorola公司的SPI串行外设接口。

单总线只有一条数据输入/输出线DQ,总线上所有器件都挂在DQ上,电源也通过这条线供给。单总线器件如:DS18B20。

SPI总线允许单片机与多个厂家生产的标准外围设备直接相连,以串行方式交换信息。SPI使用四条线:串行时钟SCK、主器件输入/从器件输出数据线MISO、主器件输出/从器件输入数据线MOSI和从器件选择线/CS。具有SPI接口的器件如:存储器MC2814、显示驱动器MC14499、MC14489等。

I?C总线用两条连线实现全双工同步数据传送,其中一条数据线SDA,一条时钟线SCL,所以连接到I?C总线上器件的数据线都接到SDA线上,各器件时钟线均接到SCL线上。它的运行由主器件控制。对于不带I?C总线接口的单片机可以使用普通I/O口采用软件模拟I?C总线时序的方法。具有I?C总线接口的器件如:PCF8553、MAX127/128、MAX517/518/519、AT24C02等。 第十三章 89C51单片机应用系统的设计与开发

单片机应用系统设计的步骤有四步:

(1)需求分析,方案论证和总体设计。

(2)器件选择,电路设计制作,数据处理,软件的编制。

(3)系统调试与性能测定。

(4)文件编制。

应用系统的硬件设计应注意以下几点:

(1) 尽可能采用功能强的芯片。

(2) 以软代硬。

(3) 工艺设计。

应用系统的软件总体框架设计应从以下几方面加以考虑:

(1) 根据软件功能要求,将系统软件分成若干独立部分。

(2) 各功能程序实行模块化。子程序化。

(3) 在编写软件之前,应绘制出程序流程图。

(4) 要合理分配系统资源,包括RAM、ROM、定时器/计数器、中断源等。 对于实时数据采集系统,为消除传感器通道中的干扰信号,除硬件上采用模拟滤波器外还可以采用软件滤波。软件滤波方法一般有:算术平均滤波、滑动平均滤波、中位值滤波、去极值平均滤波等。

单片机系统由于干扰而使程序发生混乱、乱飞时,必须采用将程序纳入的正规措施,如指令冗余、软件陷阱等。

更多相关推荐:
单片机课程设计总结

单片机课程设计心得体会这个学期的单片机课已经早早的上完了但是理论纯属理论没有与实践的结合总让我们学的不踏实感觉没有达到学以致用的效果所庆幸的是在课程介绍考试完之后老师给我们安排了这次单片机课程设计给了我们学以致...

单片机课程设计及个人心得感受

本科课程设计(论文)单片机控制流水灯的正常工作及外部中断控制灯的亮灭学院名称:汽车与交通工程学院专业:汽车服务工程班级:13汽服B学号:*************姓名:*******指导教师姓名:***二〇**…

单片机课程设计心得体会

单片机课程设计心得体会文章发布课程设计网发布时间20xx0505做了两周的课程设计有很多的心得体会有关于单片机方面的更多的是关于人与人之间关系方面的我们组一共有三个人但其他两个人是真的神龙见首不见尾除了在最后答...

单片机设计报告

单片机课程设计多功能无线数字钟摘要本系统装置的主要功能包括数字钟无线控制和温度计数字钟通过时钟芯片DS1302实现时钟准确误差小无线控制采用红外遥控成本低操作距离适中温度采集采用温度传感器DS18B20精度高系...

单片机设计心得

四周的毕业设计结束了,在这次的毕业设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合…

单片机课程设计总结报告参考模板

湖州师范学院求真学院课程设计总结报告课程名称单片机应用系统设计设计题目基于STC89C51的数字电子钟设计专业电子科学与技术班级080835姓名张静学号12指导教师李祖欣吴小红报告成绩求真学院信息与工程系二一一...

单片机程序设计方法(总结)

初学者要看的ltlt单片机程序设计方法总结gtgt单片机程序设计方法总结程序设计是单片机开发最重要的工作程序设计就是利用单片机的指令系统根据应用系统即目标产品的要求编写单片机的应用程序其实我们前面已经开始这样做...

单片机设计分析与编程题总结

设计分析1.MSC-511.MCS-51单片机系统时钟为12MHZ,解释以下程序的意义。LOOP:CLRP1.0MOVR7,#2ABC1:NOPNOPDJNZR7,ABC1SETBP1.0MOVR7,#5ABC…

单片机设计报告

华东交通大学信息工程专业单片机课程设计报告目录目录I摘要II第一章设计要求111课程设计项目名称112项目设计目的及技术要求1第二章总体方案222硬件电路设计2221单片机最小系统电路2222复位电路52238...

一个高手总结的单片机设计与KeilC编程总结

1基本原则质量是关键没有人会对很差的工作感到满足当完成高质量的工作时你会为此而感到骄傲不管你是否知道你都会因为你的高质量工作而得到信誉因此要想为自己所做的事感到骄傲就需要建立个人标准并为达到这一标准而努力奋斗在...

单片机综合设计报告

单片机综合设计报告万年历学院信息学院班级09通信A班学号0915231007姓名陈振耀指导老师戴在平时间20xx121第一章设计目的与设计要求311设计目的312设计任务和要求3第二章硬件设计321引言322整...

基于51单片机课程设计报告

课题:基于51单片机的数字温度计设计专业:电气工程及其自动化班级:4学号:***设计日期:20XX/6/3成绩:重庆大学城市科技学院电气学院基于51单片机数字温度计设计报告一、设计目的作用本设计是一款简单实用的…

单片机设计总结(42篇)