单片机实验.docx
《单片机实验.docx》由会员分享,可在线阅读,更多相关《单片机实验.docx(43页珍藏版)》请在冰豆网上搜索。
单片机实验
实验说明
根据我校商业电子工程专业发展实际情况、尤其是目前商业自动化POS机、ATM自动柜员机
等的快速发展情况并结合许多其它高等院校实验课经验,我实验室组合整编了具有开发、应用、
实验相结合的整套实验设备。
以尽快提高我校商业电子工程发展水平,提高电子工程实验班的
动手能力、分析解决问题能力。
本系统具有以下特点:
1、CPU选用了89S51CPU,系统功能齐全,涵盖了单片机教学实验课程的大部分内容。
2、系统采用开放式模块化结构设计,通过两组相对独立的总线最多可同时扩展2块应用
实验板,学生可根据需要购置相应实验板,降低了成本,提高了灵活性,便于升级换代。
3、配有两块可编程器件:
EPM7128被系统占用。
另一块EPM7032供学生实验用。
两块器件
皆可通过JTAG[JointTestActionGroup(联合测试行动小组)]接口在线编程。
使用十分方便。
4、灵活的电源接口:
配有PC机电源插座,可由PC提供电源。
另外还配有外接开关电源,
提供所需的+5V,±12V,其输入为220V的交流电。
5、系统的联机运行模式:
配有系统调试软件,系统调试软件分DOS版和WINDOWS版两种,
均为中文多窗口界面。
调试程序时可以同时打开寄存器窗口、内存窗口、变量窗口、反
汇编窗口、波形显示窗口等等,极大地方便了学生的程序调试。
该软件集源程序编辑、
编译、链接、调试与一体,每项功能均为中文下拉菜单,简明易学。
经常使用的功能均
备有热键(快捷键),这样可以提高程序的调试效率。
8051调试软件不仅支持汇编语言,而且还
支持C语言编辑调试。
6、系统的单机运行模式:
系统在没有与计算机连接的情况下,自动运行在单机模式,在此
模式下,学生可通过键盘输入运行程序(机器码),和操作指令,同时将输入信息及操
作的结果在LED数码管上显示出来。
7、系统功能齐全,可扩展性强。
本实验系统不仅完全能满足教学大纲规定的基本接口芯片
实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为学生开放)亦能轻松满
足其课程设计使用等。
出于水平所限,讲义中难免有谬误之处,恳请大家批评指正。
电子技术实验室
实验一单片机及接口技术实验课综述
及注意事项
1、8051单元:
1)、微处理器:
i80c31,它的P1口、P3口皆对学生开放,供学生使用。
2)、时钟频率:
6.0MHz
3)、存储器:
程序存储器与数据存储器统一编址,最多可达64k,板载ROM(监控程序27C256)12k;RAM1(程序存储器6264)8k供学生下载实验程序,可扩展达32k;RAM2(数据存储器6264)8k供学生程序使用,可扩展达32k。
(RAM程序存储器与数据存储器不可同时扩至32k,具体与厂家联系)。
(见图1-1:
存储器组织图)。
在程序存储器中,0000H----2FFFH为监控程序存储器区,学生不可用,4000H----5FFFH为学生实验程序存储区,供学生下载实验程序。
数据存储器的范围为:
6000H----7FFFH,供学生实验程序使用。
注意:
因学生实验程序区位于4000H-----5FFFH,学生在编写实验程序时要注意,程序的起始地址应为4000H,所用的中断入口地址均应在原地址的基础上,加上4000H。
例如:
外部中断0的原中断入口为0003H,学生实验程序的外部中断0的中断程序入口为4003H,其他类推,见表1-1。
4)、可提供的对8051的基本实验
为了提高微机教学实验质量,提高实验效率,在该系统的实验板上,除微处理器外、程序存储器、数据存储器外,还增加了8255并行接口、8250串行控制器、8279键盘、显示控制器、8253可编程定时器、A/D、D/A转换、单脉冲、各种频率的脉冲发生器、输入、输出电路等模块,各部分电路既相互独立、又可灵活组合,能满足我学校,不同层次单片机实验与培训要求。
可提供的实验如下:
(1)、8051P1口输入、输出实验
(2)、简单的扩展输入、输出实验
(3)、8051定时器/计数器实验
(4)、8051外中断实验
(5)、8279键盘扫描、LED显示实验
(6)、8255并行口输入、输出实验
(7)、8253定时器/计数器实验
(8)、8259中断实验
(9)、串行口通讯实验
(10)、ADC0809A/D转换实验
(11)、DAC0832D/A转换实验
(12)、存储器扩展实验
(13)、交通灯控制实验
FFFFH
学生I/O区
CFEFH
系统I/O区,
CFBFH
学生I/O区
7FFFH
RAM2
学生实验程序区
供学生下载实验
程序
4FFFH
RAM1
学生实验程序
数据区
2FFFH
ROM
系统监控程序区
0000H
图1:
存储器系统组织图
中断名称8051原中断程序入口学生实验程序响应程序入口
外中断00003H4003H
定时器0中断000BH400BH
外中断10013H4013H
定时器1中断001BH401BH
串行口中断0023H4023H
5)、资源分配
本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程。
此单元也分两部分:
一部分为系统CPLD,完成系统器件,如监控程序存储器、学生程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0---CS5)给学生使用,他们的地址固定,学生不可改变。
具体的对应关系见表1-2。
另一部分为学生CPLD,它完全对学生开放,学生可在一定的地址范围内,进行编译码,输出为插孔LCS0----LCS7,学生可用的地址范围见表1—2,注意:
学生的地址不能与系统相冲突,否则将导致错误。
地址范围输出孔/映射器件性质(系统/学生)
0000H---2FFFH监控程序存储器系统*
3000H---3FFFH数据存储器系统*
4000H---7FFFH学生程序存储器系统*
8000H---CFDFHLCS0---LCS7学生
CFE0HPC机串行通讯芯片8250系统*
CFE8H显示、键盘芯片8279系统
CFA0H---CFA7HCS0系统
CFA8H---CFAFHCS1系统
CFB0H---CFB7HCS2系统
CFB8H---CFBFHCS3系统
CFC0H---CFC7HCS4系统
CFC8H---CFCFHCS5系统
CFD0H---FFFFHLCS0----LCS7学生
2、系统电源
该系统的电源提供了两种解决方案:
1)利用PC机的电源,可省去电源的费用,只需从PC机内引出一组电源,从CPU板的+5V、+12V、—12V电源插座中引入。
该电源具有短路保护。
2)外接开关电源,内置在实验箱里。
3、实验注意事项及要求:
(1)、实验前必须充分预习,完成预习任务。
预习要求如下:
●熟悉实验箱简介及相关注意事项。
●认真阅读本实验指导书,分析、掌握实验电路的工作原理,并进行必要的估算。
●复习与实验相关的课本内容。
●了解实验目的。
●了解实验中所用各仪器的使用方法及注意事项。
(2)、实验时接线要认真,在仔细检查,确定无误后应经由实验教师审查同意后才能接通电源。
请用质地柔软的布擦拭仪器和探头外部的浮尘。
清洁液晶显示屏时,注意不要划伤透明的LCD保护屏。
用潮湿但不滴水的软布擦试仪器,请注意断开电源。
可使用柔和的清洁剂或清水擦洗。
请勿使用任何磨蚀性的化学清洗剂,以免损坏仪器或探头。
警告:
在重新通电使用前,请确认仪器已经干透,避免因水分造成电气短路甚至人身伤害。
(3)、必须了解下列安全性预防措施,以避免受伤,并防止损坏实验教学仪器或与本实验教学仪器连接的任何实验教学仪器。
为避免可能的危险,请务必严格按照规定使用实验教学仪器。
用仪器和实验箱前必须牢记其性能、操作方法及注意事项:
a).避免起火和人身伤害。
b).使用正确的电源线。
只有使用所在国家认可的产品专用电源线。
c).为避免电击,接地导体必须与地相连。
在连接实验教学仪器的输入或输出端之前,请务必将实验教学仪器正确接地。
d).正确连接探头。
探头地线与地电势相同。
请勿将地线连接高电压。
e).查看所有终端额定值。
为避免起火和过大电流的冲击,请查看实验教学仪器上所有的额定值和标记说明,请在连接实验教学仪器前了解额定值的详细信息。
f).使用合适的保险丝。
只使用实验教学仪器指定的保险丝类型和额定指标。
g).请勿把仪器储存或放置在液晶显示器会长时间受到直接日照的地方。
小心:
请勿让喷雾剂、液体和溶剂沾到仪器或探头上,以免损坏仪器或探头。
(4)、请勿开盖操作。
外盖或面板打开时请勿运行实验教学仪器。
怀疑实验教学仪器出故障时,请勿进行操作。
如果您怀疑本实验教学仪器已经出故障,可请实验老师进行检查和维修。
实验时应注意观察,若发现有破坏性异常现象(例如有元件冒烟、发烫或有异味)应立即关断电源,保持现场,报告实验教师。
找到原因、排除故障,经实验教师同意再继续实验。
只有合格人员才能执行维修程序。
(5)、正确插拔所有连接线。
探头或测试导线连接到电压源时请勿插拔。
实验过程中需要改接线时,应关断电源后才能拆、接线。
连线时在保证接触良好的前提下应尽量轻插轻拔,检查电路正确无误后方可通电实验。
拆线时若遇到连线与孔连接过紧的情况,应用手捏住连线插头的塑料线端,左右摇晃,直至连线与孔松脱,切勿用蛮力强行拔出。
(6)、打开电源开关时指示灯必亮,若指示灯异常如不亮或闪烁说明电源未接入或实验电路接错致使电源短路,一旦发现指示灯闪烁应立即关断电源开关,检查实验电路,找到原因、排除故障,经指导实验教师同意再继续实验。
(7)、转动电位器时,切勿用力过猛,以免造成元件损坏。
避免电路外露。
电源接通后请勿接触外露的接头和元件。
请勿直接用手触摸芯片、电解电容等元件,更不可用蛮力推、拉、摇、压元器件,以免造成损坏。
(8)、实验过程中应仔细观察实验现象,认真记录实验结果(数据、波形、现象)。
所记录的实验结果经实验教师审阅后再拆除实验线路。
(9)、实验结束后,必须关断电源,并将仪器、设备、工具、导线等按规定整理好。
保持适当的通风。
请勿在潮湿环境下操作。
请勿在易燃易爆的环境下操作。
请保持表面的清洁和干燥。
(10)、实验后每个同学必须按要求独立完成老师要求完成的实验报告。
注意:
实验课开始至30分钟内,实验教学仪器和附件有损坏和缺失时,请即刻及时通知实验课老师。
实验二8051调试软件的安装与使用实验
1-1[实验目的要求]
a.掌握在PC机上8051调试软件的安装与使用的方法。
b.根据实验内容的描述,编写设计实验程序。
1-2[实验设备]
PC微机,EL-MUTIII,8051CPU模块
1-3[实验重点及原理内容]
(一)、DOS版软件使用
1、概述
CIDE8051集成开发环境是为开发8051程序而开发的多窗口源程序级开发调试软件。
它的多窗口技术为学生提供了一个极为友好而方便的人机界面。
使用起来得心应手。
它集编辑,编译,连接,调试于一体,极大地方便程序的修改及调试,提高了程序开发的效率。
2、软件的运行环境及安装启动
(1)、运行环境要求:
本系统提供两套菜单完全相同,功能完全相同的调试环境,一套是中文界面系统,一套是西文界面系统。
中文界面系统要求运行环境:
PC系列微机,640K内存(占用500K),VGA显示卡,DOS3.3以上操作系统,2M以上硬盘。
西文界面系统要求运行环境:
PC系列微机,512K内存,双频单显或CGA或EGA显示器,DOS3.3以上操作系统,1.44单软或1.2双软。
(2)、软件的组成:
DB51.EXE集成开发程序(ASM语言调试环境)。
(ASM也是汇编语言程序的扩展名)
ASM51.EXE8051汇编程序
RL51.EXE8051连接程序
OH.EXE十六进制转换文件
TP.EXE文本处理文件
CCLIB.DAT汉字库。
LEAVES.PCX集成环境封面。
SYMBLE.EXE符号化程序。
(3)、系统的安装:
将标有DB51的软盘拷入已建好的DB51子目录中。
(4)、系统的启动:
在DOS提示符*:
DB51〉下,运行DB51即可。
(5)、系统运行结果:
运行DB51,启动编译、连接菜单后,如果编译、连接没有错误,将生成几个具有以下后缀的文件:
源文件前缀.OBJ编译后生成的目标文件
源文件前缀.LST机器代码与源文件对照列表文件,如果编译时有错误,可打开此文件详细查看错误指示。
工程文件前缀.M51连接后的符号对应表及连接后的错误报告。
工程文件前缀.EOB实验系统调试的下载文件
源文件前缀.EPR烧写EPROM(可擦除可编程ROM)的烧录文件
3、软件使用扼要
使用本系统进行8051程序开发的步骤:
*首先用编辑器编辑好源程序,然后进入本系统。
按以下步骤进行程序的开发调试:
*建立一个工程文件,将所包含的源文件全称加入到工程文件中,每个源文件最大长度
为64KB;
*在[选项]中设定好编译及连接参数,在连接参数中可包含其他已编译的OBJ文件;
通过编译菜单项编译源文件,若有错误(系统中有错误信息显示),通过文件菜单项中的
编辑菜单对文件进行编辑修改;
*通过编译菜单项中的连接文件,生成调试文件;
*通过运行菜单项中的调试菜单项或热键进行程序的调试,同时可打开各窗口来辅助
调试包括寄存器窗口,内存窗口及观察窗口。
1-5[实验步骤及说明]
(1)、利用PE2或EDIT(是给用户针对汇编程序提供的一种简单的行编辑器)或其它编辑软件,编好一个名为T1.ASM的源程序。
(2)、启动DB51,选择串行口,波特率并确认,复位实验系统进行通讯连接,连接通过后将工程文件菜单激活,选中打开菜单项,键入工程文件名T11.PRJ,按“ENTER”确认。
(3)、用“INSERT”键给T11.PRJ输入源文件,弹出源文件窗口后,击打“ENTER”键,移动上、下光标键,寻找T1.ASM,按“ENTER”键确认,如果选择错误,可用“DELETE”键删除该源文件,用“INSERT”键重新输入。
(4)、按“F9”键,编译并连接该工程文件,编译时将出现信息窗口,如果有错误查看T1.LST文件,记录错误信息,击活文件菜单,选中编辑文件菜单选,对T1.ASM进行修改,修改后返回主介面,再按“F9”键。
如果编译无错误,按任何键将进入连接,连接如果有错误查看T11.M51文件,记录错误信息,错误修改同上,如果没有错误,则进入下一步。
(5)、按动“F8”,将弹出源程序窗口。
(6)、打开寄存器或内存窗口,观察程序运行的结果。
(7)、DB51运行过程中错误信息的解释。
“找不到EOB文件”:
这表示该工程文件未编译或工程文件不合法。
“通讯错误,请复位系统”:
这表示DB51在与实验系统进行数据通讯时,通讯出现异常,须重新建立通讯过程。
内存溢出“outofmemory",由于PC机内存管理出错,可能是有病毒。
实验二附:
P1口
一、实验目的:
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块
三、实验内容:
1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验原理:
P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。
先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下:
MOVR7,#X
(1)
DEL1:
MOVR6,#200
(2)
DEL2:
DJNZR6,DEL2(3)
DJNZR7,DEL1(4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:
1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶
指令
(1)指令
(2)指令(3)指令(4)
所需时间所需时间所需时间所需时间
X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH
经计算得X=127。
代入上式可知实际延时时间约为0.100215s,已经很精确了。
五、实验原理图:
P1口输出实验
P1口输入实验
六、实验步骤:
执行程序1(T1_1.ASM)时:
P1.0~P1.7接发光二极管L1~L8。
执行程序2(T1_1.ASM)时:
P1.0~P1.7接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。
七、程序框图:
循环点亮发光二极管
通过发光二极管将P1口的状态显示
八、参考程序:
1、循环点亮发光二极管(T1_1.ASM)
NAMET1_1;P1口输实验
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
MOVA,#0FEH
LOOP:
RLA;左移一位,点亮下一个发光二极管
MOVP1,A
LCALLDELAY;延时0.1秒
JMPLOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:
MOVR1,#127;延时0.1秒
DEL1:
MOVR2,#200
DEL2:
DJNZR2,DEL2
DJNZR1,DEL1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END
2、通过发光二极管将P1口的状态显示(T1_2.ASM)
NAMET1_2;P1口输入实验
OUT_PORTEQU0CFA0H
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
MOVP1,#0FFH;复位P1口为输入状态
MOVA,P1;读P1口的状态值入累加器A
MOVDPTR,#OUT_PORT;将输出口地址赋给地址指针DPTR
MOVX@DPTR,A;将累加器A的值赋给DPTR指向的地址
JMPSTART;继续循环监测端口P1的状态
END
实验三简单I/O口扩展实验二
一、实验目的:
1.学习在单片机系统中扩展简单I/O口的方法。
2.学习数据输入,输出程序的编制方法。
二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块
三、实验原理:
MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是有限的。
若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。
程序中加了一段延时程序,以减少总线口读写的频繁程度。
延时时间约为0.01秒,不会影响显示的稳定。
四、实验内容:
利用74LS244做为输入口,读取开关状态,并将此状态通过发光二极管显示出来。
注:
74LS244为3态8位缓冲器,一般用作总线驱动器。
74LS244没有锁存的功能。
地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。
8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。
五、实验原理图:
简单I/O实验3
六、实验步骤:
1.74LS244的IN0~IN7接开关的K1~K8,片选信号CS244接CS1。
2.74LS273的O0~O7接发光二极管的L1~L8,片选信号CS273接CS2。
3.编程、全速执行。
4.拨动开关K1~K8,观察发光二极管状态的变化。
七、程序框图:
8、编制程序并结合EL-MUT-III试运行。
参考程序:
T3.ASM
NAMET4;I/O口扩展实验
CSEGAT0000H
LJMPSTART
CSEGAT4100H
INPORTEQU0CFA8H;74LS244端口地址
OUTPORTEQU0CFB0H;74LS273端口地址
START:
MOVDPTR,#INPORT
LOOP:
MOVXA,@DPTR;读开关状态
MOVDPTR,#OUTPORT
MOVX@DPTR,A;显示开关状态
MOVR7,#10H;延时
DEL0:
MOVR6,#0FFH
DEL1:
DJNZR6,DEL1
DJNZR7,DEL0
JMPSTART
END
实验四中断实验
———有急救车的交通灯控制实验
一、实验目的:
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块
三、实验内容:
在实验三的内容的基础上增加允许急救车优先通过的要求。
当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。
本实验以单脉冲为中断申请,表示有急救车通过。
四、实验原理:
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。
第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。
因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。
还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:
MOVA,#0F0H(0)
MOVX@R1,A
(1)
MOVSAVE,A
(2)
程序如果正好执行到
(1)时发生中断,则转入中断程序,