单片机基础(第3版)——第5章
- 格式:ppt
- 大小:492.50 KB
- 文档页数:53


1 单片机原理及应用考试复习知识点
第1章 计算机基础知识
考试知识点:
1、各种进制之间的转换
(1)各种进制转换为十进制数
方法:各位按权展开相加即可。
(2)十进制数转换为各种进制
方法:整数部分采用“除基取余法”,小数部分采用“乘基取整法”。
(3)二进制数与十六进制数之间的相互转换
方法:每四位二进制转换为一位十六进制数。
2、带符号数的三种表示方法
(1)原码:机器数的原始表示,最高位为符号位(0‘+’1‘-’),其余各位为数值位。
(2)反码:正数的反码与原码相同。负数的反码把原码的最高位不变,其余各位求反。
(3)补码:正数的补码与原码相同。负数的补码为反码加1。
原码、反码的表示范围:-127~+127,补码的表示范围:-128~+127。
3、计算机中使用的编码
(1)BCD码:每4位二进制数对应1位十进制数。
(2)ASCII码:7位二进制数表示字符。0~9的ASCII码30H~39H,A的ASCII码41H,a的ASCII码61H。
第2章 80C51单片机的硬件结构
考试知识点:
1、80C51单片机的内部逻辑结构
单片机是把CPU、存储器、输入输出接口、定时/计数器和时钟电路集成到一块芯片上的微型计算机,主要由以下几个部分组成。
(1)中央处理器CPU
包括运算器和控制器。
运算电路以ALU为核心,完成算术运算和逻辑运算,运算结果存放于ACC中,运算结果的特征存放于PSW中。
控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。程序计数器PC是一个16位寄存器,PC的内容为将要执行的下一条指令地址,具有自动加1功能,以实现程序的顺序执行。
(2)存储器
分类:
随机存取存储器RAM:能读能写,信息在关机后消失。可分为静态RAM(SRAM)和动态RAM(DRAM)两种。
只读存储器:信息在关机后不会消失。
掩膜ROM:信息在出厂时由厂家一次性写入。
单片机第8、9章习题
1、用2片74HC573扩展2个8位输出口PORTA、PORTB,分别作8个共阳极数码管的段码输出、位选码输出,P3.0连接一个开关接地,当P3.0=0,显示“20140501”,当P3.0=1,显示“19491001”。
2、设置一个一维数组b[ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],用1片74HC244扩展1个8位输入口PORTA连接拨码开关,选中PORTA必须P2.0=0,设PORTA读得的数据是i,用6个共阴极数码管动态显示b[i]开始的3个数据。
3、用2片74HC244扩展2个8位输入口PORTA、PORTB分别连接两个拨码开关。选中PORTA必须P2.0=0,选中PORTB必须P2.1=0。设计4个共阴极数码管,动态显示PORTA、PORTB读得的数据。
4、用2片74HC244扩展2个8位输入口PORTA、PORTB分别连接两个拨码开关。选中PORTA必须P2.2=0,选中PORTB必须P2.3=0。设计2个共阳极数码管,P3.0连接一个开关接地,当P3.0=0,动态显示PORTA读得的数据,当P3.0=1,动态显示PORTB读得的数据。
5、用1片74HC273扩展1个8位输出口PORTA连接数码管。选中PORTA必须P2.0=0。设计一个3×3的键盘,其键值分别是1-9,设计电路和编写程序,通过数码管显示所按键键值。
6、用1片74HC273扩展1个8位输出口PORTA连接数码管。选中PORTA必须P2.0=0。设计一个4×4的键盘,其键值分别是0-F,设计电路和编写程序,通过数码管显示所按键键值。
7、用2片74HC273扩展2个8位输出口PORTA、PORTB分别连接两个数码管。选中PORTA必须P2.0=0,选中PORTB必须P2.1=0。设计一个4×4的键盘,其键值分别是0-F,设计电路和编写程序,通过数码管显示所按键键值,新按键值显示在右边数码管,前面的按键值显示在左边数码管。
第3章单片机软件工程基础
对于初学者来说,在掌握了单片机内部资源的使用方法之后,接下来的问题是:如何将
众多的功能集成在一起构成一个完整的系统?如何让多个功能〔任务)同时执行?如何让外
部的事件都能立即得到处理?如何与最终用户进行友好的人机交互?如何保持程序具有扩
展性,能够很容易地增加新功能?
本章从软件结构,工程方法的角度出发,对上述问题进行探讨。并为读者详解两种常用
的程序架构,以及在相应架构下的编程方法。还介绍“状态机建模”这一强大的并行多任务
建模手段,以及“状态机建模”在程序设计中的应用。
实际上,各类单片机系统的软件在硬件隔离层之上并无本质区别,各种功能都可以通过
软件工程手段实现,各种程序结构框架也是通用的。所以,掌握本章的内容,对于各种嵌入
式系统开发与设计都会有帮助。
3.1前后台程序结构
前后台程序结构是最常用的程序结构之一,简单地说,前后台程序由主循环加中断构成,
主循环程序称为“后台程序”或“背景程序”,各个中断程序称为“前合程序”,依靠中断内
的前台程序来实现事件响应与信息收集。后台程序中多个处理任务顺序依次执行,从宏观上
看,这些任务将是同时执行的。
3.1.1任务
首先明确“任务”的概念。任务(Task)是指完成某一单一功能的程序。例如温度报警装
置,根据功能划分为:获取温度、显示温度、门限比较并驱动报警装置、用户设置报警值、
数据通信5个任务。
从宏观上看这5个任务必须是同时进行的,任何时候一旦超温必须报警;任何时候按设
置按钮都能进入菜单设置温度上下限;任何时候串口如果收到数据请求帧,都必须立即回复
温度数据等。这种多个任务同时执行,且各种事件对响应时间要求严格的软件系统被称为“实
时多任务系统”。大多数单片机系统都属于实时多任务系统。而CPU本身是一个串行执行部
件,它只能依次执行代码,不能同时执行多段代码,需要借助一定的软件手段来实现多任务
的同时执行。
目前,有许多成熟的软件结构与方法能够实现实时多任务系统,如小巧灵活的前后台程
二、方式1
1、电路逻辑结构
当M1M0 为01 时,定时器选定为方式1 工作。在这种方式下,16 位寄存器由特殊功
能寄存器TL0 和TH0 组成一个16 位的定时/计数器,其最大的计数次数应为216次。如果
单片机采用6MHz 晶振,则该定时器的最大定时时间为217μs。工作方式1 的逻辑结构图
如图3.8 所示。除了计数位数不同外,方式1 与方式0的工作过程相同。
图3.8 定时/计数器方式1(16 位计数器)逻辑结构框图
当(GATE)=0 时,只要TCON中的启动控制位TR0 为1,由TL0 和TH0组成的16位计数器就开始计数;
当(GATE)=1 时,此时仅仅(TR0)=1 仍不能使计数器开始工作,还需要INT0引脚为1才能使计数器工作,即当INT0由0变1时,开始计数,由1变0时,停止计数,这样可以用来测量在INT0端的脉冲高电平的宽度。当16位计数器加1 到全为1 后,再加1 就会产生溢出,溢出使TCON 的溢出标志位TF0 自动置1,同时计数器TH0(8位)TL0(8位)变为全0,如果要循环定时,必须要用软件重新装入初值。
2、工作特点
(1)在计数下
计数范围 :0—216-1(0~65535)
计数初值 :X=216—所需记录的脉冲个数
(2)在定时下:
定时时间T=(216-X)×机器周期=(216-X)×振荡周期×12
最大定时时间=(216-0)×机器周期
当fosc=6MHz时, 最大定时时间=216×2μs=131.07ms
能实现的定时范围为:2us-131.07ms
【例4.3】设单片机系统的振荡频率为6MHZ,使用T1以方式1工作,在单片机P1.0引脚产生2ms的波。
1ms 1ms
1、 确定T0的初值:
T=(216-X)×T机=1ms T/T机=65536-x