东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx

上传人:b****5 文档编号:16212900 上传时间:2022-11-21 格式:DOCX 页数:68 大小:995.56KB
下载 相关 举报
东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx_第1页
第1页 / 共68页
东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx_第2页
第2页 / 共68页
东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx_第3页
第3页 / 共68页
东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx_第4页
第4页 / 共68页
东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx

《东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx》由会员分享,可在线阅读,更多相关《东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx(68页珍藏版)》请在冰豆网上搜索。

东华大学51单片机课程设计指导书硬件实验部分Word文件下载.docx

详细信息如表1-2所示。

表1—2:

CPLD地址分配表

地址范围输出孔/映射器件性质(系统/用户)

0000H---2FFFH监控程序存储器系统*

3000H---3FFFH数据存储器系统*

4000H---BFFFH用户程序存储器系统*

C000H---CF9FHLCS0~LCS7用户

CFE0HPC机串行通讯芯片8250系统*

CFE8H显示、键盘芯片8279系统

CFA0H---CFA7HCS0系统

CFA8H---CFAFHCS1系统

CFB0H---CFB7HCS2系统

CFB8H---CFBFHCS3系统

CFC0H---CFC7HCS4系统

CFC8H---CFCFHCS5系统

注:

系统地址中,除带“*”用户既不可用,也不可改外,其他系统地址用户可用但不可改。

二、仿真芯片资源介绍:

本实验采用仿真芯片代替实际的8051芯片,仿真芯片具有以下特点:

1、支持KeilC环境下的汇编、C;

2、完全仿真P0、P1、P2口;

3、可以设置单步全速断点运行方式;

4、可以查阅变量RAM、xdata等数据;

5、仿真器占用了单片机的串行口和定时器2的资源以及部分程序空间。

6、从0地址开始仿真。

用汇编时,注意中断矢量单元为标准设置(如:

外部中断0为0003H,T0溢出中断为000BH)。

三、实验箱面板布局:

第二部分软件说明

本次实验采用KeilC软件作为源代码的编辑、编译、调试工具。

其基本操作方法如下。

1、打开KeilC环境。

2、新建工程或打开工程文件:

在主菜单上选“Project”项,在下拉列表中选择“NewProject”新建工程,浏览保存工程文件为扩展名为“.Uv2”的文件。

或在下拉列表中选择“Openproject”打开已有的工程文件。

3、环境设置:

新建工程文件后,在工具栏中选择如下图选项设置调试参数及运行环境

,或从主菜单“Project”项中选择“OptionsforTarget‘Target1’”,打开如下图设置窗口。

在“Device”项下选择要仿真的芯片类型,如:

Generic–>

8051。

在“Target”项下的晶振设置中修改为硬件电路所用晶振频率,如:

6MHz。

选择合适存储模式。

在“Output”项下如在CreatHEXFile选项前打勾,则在编译的同时生成可下载执行的HEX文件,用仿真芯片仿真时可以不进行此项设置。

在“Debug”项下选择“Use:

KeilMoniter-51Driver”使用硬件仿真。

点击“Settings”按钮,进入串口选择及波特率设置窗口(如下图所示)。

选择合适的波特率及串口号。

“SerialInterrupt”项不可选,把前面的勾打掉。

点OK保存设置。

在“OptionforTarget‘Target1’”窗口中,点确定,退出环境设置。

4、新建文件:

在主菜单的“File”下拉列表中选“New…”新建文件。

编辑文件并保存文件。

文件保存为扩展名为“.C”或“.ASM”的文件。

5、添加文件:

在左边的“ProjectWindow”窗口中,用右键选取“SourceGroup1”,在弹出的列表中选择“AddFilestoGroup‘SourceGroup1”,弹出浏览窗口。

浏览添加编辑好的C或ASM文件。

添加完毕点“Close”,关闭窗口。

这时发现添加的文件名已出现在“ProjectWindow”窗口中。

双击刚添加的C或ASM文件。

打开编辑文件窗口。

7、译链接:

在“BuildBar”

工具条中,选第二项编译当前文件,第三项为编译全部。

编译完成,在下方“Output”窗口中出现编译结果。

7、仿真调试:

点击调试按钮

,或从主菜单选取调试“Start/StopDebguSessionCTRL+F5”(快捷键CTRL+F5),程序下载到仿真芯片中。

窗口下方显示下载进度条。

100%下载完成后出现如下窗口。

8、程序仿真:

运用运行“DebugBar”调试工具条

,进行单步、进入、跳出、运行到光标、全速运行等。

全速运行后,程序不受控。

如需再次单步调试,需点击调试工具

停止按钮,停止调试。

停止后,硬件复位仿真芯片,再次运行第7步。

第三部分基础实验

实验1P1口实验一

一、实验目的:

1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

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值:

0.256+X(1÷

0.256+200×

0.256+1÷

0.256)=0.1×

10⁶

指令

(1)指令

(2)指令(3)指令(4)

所需时间所需时间所需时间所需时间

