单片机实验指导.docx
- 文档编号:9461680
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:71
- 大小:790.76KB
单片机实验指导.docx
《单片机实验指导.docx》由会员分享,可在线阅读,更多相关《单片机实验指导.docx(71页珍藏版)》请在冰豆网上搜索。
单片机实验指导
实验指导书
山东英才学院
计算机电子信息工程学院
目录
第一部分系统介绍3
一、整机介绍3
二、系统特点3
三、8051单元概述4
第二部分8051调试软件的使用7
一、主窗口简介7
二、编辑程序8
三、编译调试8
第三部分基本试验9
实验一P1口实验9
实验
(一)P1口实验一9
实验
(二)P1口实验二12
实验二简单I/O口扩展实验15
实验
(一)简单I/O口扩展实验一15
实验
(二)简单I/O口扩展实验二18
实验三中断实验20
实验四定时器实验24
*实验五8255A可编程并行接口实验27
*实验
(一)8255A可编程并行接口实验一27
*实验
(二)8255A可编程并行接口实验二29
实验六数码显示实验35
实验七D/A转换实验41
实验八A/D转换实验46
实验九存储器扩展实验50
实验十LCD显示实验52
第一部分系统介绍
一、整机介绍
1、EL型微机教学实验系统结构
EL-MUT-III型微机教学实验系统由电源、系统板、CPU板、可扩展的实验模板、微机串口通讯线、JTAG通讯线及通用连接线组成。
系统板的结构简图见下图。
二、系统特点
EL-MUT-III型微机/单片机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。
旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。
系统具有以下特点:
1、CPU可选用80C31、8086、80C196中任一种CPU,系统功能齐全,涵盖了微机/单片机教学实验课程的大部分内容。
2、系统采用开放式模块化结构设计,通过两组相对独立的总线最多可同时扩展2块应用实验板,用户可根据需要购置相应实验板,降低了成本,提高了灵活性,便于升级换代。
3、配有两块可编程器件:
EPM7128被系统占用。
另一块EPM7032供用户实验用。
两块器件皆可通过JTAG接口在线编程。
使用十分方便。
4、灵活的电源接口:
配有PC机电源插座,可由PC提供电源。
另外还配有外接开关电源,提供所需的+5V,±12V,其输入为220V的交流电。
5、系统的联机运行模式:
配有系统调试软件,系统调试软件分DOS版和WINDOWS版两种,均为中文多窗口界面。
调试程序时可以同时打开寄存器窗口、内存窗口、变量窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。
该软件集源程序编辑、编译、链接、调试与一体,每项功能均为中文下拉菜单,简明易学。
经常使用的功能均备有热键,这样可以提高程序的调试效率。
8051调试软件不仅支持汇编语言,而且还支持C语言编辑调试。
6、系统的单机运行模式:
系统在没有与计算机连接的情况下,自动运行在单机模式,在此模式下,用户可通过键盘输入运行程序(机器码),和操作指令,同时将输入信息及操作的结果在LED数码管上显示出来。
7、系统功能齐全,可扩展性强。
本实验系统不仅完全能满足教学大纲规定的基本接口芯片实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为用户开放)亦能轻松满足其课程设计、毕业设计使用等。
三、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)、交通灯控制实验
(8)、8259中断实验
(10)、A/D转换实验
(11)、D/A转换实验
(12)、存储器扩展实验
用户I/O区
FFFFH
系统I/O区
CFEFH
用户I/O区
CFBFH
RAM2
用户实验程序区
供用户下载实验
程序
FFFH
RAM1
用户实验程序
数据区
4FFFH
ROM
系统监控程序区
2FFFH
0000H
图1:
存储器系统组织图
中断名称8051原中断程序入口用户实验程序响应程序入口
外中断00003H4003H
定时器0中断000BH400BH
外中断10013H4013H
定时器1中断001BH401BH
串行口中断0023H4023H
表1-1:
用户中断程序入口表
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用户
注:
系统地址中,除带“*”用户既不可用,也不可改外,其他系统地址用户可用但不可改。
表1—2:
CPLD地址分配表
第二部分8051调试软件的使用
一、主窗口简介
主窗口共有以下几个区域组成:
最上部为此集成开发环境的程序名称及打开的文件名称(当没有文件打开时,则无文件名称显示),一般为蓝底白字。
它的下部为主菜单,主菜单的项目与工作状态有关:
当没有文件打开或运行时,只有三项:
文件、查看、帮助。
而当有文件打开时,则共有九项:
文件、编辑、查看、编译、调试、控制对象、选项、窗口、帮助(主菜单的功能见功能详解)。
在主菜单的下部为工具栏,自左至右为:
新建C文件(
)、新建汇编文件(
)、打开(文件)(
)、文件保存(存盘)(
)、剪切(
)、复制(
)、粘贴(
)、C程序编译命令(Ctrl+F7)(
)、C程序连接命令(Shift+F7)(
)、C程序编译连接命令(F3)(
)、汇编命令(F3)(
)、开始调试(F5)(
)、停止调试[Shift+F5](
)、程序复位[Ctrl+F2](
)、设置/清除断点[Ctrl+F8](
)、跟踪调试[F7](
)、单步执行[F8](
)、执行到光标行[F4](
)、运行[F9](
)、反汇编窗口[Alt+5](
)、寄存器窗口[Alt+2](
)、内部数据存储器窗口[Alt+3](
)、外部数据存储器窗口[Alt+4]、帮助(
)这些工具并不是同时有效。
在主界面的中央的大面积区域为文件的编辑区,可打开汇编文件、C文件及其他形式的文本文件。
在主界面的下部为状态栏,最左边为命令/提示栏,显示当前正在执行的命令或工作状态,当光标指向一个按钮时,此栏也显示此按钮的功能。
第二栏为光标在编辑区域中所处的行、列位置,右边的两栏分别显示当前键盘字母键的大/小写状态及小键盘的状态(数字/命令)
二、编辑程序
主窗口下。
在“文件”中选择“新建”菜单,可进行C语言编辑或汇编语言编辑。
也可以选择“打开”,打开现有的实验程序(选择后缀.ASM或.C,可分别打开汇编语言程序和C语言实验程序)。
三、编译调试
程序编辑完成后,即可进行编译调试。
主菜单中有“编译”栏,可对当前文件进行编译。
“调试”栏可进行系统复位及其他调试手段。
“选项”栏“通讯串口选项”可进行通讯口设置。
“查看”栏可打开内存、外存、寄存器等窗口,通过修改存储器地址可查看不同地址区的内容,也可以对其进行修改。
第三部分基本试验
实验一P1口实验
实验
(一)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、循环点亮发光二极管
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口的状态显示
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
实验
(二)P1口实验二
一、实验目的:
1.学习P1口既做输入又做为输出的使用方法。
2.学习数据输入、输出程序的设计方法。
二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块
三、实验原理:
P1口的使用方法这里不讲了。
有兴趣者不妨将实验例程中的“SETBP1.0,SETBP1.1”中的“SETB”改为“CLR”看看会有什么结果。
另外,例程中给出了一种N路转移的常用设计方法,该方法利用了JMP@A+DPTR的计算功能,实现转移。
该方法的优点是设计简单,转移表短,但转移表大小加上各个程序长度必须小于256字节。
四、实验原理图:
P1口输入、输出实验
五、实验步骤:
平推开关的输出K1接P1.0;K2接P1.1;
发光二极管的输入L1接P1.2;L2接P1.3;L5接P1.4;L6接P1.5。
运行实验程序,K1做为左转弯开关,K2做为右转弯开关。
L5、L6做为右转弯灯,L1、L2做为左转弯灯。
结果显示:
1:
K1接高电平K2接低电平时,右转弯灯(L5、L6)灭,左转弯灯(L1、L2)以一定频率闪烁;
2:
K2接高电平K1接低电平时,左转弯灯(L1、L2)灭,右转弯灯(L5、L6)以一定频率闪烁;
3:
K1、K2同时接低电平时,发光二极管全灭;
4:
K1、K2同时接高电平时,发光二极管全亮。
六、参考程序:
NAMET2;P1口输入输出实验
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
SETBP1.0
SETBP1.1;用于输入时先置位口内锁存器
MOVA,P1
ANLA,#03H;从P1口读入开关状态,取低两位
MOVDPTR,#TAB;转移表首地址送DPTR
MOVCA,@A+DPTR
JMP@A+DPTR
TAB:
DBPRG0-TAB
DBPRG1-TAB
DBPRG2-TAB
DBPRG3-TAB
PRG0:
MOVP1,#0FFH;向P1口输出#0FFH,发光二极管全灭
;此时K1=0,K2=0
JMPSTART
PRG1:
MOVP1,#0F3H;只点亮L5、L6,表示左转弯
ACALLDELAY;此时K1=1,K2=0
MOVP1,#0FFH;再熄灭0.5秒
ACALLDELAY;延时0.5秒
JMPSTART
PRG2:
MOVP1,#0CFH;只点亮L7、L8,表示右转弯
ACALLDELAY;此时K1=0,K2=1
MOVP1,#0FFH;再熄灭0.5秒
ACALLDELAY
JMPSTART
PRG3:
MOVP1,#00H;发光二极管全亮,此时K1=1,K2=1
JMPSTART
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:
MOVR1,#5;延时0.5秒
DEL1:
MOVR2,#200
DEL2:
MOVR3,#126
DEL3:
DJNZR3,DEL3
DJNZR2,DEL2
DJNZR1,DEL1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END
七、程序框图:
实验二简单I/O口扩展实验
实验
(一)简单I/O口扩展实验一
——交通灯控制实验
一、实验目的:
1.学习在单片机系统中扩展简单I/O接口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯控制的实现方法。
二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块
三、实验内容:
扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。
四、实验原理:
要完成本实验,首先必须了解交通路灯的亮灭规律。
本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。
而交通灯的亮灭规律为:
初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
五、实验原理图
六、实验步骤:
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO,此时74LS273的片选地址为CFA0H~CFA7H之间任选。
运行实验程序,观察LED显示情况是否与实验内容相符。
七、程序框图:
八、参考程序:
T3.ASM
NAMET3;I/O口扩展实验一
PORTEQU0CFA0H;片选地址CS0
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
MOVA,#11H;两个红灯亮,黄灯、绿灯灭
ACALLDISP;调用273显示单元(以下雷同)
ACALLDE3S;延时3秒
LLL:
MOVA,#12H;东西路口绿灯亮;南北路口红灯亮
ACALLDISP
ACALLDE10S;延时10秒
MOVA,#10H;东西路口绿灯灭;南北路口红灯亮
ACALLDISP
MOVR2,#05H;R2中的值为黄灯闪烁次数
TTT:
MOVA,#14H;东西路口黄灯亮;南北路口红灯亮
ACALLDISP
ACALLDE02S;延时0.2秒
MOVA,#10H;东西路口黄灯灭;南北路口红灯亮
ACALLDISP
ACALLDE02S;延时0.2秒
DJNZR2,TTT;返回TTT,使东西路口黄灯闪烁五次
MOVA,#11H;两个红灯亮,黄灯、绿灯灭
ACALLDISP
ACALLDE02S;延时0.2秒
MOVA,#21H;东西路口红灯亮;南北路口绿灯亮
ACALLDISP
ACALLDE10S;延时10秒
MOVA,#01H;东西路口红灯亮;南北路口绿灯灭
ACALLDISP
MOVR2,#05H;黄灯闪烁五次
GGG:
MOVA,#41H;东西路口红灯亮;南北路口黄灯亮
ACALLDISP
ACALLDE02S;延时0.2秒
MOVA,#01H;东西路口红灯亮;南北路口黄灯灭
ACALLDISP
ACALLDE02S;延时0.2秒
DJNZR2,GGG;返回GGG,使南北路口;黄灯闪烁五次
MOVA,#03H;两个红灯亮,黄灯、绿灯灭
ACALLDISP
ACALLDE02S;延时0.2秒
JMPLLL;转LLL循环
DE10S:
MOVR5,#100;延时10秒
JMPDE1
DE3S:
MOVR5,#30;延时3秒
JMPDE1
DE02S:
MOVR5,#02;延时0.2秒
DE1:
MOVR6,#200
DE2:
MOVR7,#126
DE3:
DJNZR7,DE3
DJNZR6,DE2
DJNZR5,DE1
RET
DISP:
MOVDPTR,#PORT;273显示单元
CPLA
MOVX@DPTR,A
RET
END
实验
(二)简单I/O口扩展实验二
一、实验目的:
1.学习在单片机系统中扩展简单I/O口的方法。
2.学习数据输入,输出程序的编制方法。
二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块
三、实验原理:
MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是有限的。
若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。
程序中加了一段延时程序,以减少总线口读写的频繁程度。
延时时间约为0.01秒,不会影响显示的稳定。
四、实验内容:
利用74LS244做为输入口,读取开关状态,并将此状态通过发光二极管显示出来。
五、实验原理图:
简单I/O实验2
六、实验步骤:
1.74LS244的IN0~IN7接开关的K1~K8,片选信号CS244接CS1。
2.74LS273的O0~O7接发光二极管的L1~L8,片选信号CS273接CS2。
3.编程、全速执行。
4.拨动开关K1~K8,观察发光二极管状态的变化。
七、程序框图:
八、参考程序:
NAMET4;I/O口扩展实验
CSEGAT0000H
LJMPSTART
CSEGAT4100H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导
![提示](https://static.bdocx.com/images/bang_tan.gif)