实验题目及要求.docx
《实验题目及要求.docx》由会员分享,可在线阅读,更多相关《实验题目及要求.docx(15页珍藏版)》请在冰豆网上搜索。
![实验题目及要求.docx](https://file1.bdocx.com/fileroot1/2023-7/24/2132e165-180b-492b-b12d-aa833fd55344/2132e165-180b-492b-b12d-aa833fd553441.gif)
实验题目及要求
实验一KeilC软件的使用和程序调试(2学时)
一、实验目的:
1.学习Keilc软件的项目、文件的建立。
2.掌握在KeilC环境下,程序的调试和下载方法。
3.基于实验箱,掌握I/O口的应用和扩展方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
1.熟悉KeilC的程序设计和编译环境;
2.基于键盘和LED静态显示电路,在KeilC环境下完成汇编或C程序的设计和编译;
3.基于实验箱,完成对P1口的操作。
四、实验原理:
()自己补充
五、实验步骤:
实验二Proteus软件的使用和原理图的设计(2学时)
一、实验目的:
1.学习Proteus软件,元器件的制作、原理图的绘制。
2.掌握在Proteus软件环境下,设计矩阵式键盘和静态显示电路的最小系统。
3.基于实验箱和实验一的程序,完成程序的调试和硬件电路的验证。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
1.熟悉Proteus软件;
2.设计矩阵式键盘和静态显示电路的最小单片机系统。
3.基于89C51单片机的串行口,完成动态显示电路的设计,并显示自己的学号,如:
05064302
四、实验原理:
()自己补充
五、实验步骤:
实验三 简单I/0口扩展实验——交通灯控制实验
一、实验目的:
1.学习在单片机系统中扩展简单I/0接口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯控制的实现方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
扩展实验箱上的74LS273Z做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。
四、实验原理:
要完成本实验,首先必须了解交通路灯的亮灭规律。
本实验需要到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。
而交通等的亮灭规律为:
初始态是两个路口的红灯全亮,之后,东西路口绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
五、实验步骤:
74LS273的输出00~07接发光二极管L1~L8,74LS273的片选CS273接片选信号CS0。
实验四LCD显示实验(2学时)
一、实验目的:
学习液晶显示的编程方法,了解液晶显示模块的工作原理。
掌握液晶显示模块与单片机的接口方法。
学习和掌握8255扩展通用I/O的方法。
基于扩展I/O口,实现LCD显示器的控制。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
在掌握8255扩展I/O口的基础上,实现LCD的显示,并显示“中北大学1105064102姓名”。
二、所需设备
EL-MUT-III型单片机实验箱、8051CPU模块
三、实验内容
编程实现在液晶显示屏上显示中文汉字“中北电信1班×××××”。
四、实验原理说明
LCD显示电路
点阵式LCD显示电路是在系统板上外挂电正式液晶显示模块,模块的数据线、状态、控制线都通过插孔引出。
可直接与系统相连。
1、OCMJ2×8液晶模块介绍及使用说明
OCMJ中文模块系列液晶显示器内含GB231216*16点阵国标一级简体汉字和ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或ASCII码即可实现文本显示。
也可用作一般的点阵图形显示器之用。
提供位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。
完全兼容一般的点阵模块。
OCMJ中文模块系列液晶显示器可以实现汉字、ASCII码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。
本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。
一改传统的使用大量的设置命令进行初始
引脚
名称
方向
说明
引脚
名称
方向
说明
1
VLED+
I
背光源正极(LED+5V)
8
DB1
I
数据1
2
VLED-
I
背光源负极(LED-OV)
9
DB2
I
数据2
3
VSS
I
地
10
DB3
I
数据3
4
VDD
I
(+5V)
11
DB4
I
数据4
5
REQ
I
请求信号,高电平有效
12
DB5
I
数据5
6
BUSY
O
应答信号=1:
已收到数据并正在处理中
=0:
模块空闲,可接收数据
13
DB6
I
数据6
7
DB0
I
数据0
14
DB7
I
数据7
1)表—1:
OCMJ2X8(128X32)引脚说明
化的方法,OCMJ中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”。
同时保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。
规划整齐的10个用户接口命令代码,非常容易记忆。
标准用户硬件接口采用REQ/BUSY握手协议,简单可靠。
硬件接口
接口协议为请求/应答(REQ/BUSY)握手方式。
应答BUSY高电平(BUSY=1)表示OCMJ忙于内部处理,不能接收用户命令;BUSY低电平(BUSY=0)表示OCMJ空闲,等待接收用户命令。
发送命令到OCMJ可在BUSY=0后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ信号(REQ=1)通知OCMJ请求处理当前数据线上的命令或数据。
OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY=0?
),如果BUSY=0,表明模块对用户的写操作已经执行完毕。
可以再送下一个数据。
如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY高电平(BUSY=1)持续时间较长,具体的时序图和时间参数说明查阅相关手册。
用户命令
用户通过用户命令调用OCMJ系列液晶显示器的各种功能。
命令分为操作码及操作数两部分,操作数为十六进制。
共分为3类10条。
分别是:
一)、字符显示命令:
1、显示国标汉字;
2、显示8X8ASCII字符;
3、显示8X16ASCII字符;
二)、图形显示命令:
4、显示位点阵;
5、显示字节点阵;
三)、屏幕控制命令:
6、清屏;
7、上移;
8、下移;
9、左移;
10、右移;
(以下所示取值范围分别为:
2X8、4X8、5X10的取值范围)
1)显示国标汉字
命令格式:
F0XXYYQQWW
该命令为5字节命令(最大执行时间为1.2毫秒,Ts2=1.2mS),其中
XX:
为以汉字为单位的屏幕行坐标值,取值范围00到07、02到09、00到09
YY:
为以汉字为单位的屏幕列坐标值,取值范围00到01、00到03、00到04
QQWW:
坐标位置上要显示的GB2312汉字区位码
2)显示8X8ASCII字符
命令格式:
F1XXYYAS
该命令为4字节命令(最大执行时间为0.8毫秒,Ts2=0.8mS),其中
XX:
为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13
YY:
为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F
AS:
坐标位置上要显示的ASCII字符码
3)显示8X16ASCII字符
命令格式:
F9XXYYAS
该命令为4字节命令(最大执行时间为1.0毫秒,Ts2=1.0mS),其中
XX:
为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13
YY:
为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F
AS:
坐标位置上要显示的ASCII字符码
4)显示位点阵
命令格式:
F2XXYY
该命令为3字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中
XX:
为以1*1点阵为单位的屏幕行坐标值,取值范围00到7F、20到9F、00到9F
YY:
为以1*1点阵为单位的屏幕列坐标值,取值范围00到40、00到40、00到40
5)显示字节点阵
命令格式:
F3XXYYBT
该命令为4字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中
XX:
为以1*8点阵为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13
YY:
为以1*1点阵为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F
BT:
字节像素值,0显示白点,1显示黑点(显示字节为横向)
6)清屏
命令格式:
F4
该命令为单字节命令(最大执行时间为11毫秒,Ts2=11mS),其功能为将屏幕清空。
7)上移
格式:
F5
令为单字节命令(最大执行时间为25毫秒,Ts2=25mS),其功能为将屏幕向上移一个点阵行。
8)下移
命令格式:
F6
该命令为单字节命令(最大执行时间为30毫秒,Ts2=30mS),其功能为将屏幕向下移动一个点阵行。
9)左移
命令格式:
F7
该命令为单字节命令(最大执行时间为12毫秒,Ts2=12mS),其功能为将屏幕向左移动一个点阵行。
10)右移
命令格式:
F8
该命令为单字节命令(最大执行时间为12毫秒,Ts2=12mS),其功能为将屏幕向右移动一个点阵行。
显示窗口坐标关系
以上列表为汉字、ASCⅡ码显示屏幕坐标(ASCⅡ码Y坐标一点阵坐标为准)。
如显示图形点阵,则以128*64(OCMJ4X8)或128*32(OCMJ2X8)点阵坐标为准,可在屏幕任意位置显示。
2、OCMJ2×8液晶模块外部连接原理图及接口说明
图3–478051与OCMJ4X8模块连接图
模块上DB0~DB7插孔对应于位数据线;BUSY、REQ插孔分别对应于图中相应的引脚。
五、实验步骤
1、实验连线
8255的PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255接CS0。
2、运行实验程序T20.asm,观察液晶的显示状态。
六、程序框图
七、参考代码(显示“北京理工达盛科技有限公司”的代码)
PAEQU0CFA0H
PBEQU0CFA1H
PCCEQU0CFA2H
PCTLEQU0CFA3H
STOBE0EQU70H;PC0复位控制字
STOBE1EQU71H;PC0置位控制字
CSEGAT0000H
LJMPSTART
CSEGAT4100H
;----------------------------------------
START:
MOVDPTR,#PCTL
MOVA,#88H
MOVX@DPTR,A;置PA口输出,PC口高4位输入,低4位输出
MOVDPTR,#PCTL
MOVA,#STOBE0
MOVX@DPTR,A
MOVA,#0F4H
ACALLSUB2
ACALLDELAY;清屏
START1:
MOVR0,#01H
MOVR1,#3CH
HE1:
MOVDPTR,#PCC
MOVXA,@DPTR
JBACC.7,HE1
ACALLSUB1
ACALLSUB2
DJNZR1,HE1
ACALLDELAY
ACALLDELAY
ACALLDELAY
LJMPSTART1
;-------------------------------------------------------
DELAY:
MOVR2,#23H
DEL0:
MOVR4,#06FH
DEL1:
MOVR6,#06FH
DEL2:
DJNZR6,DEL2
DJNZR4,DEL1
DJNZR2,DEL0
RET
;-------------------------------------------------------
SUB2:
MOVDPTR,#PA
MOVX@DPTR,A
MOVDPTR,#PCTL
MOVA,#STOBE1
MOVX@DPTR,A
INCR0
HE2:
MOVDPTR,#PCC
MOVXA,@DPTR
JNBACC.7,HE2
MOVDPTR,#PCTL
MOVA,#STOBE0
MOVX@DPTR,A
RET
;-----------------------------------------
SUB1:
MOVA,R0;显示“北京理工达盛科技有限公司”
MOVCA,@A+PC
RET
DB0F0H,01D,00D,17D,17D,0F0H,02D,00D,30D,09D
DB0F0H,03D,00D,32D,77D,0F0H,04D,00D,25D,04D
DB0F0H,05D,00D,20D,79D,0F0H,06D,00D,42D,02D
DB0F0H,01D,01D,31D,38D,0F0H,02D,01D,28D,28D
DB0F0H,03D,01D,51D,48D,0F0H,04D,01D,47D,62D
DB0F0H,05D,01D,25D,11D,0F0H,06D,01D,43D,30D
END
实验五定时器应用程序设计与调试---循环彩灯实验(2学时)
一、实验目的:
1.学习8031内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编写方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
由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.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12.本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每个0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:
机器周期=12÷晶振频率=12/(6×10)=2us
设计数初值为X,则(2e+16-X)×2×10-6=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH4=3CH,TL1=AFH
2.初始化程序
包括定时器初始化和中断操作系统初始化,主要是对IP、IE、TCON、TMOD相应位进行正确的设施,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3.设计中断服务程序和主程序
中断服务程序除了要完成技术减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
五、实验电路:
六、实验步骤:
实验六中断应用程序设计与调试---有紧急事件的交通灯控制实验(2学时)
一、实验目的:
1.学习8031内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编写方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
由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.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12.本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每个0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:
机器周期=12÷晶振频率=12/(6×10)=2us
设计数初值为X,则(2e+16-X)×2×10-6=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH4=3CH,TL1=AFH
2.初始化程序
包括定时器初始化和中断操作系统初始化,主要是对IP、IE、TCON、TMOD相应位进行正确的设施,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3.设计中断服务程序和主程序
中断服务程序除了要完成技术减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
五、实验电路:
六、实验步骤: