实验指导书同名22166.docx
- 文档编号:29908714
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:24
- 大小:223.75KB
实验指导书同名22166.docx
《实验指导书同名22166.docx》由会员分享,可在线阅读,更多相关《实验指导书同名22166.docx(24页珍藏版)》请在冰豆网上搜索。
实验指导书同名22166
单片机实验指导书
实验一系统认识实验
一、实验目的
1、了解ZY15MCU12BC2单片机实验开发装置的接线与安排。
掌握实验箱内拨位开关KF,KC的使用方法。
2、通过实例程序的编辑、编译、链接及调试,熟悉KeilC51软件的使用方法和基本操作。
3、教育学生保护实验装置,养成良好的实验习惯。
二、实验设备
1、ZY15MCU12BC2单片机实验开发装置一台。
2、PC机及相关软件。
三、实验内容
1、使用串行通讯电缆将实验开发装置与PC机相连。
2、开启PC机及实验开发装置,启动KeilC51软件进入uVision2集成开发环境。
确认拨位开关KF的开关为A端,确认89C51处于仿真状态。
在uVision2开发平台上建立并编辑例如程序:
计算N个数求和程序。
其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H〔低位〕单元中。
题目:
1〕32H+41H+01H+56H+11H+03H=?
2〕95H+02H+02H+44H+48H+12H=?
编译连接源程序。
在KeiluVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H〔高位〕、04H(低位)单元中的数据是否正确。
实验结束,撤出接线,将一切整理复原。
实验源程序
org0000h
ljmpmain
org1000h
main:
movr2,#06h
movr3,#00h
movr4,#00h
movr0,#50h
l1:
mova,r4
adda,@r0
movr4,a
incr0
clra
addca,r3
movr3,a
djnzr2,l1
end
实验二多字节十进制加法实验
一、实验目的
1、学习51运算指令的用法及对标志位的影响。
2、学习循环程序编程方法。
3、掌握51内部RAM和寄存器之间的关系。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验内容
1、编写多字节十进制加法程序,实现下式运算:
4574+6728=11302
要求:
被加数在片内RAM区20H、21H单元;
加数在片内RAM区30H、31H单元;
结果在片内RAM区20H(最高位进位)、21H(高位)、22H(低位)单元。
结果:
20H=1,21H=13,22H=02;
2、完成程序的设计、编辑、编译、连接。
四、调试方法
进入DEBUG方式,打开存储器Memory1窗口,在窗口Address栏键入D:
20H;点击鼠标右键,选择最后一项ModifyMemory,输入被加数;在窗口Address栏键入D:
30H;点击鼠标右键,选择最后一项ModifyMemory,输入加数。
〔选作〕整数十六进制转十进制实验
一、实验目的
1、了解整数十六进制转十进制的原理。
2、学会编程实现进制转换。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个十六进制转换为十进制数的程序,其功能为从ZY15MCU12BC2型的实验箱键盘上输入四位十六进制数,转换为6位十进制数并在实验箱的显示器上显示出来。
四、实验程序参考框图如图1所示
图1十六进制转十进制程序流程
注:
框图中延时1秒是为了看清显示器上显示的十六进制数和BCD码结果
五、调试方法
1、全速运行至BK1,检查40H,41H,3BH~3EH内容是否为键入的数据。
2、从BK1全速运行至BK2,再从BK2运行到BK3,检查3AH~3EH的BCD码正确与否?
如有错从BK2单步运行到BK3,检查程序运行结果。
3、全速运行程序,每输入4位十六进制数,显示6位BCD码,用一组数据测试其程序的正确性。
〔选作〕查表实验
一、实验目的
1、了解编程中查表的原理。
2、学会编写查表程序。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个查表程序,其功能为读键盘输入的0~F数字键,通过查表得到各键处理程序入口,并将入口地址在实验仿真器的显示器上显示出来。
数字键“0”——8000H
数字键“1”——8200H
数字键“2”——8400H
数字键“3”——8600H
数字键“4”——8800H
数字键“5”——8A00H
数字键“6”——8C00H
数字键“7”——8E00H
数字键“8”——9000H
数字键“9”——9200H
数字键“A”——9400H
数字键“B”——9600H
数字键“C”——9800H
数字键“D”——9A00H
数字键“E”——9C00H
数字键“F”——9E00H
四、实验程序参考框图如图2所示
图2查表实验流程
五、调试方法
1、断点设在BK1,按0~F键后,进入断点地址,检查ACC内容是否与键值正确对应。
2、断点设在BK2,程序运行至断点,检查ACC内容是否为键值对应跳转入口地址高位。
3、断点设在BK3,程序运行至断点,检查ACC内容是否为键值对应跳转入口地址低位。
4、程序连续运行,按键0~F,即在显示器上显示出相应散转地址。
假设有错误,应改用单步或断点分段调试,排除软件错误,直到正确为止。
〔选作〕两个四位十六进制数乘法实验
一、实验目的
学会使用汇编语言编写两个四位十六进制乘法的程序。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验原理
算法:
MCS—51中有8位数的乘法指令MUL,用它来实现双精度数相乘时,可以把被
乘数〔ab〕和〔cd〕分别表示为〔az+zb〕和〔cz+zd〕,其中a、b、c、d都是8位数,a、c为高位,b、d为低位,z表示8位0。
它们的乘积用下式表示:
(az+zb)(cz+zd)=aczz+zadz+zbcz+zzbd
其中ac、ad、bc、bd为相应的2个8位数的乘积,占十六位,它们可以用四次乘法指
令MUL求出。
假设把这十六位的积表达为acH、acL、adH、adL、bcH、bcL和bdH、bdL,其中以H为
后缀的为积的高8位,以L位后缀的为积的低8位。
则不难看出,对它们进行错位相加,即按以下排序:
acHacL
adHadL
bcHbcL
+bdHbdL
并按列求和,用三次8位数加法和三次带进位加法便可以得到4字节的乘积。
其等同于:
R5R4×R3R2=R4×R2+R5×R2×28+R4×R3×28+R5×R3×216
四、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个两个四位十六进制数相乘的实验,且显示结果也为十六进制数,其功能为从单片机原理实验箱的键盘上连续两次输入四位十六进制数,从而得到八位十六进制数,其中,如果两数的有效数字都为四位或有一个为四位,另一个为三位,由于实验箱上只有六只数码管,那么其积的高两位将溢出,数码管只显示低六位有效数字。
当然,用户也可以自己编写乘法子程序,那么在编写子程序之前,应了解到第一位输入的四位十六进制数将存放在50H〔高两位〕、51H单元里,第二次输入的四位十六进制数存放在52H、53H单元里,用户在编写时只需直接调用50H~53H地址里的数据,而且计算结果必须存放在54H~57H〔最高位〕四个字节里,否则,用户同时还需要改动子程序如DEAL子程序等。
用户假设要编写显示子程序、中断子程序,则必须先了解接口地址,如8279的命令口地址为5EFFH等。
五、调试方法
1、单步执行到乘法子程序,检查50H~53H内容是否为键入的两个十六进制数。
2、单步进入执行完乘法子程序,检查54H~57H的计算结果是否正确。
3、全速运行程序,连续输入两组数据,检验实验结果正确与否(可以连续输入)。
〔选作〕两个四位BCD数乘法实验
一、实验目的
学会使用汇编语言编写两个四位BCD数乘法的程序。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验原理
四位BCD数相乘的算法与十六进制算法完全不同。
十六进制算法主要用乘法指令,并把乘的结果错位和进位相加便可得到。
而BCD码数的相乘则主要用移位和交换指令,并在移位的同时进行十进制调整,从而使另一个乘数不断自加来得到乘积结果。
四、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个两个四位BCD数相乘的实验,且显示结果为BCD数,其功能为从单片机原理实验箱的键盘上连续两次输入四位的BCD数,从而得到七位十进制数,同样,乘积如果有七位有效数字,则其最高位将溢出,数码管只显示低六位有效数字。
当然,用户完全可以自己编写乘法子程序,那么在编写子程序之前,应了解第一次输入的四位BCD码将存放在50H〔高两位〕、51H单元里,第二次输入的四位BCD码存放在52H、53H单元里,而计算结果要求存放在54H~57H〔最高位〕四个字节里,用户假设要编写显示子程序、中断子程序,则必须先了解接口地址,如8279的命令口地址为5FFFH,传感器地址为5EFFH等。
五、实验程序参考框图如图3所示
图3两个四位BCD数乘法流程框图
六、调试方法
1、单步执行到乘法子程序,检查50H~53H内容是否为键入的两个BCD数。
2、单步进入执行完乘法子程序,检查54H~57H的计算结果是否正确。
3、全速运行程序,连续输入两组数据,检验实验结果正确与否(可以连续输入)。
〔选作〕阶乘实验
一、实验目的
学会使用汇编语言编写阶乘算法的程序。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验原理
此实验的算法原理类似BCD码乘法实验,也是利用BCD码的自加从而到达实验目的,不同的是其自加的次数在不断的自减1,直至自减次数为零。
四、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个在单片机实验箱的键盘上任意输入一个数,从而输出其阶乘运算结果的程序,其输出结果为十进制数。
用户可以直接调用提供的参考子程序,也可以自己编写阶乘子程序。
五、实验程序参考框图略〔类似BCD乘法实验框图〕
六、调试方法
1、可以用单步进入方式执行程序,也可以在子程序中设置断点,或者用光标执行方式,检查27H地址里的数据是否正确。
2、在单步执行阶乘子程序,检查54H~57H地址里的运算结果是否正确。
3、全速运行程序,输入任意一个数,键盘在延时一段时间后显示阶乘的结果〔可以连续输入和运算〕。
〔选作〕两个四位十六进制除法实验
一、实验目的
学会使用汇编语言编写两个四位十六进制除法的程序。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验原理
设在R7R6中存入被除数,在R5R4中存入除数,R3R2中存入余数。
则在先清零的情况下,不断地把R7R6中内容逐位移入R3R2,每移一次后,和R5R4的内容进行比较,假设R3R2中的内容大于R5R4中的内容,则商上1;否则商上0。
以此循环16次后得出商和余数。
得到余数后,判断余数乘2后是否大于除数,假设大于除数则商再加1〔即四舍五入〕,否则不加。
四、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写一个在单片机实验箱上连续输入两个四位十六进制数,从而在数码管上显示其商〔经过四舍五入后的四位十六进制数〕的实验程序。
用户可直接调用参考程序,也可以自己编写程序,但要注意被除数、除数、商及余数的存储地址。
五、实验程序参考框图如图4所示
图4两个16位无符号整数除法流程框图
六、调试方法
1、可以用单步执行方式调试该除法程序,其中第一步执行过程同四位十六进制乘法实验。
即查看存储地址里的值是否与输入的键值相等。
2、运行除法子程序后,再次查看存储地址里的值,检查结果是否正确。
3、全速执行程序,连续不断的输入键值,每两次输出一个运算结果,并检查结果是否正确。
〔选作〕排序实验
一、实验目的
学会使用汇编语言编写排序算法的程序。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验原理
为了把六个单元中的数按从小到大的顺序排列,可从50H单元开始,两数逐次进行比较,保存小数取出大数,且只要有地址单元内容的互换就置位标志。
多次循环后,假设两次比较后不再出现有单元互换的情况,就说明从50H~55H单元中的数已全部从小到大排列完毕。
四、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个连续输入六个数,从而在数码管上从小到大的顺序输出显示的程序,用户可直接调用提供的参考程序,也可以自己编写程序,同样须注意数据存储的地址对各子程序必须匹配。
五、实验程序参考框图如图5所示
图5数据排序程序流程图
六、调试方法
1、此步骤类似于BCD乘法实验,即检查存储地址里的值是否与输入的键值相等。
2、单步执行完排序子程序,检查运算结果是否正确。
3、全速执行程序,连续输入数据,每输入六个数后将按从小到大的顺序在数码管上显示出来。
实验三定时器实验
一、实验目的
1、了解定时器的工作原理。
2、学会设计定时器实现秒计数。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验内容
1、源文件的名称为“”。
2、“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个程序,用定时器T0定时中断控制软件计数器计数,使计数器从0开始以1秒的速度十进制加1计数,显示器实时地显示其计数值。
四、实验程序参考框图如以下图6所示
图6定时器T0计数程序流程
五、调试方法
1、断点设在BK1,检查显示缓冲器、工作单元、中断寄存器、定时器寄存器初值是否正确。
2、断点设在BK2,从开始全速运行,应碰到断点,即进入定时器中断服务程序,如碰不到BK2,回到〔1〕检查初始化程序正确性,检查中断入口〔000BH〕的指令正确与否。
3、从开始运行到BK3,然后单步运行程序,检查3EH~39H的十进制计数程序正确性。
4、全速运行程序,调节定时器T0初值或方式,调节软件〔控制1秒〕计数器〔RAM单元〕初值,使显示器以1秒速率十进制加1。
实验四电子钟实验
一、实验目的
1、电子钟的工作原理。
2、学会编程实现电子钟。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验内容
1、源文件的名称为“”。
2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。
3、编写并调试一个实验程序,其功能为从单片机实验箱上的键盘输入一个时间初值
(时、分、秒各两位),用T0产生250μs定时中断,在中断服务程序中对T0的中断次数进行计数,每当计数到400次,即1秒,对实时钟计数。
四、实验程序参考框图如图7所示
图7电子钟实验参考程序框图〔其中显示子程序、T0中断子程序略〕
五、调试方法
1、采用单步进入方式调试。
2、全速断点方式进行调试,分别将断点设在不同的子程序入口如T0中断等,碰到断点后检查程序执行的结果。
假设有错误,则再单步运行时钟计数子程序和数据转换子程序。
在程序基本到达功能后,调节定时器T0初值,使时钟走时精确。
实验五广告灯实验
一、实验目的
学会使用控制I/O端口。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验原理
此实验为纯软件实验,程序比较简单,主要是一个对外界各种场合的动态广告灯模拟的查表程序,因此就不多作介绍。
四、实验内容
1、源文件的名称为“”。
2、编写并调试一个模仿外界广告灯的程序,此实验的自由度比较大,用户可以随便编写一个从P1口输出的程序,发光二极管已经经过驱动,只需用户编好程序后,把“L0~L7”分别与“P10~P17”相连即可,在运行程序后将K10拨至上端,此实验做完后,再将K10拨回至下端。
五、调试方法
1、单步执行程序,观察程序能否进入表格首地址。
2、单步执行程序,观察发光二极管L0~L7的变化。
3、全速执行程序,观察发光二极管的变化,并注意程序将循环下去。
实验六P1口应用实验
一、实验目的
学会控制单片机的P1端口。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验内容
1、源文件的名称为“”。
2、将实验板上的指示灯“L0~L3”接到“P10~P13”,开关“KK0~KK3”接到“P14~
P17”(注:
在运行程序后将K10拨至上端;此实验做完后,再将K10拨回至下端)。
3、编写并调试一个实验程序,其功能为:
K3K2K1K0L3L2L1L0
0000全亮
0001全暗
0010一灯亮其余灯暗并左环移
0011一灯亮其余灯暗并右环移
0100一灯暗其余灯亮并左环移
0101一灯暗其余灯亮并右环移
1XXX显示开关状态Ki为0,Li亮
(1)设40H单元作为标志单元,(40)=0时开关状态无变化,(40)=FFH时开关状态发生了变化。
(2)设41H单元作为开关状态缓冲器,读入开头状态和41H内容比较,相同时开关状态无变化,不同时有变化。
(3)42H存放当前指示灯状态。
四、实验程序参考框图如图8所示
五、调试方法
1、根据准双向口特性,对P1口写使灯L3~L0状态随写入P13~P10的内容变化,读
P1口的高4位,读出内容应随开关状态变化而变化。
如不对,则断开开关K0~K3的接线,测量K0~K3的电平是否随开关状态而变化。
2、从开始运行至BK1,检查A的内容是否对应于开关状态,接着单步运行程序,检查是否转到相应入口使L0~L3状态产生相应的变化。
3、全速运行至BK2,再检查A的内容是否和开关状态一致;如不对则检查前面对P1口操作指令。
4、全速运行程序实现所要求的功能。
〔选作〕P1口、P3口应用实验-—三层楼电梯控制器模拟实验
一、实验目的
1、学会控制单片机的P1和P3端口。
2、了解电梯的工作原理。
二、实验设备
ZY15MCU12BC2实验箱,连接线假设干,串口线,PC机。
三、实验内容
在实验板上“L0~L7”接“P10~P17”,“KK1~KK4”接P32~P35”,利用键盘
和显示器组成控制器输入输出设备。
编写并调试一个控制程序,实现电梯的上行、下行、开门、关门控制和状态的显示(注:
在运行程序后将K10拨至上端;此实验做完后,再将K10拨回至下端)。
1、请示信号:
键盘1、2、3号键作为电梯内请求至1、2、3楼的按键,20号按键、21号按键作为电梯内请求关门、开门的请求键,16、17、18、19号键作为一层上楼、二层上下楼、三层下楼请求键。
2、开关量输入信号:
K1、K2、K3作为一层、二层、三层楼面定位开关信号,低电平时表示到达相应楼面,K4作为电梯门上有阻挡传感器信号。
3、状态指示信号:
L2、L3、L4、L5作为电梯外面请求上下楼状态指示。
L0、L1作为电梯上下行指示,L6、L7模拟电梯开门、关门动作。
4、楼层请示:
实验仿真器上最高位显示器LED6〔对应于3EH〕,显示电梯当前所在楼面,低3位LED3~LED1〔对应于3BH~39H〕显示请求至3、2、1楼的信号。
四、实验程序参考框图如图9
图9三层电梯控制器实验程序框图
编程说明:
在标志区设定标志:
请至1楼、2楼、3楼,1请上,2请上,2请下,3请上,3请下,开门,关门,上行,下行,准备上行等标志。
实验程序由主程序、开门程序、输入请求处理程序组成〔详见图9〕。
五、调试方法
1、在调试输入请求处理子程序时,断点设在BK1。
反复从程序开始运行,按下1键,碰到断点BK1,单步运行,检查键处理程序正确性。
2、从主程序开始运行至BK0,检查显示缓冲器应指示停在1楼。
3、从主程序开始运行,断点设在BK1、BK2,按不同键应碰到断点,单步运行开门程序,检查输入处理的正确性。
4、这个程序较复杂,可以按功能分段调试。
A.1请上至2楼1请上至3楼
B.2请上至3楼2请下至1楼
C.3请下至2楼3请下至1楼
D.电梯在1、2、3楼时,分别调试A、B、C功能是否正确。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书 同名 22166
