单片机实验讲义1018.docx
- 文档编号:9608588
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:44
- 大小:543.56KB
单片机实验讲义1018.docx
《单片机实验讲义1018.docx》由会员分享,可在线阅读,更多相关《单片机实验讲义1018.docx(44页珍藏版)》请在冰点文库上搜索。
单片机实验讲义1018
单片机原理及接口技术
实验指导书
陈元莉编
西华师范大学物理与电子信息学院
2009年
目录
硬件实验系统介绍1
实验一P1口实验7
实验二简单I/O口扩展实验10
实验三中断实验12
实验四定时器实验14
实验五串行口实验16
实验六8255A可编程并行接口实验18
实验七显示器实验21
实验八键盘实验23
实验九D/A转换实验25
实验十A/D转换实验28
实验十一存储器扩展实验31
实验十二电子音响实验33
附录8051错误信息35
硬件实验系统介绍
EL型微机教学实验系统的最大特点是采用了模块化组合式设计,容8051、8086、80C198/80C196三位于一体,而且可用功能齐全,硬件实验系统介绍如下:
1.1系统概述
(1)主要技术特性:
1.微处理器:
INTEL8051、8086、80C198/80C196可换。
2.时钟频率:
6MHZ。
3.存储器:
程序存储器、数据存储器统一编址。
最多达64K,板上ROM(监控)16K;EL—II型的RAM32K供用户使用,可扩展至48K。
用户存储器的起始地址为4000H:
8051原有中断入口,均需定位在偏移4000H之后的相应地址,如外部中断0入口在原程序中应为:
ORG4003H
LJMPINT0(中断服务程序入口标号)
4.可编程并行接口芯片一个。
5.串行接口两个:
(1)8250芯片一个,与主机通讯用。
(2)单片机串行接口一个供用户使用。
6.6×5键盘一个,除CTRL键和SHIFT键外,其余28键用户可自定义。
7.8279键盘、显示接口芯片一个。
8.6位LED数码显示。
9.ADC0809A/D转换芯片一个。
10.DAC0832D/A转换芯片一个。
11.8位简单输入接口74LS244一个。
EL—II型简单输出接口74LS273一个。
12.配有逻辑电平开关,发光二极管显示电路。
13.三路0~5V连续可调模拟量输入。
14.一个可产生正、负脉冲的脉冲发生器。
15.8253可编程定时器计数器一个,74LS161计数器一个,输出4路时钟信号。
16.实验箱电源为正负5V、正负12V,也可采用PC机电源或外接电源。
17.EL—II型配有一个20针EEPROM写入器接线插座,结合EEPROM8951系列写入器(可选件),可写EEPROM2864、28256、89C1051、89C2051、89C51、89C52等芯片,实验箱上有J1EPROM字样的标记。
18.EL—II型配有一个20针作微控制实验的接线插座,可进行步进电机、炉温控制、小直流电机调速等实验,实验箱上有J2CONTR字样的标记。
三种控制对象为可选件。
(2)提供对8051的基本实验
为了提高微机实验教学质量,提高实验效率,减轻主讲教师和实验老师的劳动强度,在该系统实验板上,除微处理器、EPROM、RAM外,扩充了8255并行接口,8250串行接口,8279键盘显示控制器,8253定时器,A/D、D/A转换,脉冲发生器以及键盘、LED显示等各种外围电路,各部分电路既相互独立,又可灵活组合,能满足各类学校、不同层次微机实验与培训需要。
本系统提供对8051的基本实验如下:
1.P1口实验
2.定时器实验
3.简单I/O口扩展实验
4.开关量输入实验
5.发光二极管显示实验
6.LED数码管显示实验
7.小键盘扫描实验
8.8255可编程并行口实验
9.8279键盘、显示接口实验
10.串行口通讯实验
11.DAC0832数模转换实验
12.ADC0809模数转换实验
13.存储器扩展实验
14.外部中断实验
15.交通灯控制实验
16.步进电机控制实验
17.小直流电机调速实验
18.炉温控制实验
其中,实验16、17、18需与响应的控制对象相连,为选作实验。
1.2EL型微机实验教学系统结构
EL型微机实验教学系统由通用接口电路板,可选的CPU板,两块小面包板三部分组成,可安装在45×30×10CM的实验箱内(见实验箱)。
1.3通用接口板实验电路介绍
1.3.1输出显示电路
(1)数码显示电路
该电路由6位共阴极数码管,3片75452,2片74LS07组成,74LS07为段驱动器,EL-II型相应输入插孔为ZP9(A~DP),75452为位驱动器,EL-II型相应输入插孔为ZP6(LED1~LED6)。
(2)LED显示电路
该电路由2片74LS07,EL-II型由8支发光二极管组成,相应输入插孔为ZP3(L1~L8)。
1.3.2信号发生电路
(1)开关量输入电路
该电路由8只开关组成,每只开关有两个位置,分别代表高电平和低电平。
EL-II型相应输入插孔为K1~K8。
(2)时钟输入电路
该电路由1片74LS161组成
当CPU为8051、80C198、80C196时,CLK的输入时钟为晶振频率。
当CPU为8086时,CLK的输入时钟为2MHZ。
输出时钟为该CLK的2分频(CLK0)、4分频(CLK1)、8分频(CLK2)、16分频(CLK3),相应输出插孔为(CLK0~CLK3)。
(3)单脉冲发生器电路
该电路由一个按纽,一片74LS04,74LS132组成,具有消颤功能,正反相脉冲,相应输出插孔为P0、P1。
(4)模拟量输入电路
该电路由3只可变电位器组成,输出为0~5V连续可调。
EL-II型相应输入插孔为ZP10(KB1~KB3)。
(5)键盘输入电路
该电路由28只通用键1只CTRL键组成,28只通用键采用8根列扫线,4根行扫线,无外部信号输入时,均为高电平,有外部信号输入时,电平状态由外部输入信号决定,作键盘实验时,一般行、列扫线分别定义为输入、输出,即4根行扫线为输入,8根列扫线为输出。
EL-II型相应输出插孔为ZP1(KB0~KB3),RS3(KA0~KA7)。
(6)复位电路
按动复位键,将对8255、8279、8250复位,以及对CPU板起复位作用。
1.3.3可编程定时器8253电路
该电路由1片8253组成,8253的片选输入端插孔为CS8253,数据口、地址、读写线均已接好,T0,T1的时钟为74LS161的输出CLK3,T2的时钟用户可自己接。
定时器输出,GATE控制孔对应为:
OUT0,GATE0,OUT1,GATE1,OUT2,GATE2,8253CLK2。
注:
GATE信号无输入时为高电平,EL-I型T2的时钟为CLK3。
1.3.4可编程并行口8255电路
该电路由1片8255组成,8255的数据口、地址、读写线,复位控制线均已接好,片选输入端插孔为CS8255,A、B、C三端口的插孔为:
EL-II型:
A:
PA0~PA7;B:
PB0~PB7;C:
PC0~PC7。
1.3.5可编程键盘显示控制器电路
该电路由1片8279,74LS138组成,8279的数据口、地址、读写线、复位、时钟、片选线均已接好,显示输出,键盘行列扫描线均有插孔输出。
EL-II型相应输入插孔为:
ZP5(RL0~RL7),ZP13(KS0~KS5)。
1.3.6可编程串行口8250电路
该电路由1片8250,1片1488,1片1489组成,该电路中8250的控制线均已接好,EL-II型的串行口被用作与PC机通讯用。
1.3.7简单数字量输出缓存电路
该电路EL-I型由2片74LS273组成,其片选信号分别为CSU8,CSU9,输出插孔为CZ10(S00~S07)和CZ7(S08~S015);EL-II型由1片74LS273组成,输出插孔为ZP17(S00~S07)其片选信号分别为CSU8,该电路中74LS273的输入均已接好数据线。
1.3.8简单数字量输入缓冲电路
该电路由1片74LS244组成,其输入均已接在数据总线上,EL-II型输入插孔为ZP18(SI0~SI7),片选信号为CSU10。
1.3.9八路八位A/D转换电路
该电路由1片ADC0809,1片74LS02组成,该电路中,ADC0809的参考电压,数据总线输出,通道控制线均已接好,其他信号线由插孔接入,ADC0809的片选信号为CS0809,转换结束标志输出插孔为EOC,模拟量输入通道插孔为IN0~IN7。
通过调节PT1可调节参考电压Vref。
1.3.10八位双缓冲D/A转换电路
该电路由1片DAC0832,1片74LS00,1片LM324组成,该电路中除0832的片选未接好外,其他信号均已接好,DAC0832的片选信号为CS0832,输出插孔为VOUT(EL-I型)和OUT(EL-II型)。
该电路为非偏移二进制D/A转换电路,通过调节PT3,可调节转换器的满偏值,调节KB5(EL-II型为PT2),可调节转换器的零偏值。
1.3.11存储器扩展电路
该电路由1片62256和2片6264组成,该电路的所有信号线均已接好,可直接进行存储器读写实验,对8051和8098实验来说,62256的起始地址为4000H,长度为32K。
8051和8098的数据与程序存储区都统一编址为64K,其中0~16K被系统使用,后32K供用户防真和实验用。
1.48051CPU板的结构
EL-I型8051CPU板含1片8031CPU,1片地址锁存器74LS373,2片地址译码器GAL16V8,一个时钟发生电路产生6MHZ脉冲。
该CPU板有用于系统扩展和更改配置的跳线、插孔,详述如下:
J2为8051防真插座,它可以通过防真电缆与目标相连,用于防真调试。
J3为8051全部引脚的引出孔,可用来作面包板实验或与其他实验相连接。
J4为8051通过地址锁存器锁存后的低八位地址。
CLOCK跳线用来设置防真时用用户时钟还是用CPU板上的时钟,跳位SYSTEM时,使用系统时钟,跳为USER时使用用户时钟。
BANK跳线用来确定64K空间,4000~7FFFH,8000~BFFFH,C000~FFFFH,这三段空间是分配给系统还是给用户板,这主要是为避免访问时出现总线冲突,右1控制4000~7FFFH段,中2控制8000~BFFFH,左1控制C000~FFFFH。
跳为SYS时,分配给系统,跳为USER时,分配用户板。
EL-II型8051CPU板有一个防真头插座,和全部引脚的引出孔,以及CLOCK跳线,功
能和EL-I型的一样。
8051的实验系统将PSEN与RD信号线统一使用,系统内所有存储器都统一编址,可以作数据存储器,也可作程序存储器,所有地址译码均采用全地址译码。
通用片选地址见下述:
CS0:
CFA0H—CFA7H实验程序、芯片可用的通用片选
CS1:
CFA8H—CFAFH实验程序、芯片可用的通用片选
CS2:
CFB0H—CFB7H实验程序、芯片可用的通用片选
CS3:
CFB8H—CFBFH实验程序、芯片可用的通用片选
CS4:
CFC0H—CFC7H实验程序、芯片可用的通用片选
CS5:
CFC8H—CFCFH实验程序、芯片可用的通用片选
CS6:
CFD0H—CFD7H实验程序、芯片可用的通用片选
CS7:
CFD8H—CFDFH实验程序、芯片可用的通用片选
CS8250:
CFE0H—CFE7H实验程序、芯片可用的通用片选
CS8279:
CFE8H—CFEFH实验程序、芯片可用的通用片选
1.5实验系统电源
该系统的电源提供了两种解决方案:
(1)利用PC机电源,从系统的+5V、+12V、-12V电源插座中引入,该电路具有短路保护。
(2)外接开关电源,内置在实验箱里。
实验一P1口实验
一、实验要求
1.P1口做输出口,接八只发光二极管。
编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按钮开关,以实验台上74LS273做循环输出口,编写程序读取开关状态,在发光二极管上显示出来。
二、实验目的:
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
三、有关说明
P1口为准双向口,P1口的每一位都能独立地定义为输出位或输入位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8051中所有的锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下试验,先按要求编好程序并调试成功后,可将P1口锁存器先置“0”,此时将P1口做输入口,会有什么结果?
再来看一下延时程序的实现,现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us,现要写一个延时0.1s的程序,可大致写出如下:
MOVR7,#200
(1)
DEL1:
MOVR6,#X
(2)
DEL2:
DJNZR6,DEL2(3)
DJNZR7,DEL1(4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X的值:
1÷0.256+(1÷0.256+X×1÷0.256+1÷0.256)×200=0.1×106
指令
(1)时间指令
(2)时间指令(3)时间指令(4)时间
经计算得X=126。
带入上式可知实际延时时间约为0.100004S,已经很精确了。
四、连线方法
执行程序1时:
P1.0~P1.7接发光二极管L1~L8。
执行程序2时:
P1.0~P1.7接按钮开关K1~K8;74LS273的S00~S07接发光二极管的L1~L8;74LS273的片选端CSUB\接片选CS0(由程序所选择的入口地址而定,与CS0~CS7相应的片选地址请看第一章,以后不赘述)。
五、实验电路
图1-1P1口作输出口
图1-2P1口作输入口
六、程序框图
图1-3程序框图
七、实验报告要求
1.说明本实验的基本工作原理。
2.写出调试成功的程序。
实验二简单I/O口扩展实验
一、实验要求
扩展实验箱上的74LS273作输出口,控制八个发光二极管燃灭,模拟交通灯管理。
二、实验目的
1.学习在单片机系统中扩展简单I/O口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯管理的实现方法。
三、实验说明
本实验中使用L1~L6六个发光二极管模拟交通灯,其中L1L2为红灯,L3L4为黄灯,L5L6为绿灯,使用L1L3L5为东西方向的指示灯,L2L4L6为南北方向的指示灯,交通灯的燃灭规律为:
初始状态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口的绿灯灭,黄灯开始闪烁,闪烁五次后,东西路口的红灯亮,南北路口的绿灯亮,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁,闪烁五次后,再切换到东西路口方向,重复上述过程。
各发光二极管共阳极,阴极接有与非门,因此使其点亮应使相应输入端为高电平。
四、实验电路
图2-1电路连接图
五、实验连线
74LS273的输出S00~S07接发光二极管L1~L8,74LS273的片选CSU8\接片选信
号CS0,此时74LS273的片选地址为CFA0H。
六、程序框图
图2-2程序框图
七、实验报告要求
1.说明本实验的基本工作原理。
2.写出调试成功的程序。
实验三中断实验
——有急救车的交通灯控制实验
一、实验要求
在实验二的内容的基础上增加允许急救车优先通过的要求。
当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。
本实验以单脉冲为申请,表示有急救车通过。
二、实验目的
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
三、实验说明
交通灯的燃灭规律见实验二。
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还有要注意:
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中.因为进入中断程序后也要执行后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态.还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:
MOVA,#0F0H(0)
MOVX@R1,A
(1)
MOVSAVE,A
(2)
程序如果正好执行到
(1)时发生中断,则转入中断程序,假设中断程序返回主程序前
需要执行一句MOVA,SAVE指令,由于主程序中没有执行
(2),故SAVE中的内容实际上
是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将
(1)、
(2)两句顺序颠倒
一下则就没有问题.发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态.
四、实验电路
图3-1电路连接图
五、实验连线
74LS273的输出S00~S07接发光二极管L1~L8,74LS273的片选CSU8\接片选信号CS0,此时74LS273的片选地址为CFA0H,单脉冲输出端P1接CPU板上的INT0。
六、程序框图
图3-2程序框图
七、实验报告要求
1.说明本实验的基本工作原理。
2.写出调试成功的程序。
实验四定时器实验
——循环彩灯实验
一、实验要求
由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
要求编写程序模拟一循环彩灯。
彩灯变化花样可自行设计。
例如给出的花样为:
①L1、L2、...L8依次点亮;②L1、L2、...L8依次熄灭;③L1、L2、...L8全亮、全灭。
各时序间隔为0.5秒。
让发光二极管按以上规律循环显示下去。
二、实验目的
1.学习8031内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编写方法。
三、实验原理
1.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡周期的12倍。
本实验中时钟频率为6.144MHZ,现要采用中断方法来实现0.5秒的延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:
机器周期=12÷晶振频率=12÷6.144×10e6=1.9531×10e-6s
设计数初值为X,则(2e+16-X)×1.9531×10e-6=0.1,可求得X=14336,化为十六进制则X=3800H,故初值为TH1=38H,TL1=00H
2.初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数装入定时器中。
由于只有定时器中断,IP便不必设置。
3.设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
四、实验电路
图4-1电路连接图
五、实验连线
P1.0-P1.7分别接发光二极管L1-L8.即可。
六、程序框图
图4-2程序框图
七、实验报告要求
1.说明本实验的基本工作原理。
2.写出调试成功的程序。
实验五串行口实验
一、实验目的
利用8031串行口发送和接收数据,并将接收的数据通过扩展I/O口74LS273输出到发光二级管显示,结合延时来模拟一个循环彩灯。
二、实验目的
1.掌握8031串行口方式1的工作方式及编程方法。
2.掌握串行口通讯中波特率的设置。
3.在给定通讯波特率的情况下,会计算定时时间常数。
三、实验电路
图5-1电路连接图
四、实验说明
MCS-51单片机串行通讯的波特率随串行口方式选择的不同而不同,它除了与系统的振荡频率f,电源控制寄存器PCON的SMOD位有关外,还与定时器的设置有关。
1)在工作方式0时,波特率不变,仅与系统振荡频率有关,其大小为f/12。
2)在工作方式2时,波特率也只固定为两种情况:
当SMOD=1时,波特率为=f/32;当SMOD=0时,波特率为=f/64
3)在工作方式1和3时,波特率是可变的:
当SMOD=1时,波特率=定时器T1的溢出率/16
当SMOD=0时,波特率=定时器T1的溢出率/32
其中,定时器T1的溢出率=f/(12*(256-N)),N为T1的定时器时间常数。
在实际应用中,往往是给定通讯波特率,而后去确定时间常数。
例如:
f=6.144MHZ
波特率等于1200,SMOD=0时,则1200=6400/(12*32*(256-N)),计算得N=F2H。
本实验设置串行口工作方式1,SMOD=0,波特率为1200,彩灯的变化花样自行设计。
五、实验连线
8031的TXD接RXD,74LS273的CSU8\RUVCS0,S00~S07接发光二极管的L1~L8。
六、程序框图
图5-2程序框图
七、实验报告要求
1.说明本实验的基本工作原理。
2.写出调试成功的程序。
实验六8255A可编程并行接口实验
——键盘实验
一、实验要求
利用实验台上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。
二、实验目的
1.掌握8255A编程原理。
2.了解键盘电路的工作原理。
3.掌握键盘接口电路的编程方法。
三.实验说明
1.识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某被键按下,则必定会使某一列线值为0。
然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。
这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。
2.程序设计时,要学会灵活地对8255A的各端口进行方式设置。
3.程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的
0~F字符放在另一个表中,通过查表来确定按下的是那一个键并正确显示出来。
四.实验连线
在计算机监控状态下做实验时,首先将键盘部分与8279的连线拔掉,然后将键盘矩阵的KA0~KA7接8255A的PA0~PA7;KB0~KB3接8255A的PB0~PB3;PC0~PC3接发光二极管的L1~L8;8255A芯片的片选信号CS8255接CS0。
A口,B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 讲义 1018