X=(0.1×

×

10⁶-1÷

0.256)/(1÷

0.256+200×

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

MOVP1,#0FFH;

复位P1口为输入状态

MOVA,P1;

读P1口的状态值入累加器A

MOVDPTR,#OUT_PORT;

将输出口地址赋给地址指针DPTR

MOVX@DPTR,A;

将累加器A的值赋给DPTR指向的地址

JMPSTART;

继续循环监测端口P1的状态

END

思考题:

将P1口读入的开关状态用LED闪烁显示,闪烁的方式为每间隔一秒显示一次。

实验2P1口实验二

1.学习P1口既做输入又做为输出的使用方法。

2.学习数据输入、输出程序的设计方法。

三、实验原理:

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同时接高电平时,发光二极管全亮。

六、参考程序:

T2.ASM

NAMET2;

P1口输入输出实验

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:

向P1口输出#0FFH,发光二极管全灭

;

此时K1=0,K2=0

JMPSTART

PRG1:

MOVP1,#0F3H;

只点亮L5、L6,表示左转弯

ACALLDELAY;

此时K1=1,K2=0

MOVP1,#0FFH;

再熄灭0.5秒

延时0.5秒

PRG2:

MOVP1,#0CFH;

只点亮L7、L8,表示右转弯

此时K1=0,K2=1

ACALLDELAY

PRG3:

MOVP1,#00H;

发光二极管全亮,此时K1=1,K2=1

JMPSTART

MOVR1,#5;

MOVR3,#126

DEL3:

DJNZR3,DEL3

修改程序,使K1,K2接高电平时,所有发光二极管闪烁。

实验3简单I/O口扩展实验一

——交通灯控制实验

1.学习在单片机系统中扩展简单I/O接口的方法。

2.学习数据输出程序的设计方法。

3.学习模拟交通灯控制的实现方法。

扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。

要完成本实验,首先必须了解交通路灯的亮灭规律。

本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。

不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。

而交通灯的亮灭规律为:

初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。

五、实验原理图

74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO.

运行实验程序,观察LED显示情况是否与实验内容相符。

T3.ASM

NAMET3;

I/O口扩展实验一

PORTEQU0CFA0H;

片选地址CS0

MOVA,#11H;

两个红灯亮,黄灯、绿灯灭

ACALLDISP;

调用273显示单元(以下雷同)

ACALLDE3S;

延时3秒

LLL:

MOVA,#12H;

东西路口绿灯亮;

南北路口红灯亮

ACALLDISP

ACALLDE10S;

延时10秒

MOVA,#10H;

东西路口绿灯灭;

MOVR2,#05H;

R2中的值为黄灯闪烁次数

TTT:

MOVA,#14H;

东西路口黄灯亮;

ACALLDE02S;

延时0.2秒

东西路口黄灯灭;

DJNZR2,TTT;

返回TTT,使东西路口黄灯闪烁五次

两个红灯亮,黄灯、绿灯灭

延时0.2秒

MOVA,#21H;

东西路口红灯亮;

南北路口绿灯亮

延时10秒

MOVA,#01H;

南北路口绿灯灭

黄灯闪烁五次

GGG:

MOVA,#41H;

南北路口黄灯亮

南北路口黄灯灭

DJNZR2,GGG;

返回GGG,使南北路口;

MOVA,#03H;

JMPLLL;

转LLL循环

DE10S:

MOVR5,#100;

JMPDE1

DE3S:

MOVR5,#30;

DE02S:

MOVR5,#02;

DE1:

MOVR6,#200

DE2:

MOVR7,#126

DE3:

DJNZR7,DE3

DJNZR6,DE2

DJNZR5,DE1

DISP:

MOVDPTR,#PORT;

273显示单元

CPLA

MOVX@DPTR,A

RET

修改程序,要求将红绿灯控制循环中,红绿灯转换时,黄灯闪烁5次后的“红灯亮,黄、绿灯全灭”状态,改为“红绿灯全灭,东西、南北方向黄灯闪烁10次”。

实验4简单I/O口扩展实验二

1.学习在单片机系统中扩展简单I/O口的方法。

2.学习数据输入,输出程序的编制方法。

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,观察发光二极管状态的变化。

T4.ASM

NAMET4;

I/O口扩展实验

INPORTEQU0CFA8H;

74LS244端口地址

OUTPORTEQU0CFB0H;

74LS273端口地址

MOVDPTR,#INPORT

MOVXA,@DPTR;

读开关状态

MOVDPTR,#OUTPORT

显示开关状态

MOVR7,#10H;

延时

DEL0:

MOVR6,#0FFH

DJNZR6,DEL1

DJNZR7,DEL0

实验5中断实验

———有急救车的交通灯控制实验

1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

在实验三的内容的基础上增加允许急救车优先通过的要求。

当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。

本实验以单脉冲为中断申请,表示有急救车通过。

交通灯的燃灭规律见实验三。

本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。

要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:

一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。

第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。

因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。

还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:

MOVA,#0F0H(0)

MOVX@R1,A

(1)

MOVSAVE,A

(2)

程序如果正好执行到

(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOVA,SAVE指令,由于主程序中没有执行

(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将

(1)、

(2)两句顺序颠倒一下则没有问题。

发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。

(同实验三)

74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273\接片选信号CS2,此时74LS273的片选地址为CFB0H~CFB7H之间任选。

单脉冲输出端P-接CPU板上的INT0。

主程序框图中断程序框图

T5.ASM

NAMET5;

中断控制实验

端口地址

SAVEEQU55H;

save保存从端口cfa0输出的数据

CSEGAT0003H

LJMPINT

SETBIT0

SETBEX0

SETBEA

置首显示码

MOVSAVE,A;

保存

ACALLDISP;

显示输出

东西路口绿灯亮,南北路

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1