DP51PROMCU单片机实验指导书B.docx
《DP51PROMCU单片机实验指导书B.docx》由会员分享,可在线阅读,更多相关《DP51PROMCU单片机实验指导书B.docx(25页珍藏版)》请在冰点文库上搜索。
DP51PROMCU单片机实验指导书B
实验一单片机开发系统熟悉与开发
一、实验目的
1、了解DP-51PROC单片机综合仿真实验仪,SH51仿真器和烧录器等开发工具的使用。
2、学会单片机系统汇编程序开发、调试的一般过程。
二、实验内容
1、SH51仿真器外观
图1.1
2、DP一51PROC单片机综合仿真实验仪的电路布局如图所示。
图1.2
由图1.2可以看出,它分为多个功能块,各功能块之间是相对独立的,每个功能块都有一个编号,分别是竖数A~D,横数1~10。
可从编号快速地找到功能块所在的位置。
例如,c3功能块,就是第3行的第3个功能块,这样用户就能比较方便地找到对应的位置。
1.4主要功能块
DP-5lPROc单片机综合仿真实验仪上的功能块如表1.1所列。
表1.1DP-51PROC单片机综合仿真实验仪功能块及说明
编号
功能块名称
功能说明
A1
ISP下载电路
实现PHILIPS单片机的64KBFLASH的IsP下载编程功能。
另外,RS232串口通信实验也用这个功能块来进行,还可以接SH51仿真器。
A2
总线I/0扩展区
该扩展区主要功能足把单片机的各功能引脚引出来,方便用户选择使用各I/O口或单片机总线。
该扩展区还包含了一个74Hc573对单片机的PO口进行锁存,并扩展输出A0~A7总线地址。
A3
138译码电路区
该区包含一片74HC138译码芯片
A4
并转串实验区
该区包含一片74HC165并转串芯片
A5
串转并实验区
该区包含一片74HCl64串转并芯片
A6
PARKl
用于扩展连接各种扩展PARK模块,包括USBl.O,CAN-BUS、USB2O(选配)、以太网接口(选配),用于进行相关的实验。
它每次只能插接一个PARK模块
A7
PARK2
功能同A6区,DP-51PROC单片机综合仿真实验仪可同时在A6和A7区分别扩展一个PARK模块,同时进行两个PARK模块的实验。
比如:
A6区扩展USBl.0,A7区扩展CAN-BUS,这样用户就可进行USB转CAN-bus的桥接实验了
B1
B语音模块
该有一个ZLG1420A语音模块,还有麦克风和扬声器,用户可在上面进行语音录放实验
B2
非接触式IC卡读卡模块
该区有一个ZLG5130A非接触式IC卡读卡模块接口(ZLG500A模块为选配件)和相关的天线接口(天线也是选配件),用户可利用该接口进行非接触式IC卡的实验。
在该区迁有一个时钟源电路和8路分频输出接口。
B3
LCD模块
该区包含有一个LcD液晶模块,用户可选择128×64的点阵图形液晶模块(标配)或16×2的点阵字符液晶模块(选配)
B4
温度传感器区
该区包含一片DSl8B20单总线(1一WIRE)的数字温度传感器
B5
蜂鸣器区
该区包含一个交流蜂鸣器及其驱动电路,能够演奏乐曲
B6
PWM输出实验区
该区把用户提供的PWM信号转换成电压输出
B7
电压基准源电路
该区提供一个TL431精密可调电压基准源电路
B8
串行A/D实验区
该区包含有一片TLC5498位串行A/D转换器
B9
串行D/A实验区
该区包舍有一片TLC56208位4通道串行D/A转换器
B10
直流电机实验区
该区包含有一个可调速的直流电机及其驱动电路
C1
电源输出接口区
该区包含+5V、一12V、+12v电源接口,方便用户外接使用
C2
逻辑笔电路
该区是一个检查TTL|逻辑电平高低的逻辑笔,并可通过LED显示电平的高低状态
C3
16×16点阵LED模块
该区包含一个16×16点阵LED模块及其驱动电路
C4
运放实验区
该区包含一片LM324芯片
C5
电阻接口
该区为运算放大器提供电阻接口电路
C6
555实验区
该区包含一片555芯片及相关的电阻、电容接口电路
C7
继电器实验区
包含一个继电器及其驱动电路
C8
步进电机实验区
该区包含有个步进电机及其驱动电路
D1
I/O口实验区
该区分别包古8个独立的LED发光二极管、拨动开关、按键
D2
可调电阻区
该区包含一个10k和一个1k的可调电阻
D3
红外收发区
该区包含一个红外发射管和一个带解码的红外接收器
D4
RS485实验区
该区包含一片SP485芯片,用于RS485的电平驱动和数据收发
D5
I2C实验区
该区包古一片24WC02256字节的EEPROM、一片PCF8563实时时钟/日历芯片及外围电路、一片ZLG7290键盘LED驱动芯片及8段8位数码管和16个按键
D6
接触式Ic卡实验区
该区包含一个可连接SLE4442卡的读卡头
实验二数据传送
一、实验目的
1.进一步熟悉SH51仿真器的使用方法。
2.练习设计简单的程序。
3.掌握8031片内RAM和片外RAM的数据传送方法,从而了解这两部分存贮器的特点。
二、实验设备及器件
PC机一台
DP-51PROC单片机实验仪一台
SH51仿真器一台
三、实验内容
将8031内容RAM40H~4FH置初值00H~0FH,然后将40H~4FH内容传送到外部RAM的4800H~480FH,再将4800H~480FH传回内部RAM的50H~5FH。
设置断点B1、B2、B3每运行到断点时检查相应的CPU现场和存贮单元的内容。
四、实验步骤
1、向机器输入程序。
2、运行程序至第一个断点B1,检查40H~4FH单元内容及累加器A的内容。
3、运行程序至第二个断点B2,检查4800H~480FH单元内容及累加器A、数据指针DPTR的内容。
4、运行程序至第三个断点B3,检查50H~5FH单元内容及累加器A、数据指针DPTR的内容。
五、实验参考程序
ORG000H
START:
LJMPMAIN
ORG040H
MAIN:
MOVR0,#40H
MOVR2,#16
CLRA
A1:
MOV@R0,A
INCR0
INCA
DJNZR2,A1;
B1:
MOVR0,#40H
MOVDPTR,#4800H
MOVR2,#10H
A2:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR2,A2;
B2:
MOVR0,#50H
MOVDPTR,#4800H
MOVR2,#10H
A3:
MOVXA,@DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR2,A3
B3:
SJMP $
end
数据记录表格:
断点
40H~4FH
4800H~480FH
50H~5FH
A
R0
R2
DPTR
000
B1
B2
B3
五、实验报告要求
1、写出具有源程序和注解的程序清单。
2、将测得的数据填入表格,并和理论分析的结果相比较。
3、说明8031CPU对内部存贮器和外部扩展RAM存贮器各有哪些寻址方式?
4、说明指令MOVA,20H和MOVC,20H中的20H的含义有什么不同?
传送指令中的助记符MOV,MOCX,MOVC各适于访问哪个空间?
……………………….
实验三并行口
一、实验目的
通过实验了解8031并行口输入方式和输出方式的工作原理及编程方法。
二、实验设备及器件
PC机一台
DP-51PROC单片机实验仪一台
SH51仿真器一台
三、实验内容
1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮。
2.编写一段程序,用P1.0~P1.6口控制LED,P1.7口控制LED的亮和灭(P1.7口接按键,按下时LED亮,不按时LED灭)。
四、实验步骤
1.用导线把A2区的J61接口与D1区的J52接口相连。
原理如图3.2(a)所示。
2.先编写一个延时程序。
3.将LED轮流点亮的程序编写完整并调试运行。
4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LEDl~LED6相连,另外A2区J61接口的Pl.7与D1区J53的KEYl相连。
原理如图3.2(b)所示。
5.编写P1.7控制LED的程序,并调试运行(按下K1键看是否全亮)。
6.将A2区J61接口的P1.7与Dl区J54的SWl相连,然后再运行程序,查看结果。
3.2单片机I/O口实验原理图
五、实验预习要求
可先把程序编好,然后在VW环境下进行软件仿真。
六、实验参考程序
参考程序1
ORG000H
LJMPMain
ORG0100H
Main:
MOVA,#0FFH
CLRC
MainLoop:
CALLDelay
RLCA
MOVP1,A
SJMPMainLoop
Delay:
MOVR7,#0
Loop:
MOVR6,#0
DJNZR6,$
DJNZR6,$
DJNZR6,$
DJNZR7,Loop
RET
END
参考程序2
ORG0000H;
LJMPMain
ORG0100H;
Main:
JBP1.7,SETLED
CLRLED:
CLRP1.0
CLRP1.1
CLRP1.2
CLRP1.3
CLRP1.4
CLRP1.5
CLRP1.6
SJMPMain
SETLED:
SETBP1.0
SETBP1.1
SETBP1.2
SETBP1.3
SETBP1.4
SETBP1.5
SETBP1.6
SJMPMain
END
七、实验思考题
1、想出几十实现以上功能的编程方法,
*2、在程序2中,如果使用KEYl作为外部中断控制LED的亮和灭,则程序应如何修改?
实验四 定时器/中断
一、实验目的
1、掌握定时器的工作原理、工作方式、计数与定时
2、掌握定时器的使用方法和程序设计方法。
3、利用实验仪上提供的按键K1~K7作为电子琴按键,控制蜂鸣器发声-使用户了解计算机发声原理,熟悉定时器和键盘扫描电路的工作原理及编程方法。
二、实验设备及器件
PC机一台
DP-51PROC单片机实验仪一台
SH51仿真器一台
万用电表VC9805一台
三、实验内容
1.编写一段程序,用P3.3口控制(输出7种音阶标称频率的方波),使B5区的蜂鸣器发出不同的音调。
程序检测按键的状态,当按下某一键时,蜂鸣器发出对应的音调。
2.按照歌曲的音调,使用D1区的按键Kl~K7,弹奏一首简单的音乐。
四、实验步骤
1.用导线将A2区的P3.3口(INTl)和B5区的Buzz接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。
实验原理图如图3.4所示。
2.编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序,然后完成电子琴的主程序设计。
3.调试编写好的程序,使用频率计校准音阶的频率.然后使用键盘演奏一段好听的音乐。
图3.4电子琴实验实验原理图
五、实验参考程序
BUZZEQUP3.3
ORG0000H
LJMPMAIN
ORG000BH
LJMPINT_T0
ORG0100H
MAIN:
MOVSP,#60H;初始化堆栈向量
MOV30H,#00;定时器初值清零
MOV31H,#00
MOVP1,#0FFH;设置P1口为输入模式
MOVTMOD,#01H;设置定时器0为工作模式1
SETBET0;开定时器0中断
SETBEA;开总中断
CLRTR0;关闭定时器0
START:
MOVR0,P1
CJNER0,#0FFH,KEY1;键盘扫描
CLRTR0
SJMPSTART
KEY1:
CJNER0,#0FEH,KEY2;K1键按下
MOV30H,#0FBH;设置音阶1
MOV31H,#0E9H
LJMPSET_TIMER
KEY2:
CJNER0,#0FDH,KEY3;K2键按下
MOV30H,#0FCH;设置音阶2
MOV31H,#5CH
LJMPSET_TIMER
KEY3:
CJNER0,#0FBH,KEY4;K3键按下
MOV30H,#0FCH;设置音阶3
MOV31H,#0C1H
LJMPSET_TIMER
KEY4:
CJNER0,#0F7H,KEY5;K4键按下
MOV30H,#0FCH;设置音阶4
MOV31H,#0EFH
LJMPSET_TIMER
KEY5:
CJNER0,#0EFH,KEY6;K5键按下
MOV30H,#0FDH;设置音阶5
MOV31H,#045H
LJMPSET_TIMER
KEY6:
CJNER0,#0DFH,KEY7;K6键按下
MOV30H,#0FDH;设置音阶6
MOV31H,#92H
LJMPSET_TIMER
KEY7:
CJNER0,#0BFH,NOKEY;K7键按下
MOV30H,#0FDH;设置音阶7
MOV31H,#0D6H
SET_TIMER:
SETBTR0;发声
SJMPSTART
NOKEY:
CLRTR0;无键按下
SJMPSTART
INT_T0:
;T0中断服务程序
MOVTH0,30H;定时器附初值
MOVTL0,31H
CPLBUZZ;输出方波
RETI
END
六、实验说明
1、利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。
2、定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。
由于定时参数不同,就发出了不同频率的脉冲。
本实验中当有键按下,会发出连续脉冲,直到按键松开,才停止发音。
发完后继续检测键盘,如果键还按下,继续发音。
各音阶标称频率值:
音阶
1
2
3
4
5
6
7
频率(HZ)
261.1
293.7
329.6
349.2
392.0
440.0
493.9
七、思考题
1、请思考实验是怎样在硬件与软件上实现发声的?
2、本程序中断子程序的调用是怎样进行的?
实验五显示器/键盘
一、实验目的
1、了解显示器的结构和工作原理。
2、掌握显示程序的设计方法。
3、学会查表程序的编写方法。
4、掌握键盘工作原理和程序设计方法
二、实验器材
PC机,DP-51PROC实验仪,SH51仿真器,键盘实验板
图5-1键盘实验板电路图
三、编程提示
1、如图所示,采用发光二极管(LED)显示器作为输出。
LED显示器由七段a~g组成一个字符,每段是一个发光二极管。
如图5-1所示的共阴极接法中,只要在a~g相应输入端加上高电平,公共端K上加上低电平,就点亮相应的发光二极管段。
图规定了段码所占的数据位。
例如,段码3FH显示的字型是字符0,段码79H显示的字形是字符E,……。
图5-2LED结构及外形图
要显示6位数码,就必须有6个LED显示器。
哪一位为低电平,哪一位LED显示器被点亮。
本实验用8155的PB口和PA口分别作为字形和字位的输出口,,它们的地址分别为7F02H和7F01H,内部命令/状态寄存器地址为7F00H。
工作方式命令字设为03H,使8155的PA、PB口工作于输出方式,PC口工作于输入方式。
为了存放欲显示的6个数码,必须在存贮器中开辟一个显示缓冲区,首地址存放显示器最左端的显示值。
此外 存贮器中开辟一个字模表,里面放有欲显示的数字、字母或其它字符的相应段码。
程序从显示缓冲区取出要显示的数码值,由其值从字模表中得到要显示数的段码,并输出至显示器各段发光二极管。
随后输出显示位指针(从最左端开始),选择一个LED显示器工作,为显示下一位,修改缓冲区指针及显示位指针。
如此进行,直至最右端。
当需要同时显示多个字符时,逐次把字符显示在规定的字位上。
在每点亮一个显示器后稍延迟一段时间,(例如1ms),使之发光稳定,然后顺序点亮另外的显示器。
这样巡回扫描显示,速度很快,每秒可重复多次,虽然在同一时刻只有一个显示器工作,但利用人眼的视觉暂留效应和发光二极管灭时的余辉效应,我们看到的都是稳定的多个字符同时显示。
调整延时时间的长短,可以使显示器达到最大亮度和稳定性。
2、编写查表程序,可以将表格常数设置在64K字节程序存贮器的任何地址空间,选用数据指针DPTR作基址寄存器,将表首地址送入DPTR,然后再将需查访表的项数送入累加器A,最后用MOVC A,@A+DPTR指令将查访表中相应项的内容送累加器A中。
这样程序编写起来很容易,但由于本实验要用DPTR指示8155的口地址,因此换用程序计数器PC作基址寄存器。
将欲查访表的项数送入累器A中,将从查表指令MOVC A,@A+PC所在地址到表首地址间的偏移量计算出来(注意CPU在读取本指令时,PC已执行加1操作,指向下一条指令的第一个字节。
所以作基址寄存器时,已不是原PC值,而是PC+1值),再加到累加器A中,然后执行MOVC A,@A+PC指令,将查表内容取出来送A。
由于PC值已经确定,查表范围只能由累加器A内容决定。
所以使用本指令的表格只能存放在以PC当前值为起始地址的256字节单元范围内。
这就使表格的地址空间分配受到限制。
3、8155的PC口的PC00~PC3接行线,作为键盘的输入信号线。
8155的PA口的PA0~PA7接列线,作为键盘的输出信号线。
在每一行与每一列之间接有一个键。
首先判别有无键被闭合,方法是:
往A口送数00H,使所有列线置0,即低电平。
若是有某个键被闭合,则该键所在的行与列连通,因而此行线上将变为低电平。
若是没有键被闭合,则所有行线上都是高电平,即全1。
所以用C口读入行线的值,看是否有0位,即可知是否有键被闭合。
如果有某键被闭合,为了去除抖动(机械键闭合与释放时均有抖动),延时一定时间(10MS),然后重复上述判别有无键被闭合的过程,这样测出的闭合键才是有效的闭合。
为了判定闭合键的值(键号),逐一向各列输出低电平,逐一读入各行值,闭合键所在行的行首键号加上所在列的列号,即为闭合键的值。
四、实验步骤
1、设70H~75H是显示缓冲区,设字模表中段码的顺序是3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,73H,3EH,31H,6EH,1CH,23H,40H,03H,18H,00H,00H,00H。
编写程序,并译成机器码。
2、将70H~75H单元装入00H,05H,0AH,0FH,10H,31H,运行程序,记下显示结果。
3、将70H~75H单元重新装04H,00H,00H,00H,16H,0FH运行程序,记下显示结果。
4、修改延时程序,运行程序,观察显示结果有什么变化。
五、实验程序流程
图5-3键盘输入子程序流程图
图5-4显示子程序流程图
五、实验报告要求
1、列出程序清单。
2、将实验结果与理论分析相比较。
3、说明字模表中的段码对应的显示字符是什么?
4、说明显示结果与显示缓冲区单元的内容有什么关系?
5、说明程序中的延迟时间对显示的亮度和稳定性有什么影响?
6、如果要显示一个字符,而在字模表中不存在它的段码,怎么办?