单片机基础实践

上传人:飞*** 文档编号:4258885 上传时间:2017-08-06 格式:PPT 页数:148 大小:3.90MB
返回 下载 相关 举报
单片机基础实践_第1页
第1页 / 共148页
单片机基础实践_第2页
第2页 / 共148页
单片机基础实践_第3页
第3页 / 共148页
单片机基础实践_第4页
第4页 / 共148页
单片机基础实践_第5页
第5页 / 共148页
点击查看更多>>
资源描述

《单片机基础实践》由会员分享,可在线阅读,更多相关《单片机基础实践(148页珍藏版)》请在金锄头文库上搜索。

1、单片机基础实践,实验一 Proteus和Keil软件的使用,一.实验目的1.学会在Proteus仿真软件画硬件电路。2.学会使用Keil软件编程3.学会keil软件和Proteus仿真软件联调。,二.实验内容1.单片机最小系统,图1 单片机最小系统原理图,80C51的引脚封装,总线型,非总线型,6,基本的51单片机结构,下图为P0口的某位P0.n(n=07)结构图,它由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。,一、P0口的结构,1、P0口作为普通I/O口(输出口),CPU发出控制电平

2、“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出驱动场效应管T2栅极接通。故内部总线与P0口同通。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉电流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。,下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。 如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上

3、面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。,2、P0口作为普通I/O口(输入口),P0口必须接上拉电阻;在读信号之前数据之前,先要向相应的锁存器做写1操作的I/O口称为准双向口;,二、P2口的结构,1.P2口作为普通I/O口,CPU发出控制电平“0” ,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。,2.P2口作为地址总线 在系统扩展片外程序存储器扩展数据存储器且容量超过256B时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。,三、 P1口的内部结构,P1口是80C51的唯一的单功能口,仅能用作数据输入输出口,它由一个输

4、出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。同P2口相同,内部设有上拉电阻(约30K)。,四、 P3口的内部结构,一、作为通用I/O口与P1口类似-准双向口(W=1) P1口是80C51的唯一的单功能口,仅能用作数据输入输出口,它由一个输出锁存器、三个输入缓冲器、一个与非门和输出驱动电路组成。同P2口相同,内部设有上拉电阻(约30K)。,80C51的时钟信号,晶振周期(即时钟周期)为最小时序单位。 晶振信号经分频器后形成两相错开的信号P1和P2。 P1和P2的周期也称为S状态,它是晶振周期的2倍。即一个S状态包含两个晶振周期。CPU以P1和P2为基本节拍指挥各个部件协调的工作 晶

5、振信号经12分频后形成机器周期。 当单片机的时钟系统工作正常的时候,在ALE引脚可以观察到稳定烦人脉冲信号,其频率为:晶振频率/6。,单片机工作的基本时序,机器周期和指令周期 (1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期.晶振11.0592MHz。 (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。 (3) 机器周期: 一个机器周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一

6、个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。,2. Proteus ISIS主窗口界面,图2 Proteus ISIS主窗口界面,20,3.Keil uVision3软件,21,uVision开发环境,22,保存为lesson1.c,uVision开发环境,23,uVision开发环境,将保存的 test1.c 加入工程,编译工程,24,uVision开发环境,调试运行程序,25,生成可烧写的HEX文件,uVision开发环境,编译的输出信息,三.实验步骤1.使用Proteus软件搭建硬件电路。2.使用Keil软件编程3.运行观察实验结果四.思考题:

7、1.用单片机I/O驱动一个LED灯。2. 用单片机两个I/O驱动两个LED灯。3.用单片机三个I/O驱动三个LED灯。五.实验报告:(1)Proteus仿真软件使用方法。(2)Keil uVision3软件使用方法。,实验二 发光二级管的应用仿真,一.实验目的1.学会在Proteus仿真软件画硬件电路。2.学会使用Keil软件编程3.学会发光二级管的应用,二.实验内容1.电路原理图,图2.1 发光二级管电路图,三.实验步骤1.使用Proteus软件搭建硬件电路。2.使用Keil软件编程3.运行观察实验结果四.思考题1.8个发光管由上至下间隔1s流动,其中每个管亮250ms,灭250ms。2.间

8、隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。3.间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。,实验三 蜂鸣器、继电器的驱动仿真,一.实验目的1.学会在Proteus仿真软件画硬件电路。2.学会使用Keil软件编程3.学会蜂鸣器、继电器的的应用,二.实验内容1.,图1 蜂鸣器驱动电路,2.,图2 继电器驱动电路,3.实验内容采用P2.1口驱动蜂鸣器电路和采用P2.1口驱动继电器电路。三.实验步骤1.使用Proteus软件搭建硬件电路。2.使

9、用Keil软件编程3.运行观察实验结果,四、思考题1.驱动蜂鸣器改用NPN三极管,更改程序,观察现象。2.驱动继电器改用NPN三极管,更改程序,观察现象。3.设计电路并编程,用PNP三极管驱动继电器,继电器带动蜂鸣器、LED灯,实现蜂鸣器和LED灯交替工作。,实验四 数码管显示应用仿真,一.实验目的1.学会在Proteus仿真软件画硬件电路。2.学会使用Keil软件编程3.学会数码管的驱动方法,二.实验内容静态显示就是当显示器显示某一字符时,相应的发光二极管恒定地导通或截止。这种显示方法的每一位都需要有一个8位输出口控制。,三.实验步骤1使用Proteus软件搭建硬件电路。2使用Keil软件编

10、程3运行观察实验结果四.思考题1.使用两个数码管接到两个I/O口作静态扫描。2.使用三个数码管接到三个I/O口作静态扫描。3.使用四个数码管接到四个I/O口作静态扫描。,实验五 键盘的应用仿真,一.实验目的1.学会在Proteus仿真软件画硬件电路。2.学会使用Keil软件编程3.学会键盘的应用方法,二.实验内容1.键盘分独立键盘和矩阵键盘。独立键盘由一组相互独立的按键组成。这些按键直接与单片机的I/O口相连接,即每个按键独占一条I/O口,接口简单,独立式键盘因占用单片机的硬件资源较多,只适合按键较少的场合使用。2.键盘检测分查询法和中断法,本例采用的是查询法,利用为判断指令实现键盘功能。每按

11、下一次键盘会使计数标志加1.电路图:,按键在闭合和断开时,触点会存在抖动现象,按键抖动的时间一般为510ms,抖动会产生一次按键多次处理的问题,应该采取措施消除抖动的影响。,程序中,对键盘的处理包括以下几个方面:(1)检测按键是否按下;(2)如果检测到按键被按下,可以执行软件去抖动,消除抖动的影响;(3)准确判断是哪个按键被按下;(4)转向相应的程序处理子程序。,三、实验步骤1.绘制硬件电路图2.软件编程3.观察运行现象四.思考题1.用两个按键设计具有加减功能计数器计数09。2. 用按键做计数99后,再按重复上个过程。3.做一键识别功能,要求每按一次按键,实现不同功能流水灯(用LED灯实现)。

12、,实验六 定时器仿真,一.实验目的1.学会在Proteus仿真软件画硬件电路。2.学会使用Keil软件编程3.学会定时器使用方法,二.实验内容 51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD(工作方式寄存器)和TCON(控制寄存器) 1.工作方式寄存器TMOD 工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0的设置,高四位用于T1的设置。其格式如下:,GATE:门控位。GATE0时,只要用软件使TCON中的TR0或TR1为1,可以启动定时/计数器工作;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚INT0或INT1也为高电平时,才能启动定时/计

13、数器工作。即此时定时器的启动条件,加上了INT0或INT1引脚为高电平这一条件。 :定时/计数模式选择位。 0为定时模式; =1为计数模式。M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。,2.控制寄存器TCON TCON寄存器为定时器/计数器控制寄存器,可以进行位寻址。TCON的高4位用于控制定时/计数器的启动和中断申请。低4位用于控制外部中断。,TF1(TCON7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或

14、清0,同硬件置1或清0的效果一样。TR1(TCON6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON4):T0运行控制位,其功能与TR1类同。,3.定时/计数器的工作方式 一、方式0 方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。,二、方式1 方式1的计数位数是16位,由TL0作为低8位、TH0作为

15、高8位,组成了16位加1计数器 。,计数个数与计数初值的关系为:,:例1方式0:使用T0工作方式0计数6000,C指令如下:TL0=(8192-6000)%32; /取5位的余数TH0=(8192-6000)/32; /取5位的商例2方式1:使用T0工作方式0计数50000,C指令如下:TL0=(65536-50000)%256; /取8位的余数TH0 =(65536-50000)/256; /取8位的商例3方式2:使用T0工作方式0计数100,C指令如下:TL0=256-100; /填入计数值TH0=256-100; /填入自动加载值,4.定时器、计数器的应用(1)中断法:即定时器/计数器中断的设定、计数量的设定、启动定时器/计数器以及中断子程序的编写;(2)查询法:即不需要中断设定,不需要中断中断子程序,只要设定计数量及启动定时器/计数器,然后判断定时器/计数器的标志位(TFx)是否动作,以决定程序流程。,电路图:,三、实验步骤1.绘制硬件电路图2.软件编程3.观察运行现象四.思考题1.在本实验里,所采用的是Timer 0,若采用Timer 1,应如何修改?2.在本实验里,所采用的是Timer 0,工作方式1。若改用工作方式2来完成本实验功能,程序应如何修改?3.设单片机的晶振频率为12MHz,使用定时器1,在方式0下由P1.0输出周期为10ms的等宽方波,以查询方式完成。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 技术指导

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号