单片机实验指导书.docx
《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(68页珍藏版)》请在冰豆网上搜索。
单片机实验指导书
《单片机原理及接口技术》实验指导书
编著:
张玲汪用瑜李惠颖
第一章概述…………………………………………………………………………………...1
第二章软件实验5
实验一清零程序5
实验二拆字程序6
实验三拼字程序6
实验四数据区传递子程序7
实验五数据排序实验8
实验六无符号双字节快速乘法子程序8
实验七脉冲计数(定时/计数器实验)9
第三章、硬件实验11
实验一P3.3口输人.P1口输出11
实验二8255PC口控制PB口12
实验三8255控制交通灯13
实验四A/D转换实验15
实验五D/A转换16
实验六8253方波18
实验七步进电机控制19
实验八继电器控制20
实验九电子音响21
实验十小直流电机调速实验22
参考程序23
一、软件实验23
实验一清零程序23
实验二拆字程序23
实验三拼字程序23
实验四数据块传送24
实验五数据排序25
实验六双字节乘洁程序26
实验七脉冲计数28
二、硬件实验30
实验一P3口、P1口使用30
实验二8255PC口控制PB口31
实验三8255控制交通灯32
实验四A/D0809应用实验33
实验五D/A0832应用35
实验六定时计数器825336
实验七步进电机实验37
实验九直流电机调速实验43
第一章概述
一、DVCC系列单片机仿真实验系统键盘简介
系统自带32个标准键盘,16个数字键和16个多功能键,显示部分有6个高亮LED组成,通常左边4个用于显示地址,右边2个用于数据,为用户现场调试带来方便。
下面介绍键盘功能:
右边十六个功能键,在LED状态输入操作命令,其功能如下:
TV/MEM:
TV/程序存储器检查
REG/OFST;片内RAM寄存器,特殊功能寄存器检查/偏移量计算
ODRW/INS:
外部数据存储器、外部RAM、I/O检查/插入一个字节
EPRGH/DEL:
EPROM高速写入/删除一字节
F1/LAST:
第一标志键/读上一字节
F2/NEXT:
第二标志键/读下一字节
STEP/NVBP:
单拍、单拍跟踪/*
EXEC/FVBP:
连续执行/断点运行
PCDBG/EPRGL:
与IBMPV/XT通讯调试/低速固化
EPMOV:
固化区内容移入目标RAM
EPCH/EPCOM:
EPROM查空/EPROM比较
PRT:
打印命令
COMP:
源程序与目标程序相比较
MOVE:
程序块或数据块移动
DAR:
反汇编
MON:
退出当前操作,返回初态——显示闪动“P.”位
RESET;系统复位按钮,它在硬件上与开发系统复位线连在一起,无论何时按压RESET键,都使整个系统复位,返回初始状态——闪动“P.”
在数字键的右上角或功能键的右上角,右下角所标的字符标记分别是进入TV状态时,用于输入汇编语言或高级CBASIC高级语言程序时所用到的符号和字母。
[SHIFT]为上档键(除TV状态不用)。
二、51系统键盘监控命令简介
1.键盘监控程序工作状态
用户可以通过32个键向本机发出各种操作命令,大多数键均具有2个以上的功能,本机无上下档转换键,计算机到底进行什么操作,不仅与按压什么键有关,也与当前计算机所处的工作状态有关,下面作有关介绍:
2.单板状态:
在本状态显示器的左端显示提示符,一个闪动的“P.”字符,表开发机处于始化状态,等待操作。
在计算机接通电源自动复位时处于单板状态;
按压RESET复位键后,使本机处于单板状态;
在大多数情况下,按MON键,也可以使本机进入单板状态(待命状态0)。
待命状态0时,可以进入的操作有:
*按压任意数字键,进入待命状态1,显示该键入数;
*按压F1标志键,进入仿真2态,PC值指向外部用户仿真程序空间,DPTR指向外部数据空间,显示闪动的“H……”;
*按压F2标志键,进入仿真1态,PC值指向用户程序空间,DPTR指向外部数据空间显示闪动的“P……”;
*按压PCDEG键,进入与IBMPC/XT通讯、调试、反汇编,显示全暗;
*按压EPCH键,检查EPROM内容是否是全FFH;
*按压EXEC键,0000H开始执行用户程序;
*按压STEP键,从0000H开始单拍执行用户程序;
3.MEM态
在单板方式时按压MEM键,或当执行用户程序时遇到断点、单拍执行、EPROM编程写入出错等都会使计算机进入存储器写状态,本状态可进入如下操作:
*按压OFST键,进入相对偏移量计算;
*按压DEL键,进入删除操作,按一下删除一字节;
*按压INS键,进入插入操作,按一下,可插入一字节;
*按压LAST键,进入上一字节读写操作;
*按压NEXT键,进入下一字节读写操作;
*按压STEP键,以当前显示器内容作为地址,按压一下,执行一条指令,即执行用户程序一步;
*按压MON键,返回待命状态0(按EXEC键后,该命令无效)
*按压EXEC键,以当前显示器内容为始址,连续执行用户程序(若要推出,应按RESET复位按钮)
4.REG态:
即在待命状态1,按压REG键,可进入如下操作:
键入1位地址,进入当前工作寄存器读写/检查状态;
*显示代号0-7,读写当前工作寄存器R0-R7
*显示代号8或9,检查数据指针DPTR,8显示DPL,9显示DPH;
*显示代号A,检查累加器A的内容;
*显示代号B,检查B寄存器的内容;
*显示代号C,检查程序状态字PSW的内容;
*显示代号D,检查堆栈指针SP的内容,开机复位后SP位07H;
*显示代号E或F,检查当前PC值,E显示PCL,F显示PCH;
键入2位地址,进入以下操作:
*片内2位地址内容的检查、修改;
*特殊功能寄存器的检查、修改;
按压LAST键,读写上一字节内容。
按压NEXT键,读写下一字节内容。
5.ODRW态,按压ODRW键可进入如下操作:
在仿真1状态,键入4位地址,用ODRW键操作,读写的内容都是用户系统中的扩展数据存储器或扩展I/O口,与开发机无关。
按压LAST键,读写上一字节内容。
按压NEXT键,读写下一字节内容。
按压MON键,返回待命状态0。
6.标志态。
即F态
在待命状态1,即按压数字键后,按压F1键,本机便进入标志态,功能如下:
(1)F1键功能:
装入源程序首址,即把当前显示器内容作为源程序首址,装入本机的约定单元,并显示闪动“┌”标志符。
(2)F2键功能:
装入源程末址即当前显示器内容作为源程序末址,装入本机的约定单元,并显示闪动“┘”标志符。
(3)在“┘”状态下,再键入的数,便是目标首址。
(4)F标志态可进入的操作:
*按压MOVE键,进入程序/数据块移动。
*在“P.”态,本机内部0000H~FDFFH空间相互传送。
操作如下:
源首地址,F1,源末地址,F2,目标首地址,MOVE。
*按压COMP键,进入程序块比较,操作步骤如下:
源首址,F1,源末址,F2,目首址,COMP。
*按压EPRGH键,进入EPROM和MCU高速固化,操作步骤如下:
源首址(RAM区),F1,源末址(RAM区),F2,目首址(EPROM0,EPRGH。
*按压EPRGL键,进入EPROM低速固化和MCU低速固化且加密,操作步骤如下:
源首址,F1,源末址,F2,目首址,EPRGL。
*按压EPMOV键,把固化区程序搬到程序区,其目标有两个:
*在“P.”态,固化区内容传向本机内0000H~FDFFH空间。
*按压FVBP键,进入断点运行,操作步骤如下;
断点地址,F1,执行首址,FVBP。
*按压DAR键,进入反汇编,源地址有2个,操作如下:
源首址,F1,源末址,F2,浮动地址,DAR(浮动地址可缺省)。
“P.”态,机内0000H~FDFFH反汇编。
“H……”态,外部用户系统程序区反汇编。
*按压PRT键,进入反汇编打印:
源首址,F1,源末址,F2,浮动地址,PRT(浮动地址可缺省)。
三、实验仪上通用插孔简介
1.实验仪上装有12只发光二极管及相应驱动电路,L1~L12为相应发光二极管驱动信号输入端,该输入端为低电平“0”时发光。
2.实验仪上有9只开关K1~K8与之相对应的K1~K8引线孔为逻辑电平输出端。
开关向上拨相应插孔输出高电平“1”,向下拨相应插孔输出低电平“0”
3.实验仪上标有“”和“”两个引线插孔为正负单脉冲输出端。
附近按钮AN为单脉冲产生按钮,每按一次产生一个单脉冲。
4.实验仪上T0~T7为分频输出插孔,该计数器在上电时由RESET信号清零,当脉冲输入为1.0M时,T0~T7输出脉冲频率为1M、500KHZ、250KHZ依次二分频。
5.实验仪上标有2MHZ的插孔为脉冲发生器的输出端。
第二章软件实验
实验一清零程序
一、实验目的:
掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容:
把7000H~70FFH的内容清零。
三、实验程序框图
四、实验步骤:
1、当DVCC单片机仿真实验系统独立工作时。
(1)仿真实验系统显示闪动“P.”时,根据表一所示,通过键盘输入实验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,稍候,按RESET键退出运行;如果以单步运行程序,则输入0030后,按SETP键,按一次执行一条语句,直到执行到003CH为止,按MON键退出运行;如果以断点运行程序,则先输入003C(断点地址),再按Fl键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。
(2)用存贮器读写方法检查7000H~70FFH中的内容应全是00H。
2、当DVCC仿真实验系统联PC机时
(1)在闪动“P.”状态,按PCDBG
(2)在PC机处于DBUG子菜单状态,选择Load功能
(3)根据屏幕提示输入目标文件名(C1ear.hex)后Enter
(4)待传送正常结束后按回车键
(5)用F3命令将PC值(默为为0000H)修改为0030H
(6)用单步(F8)或断点(先用F2命令输入断点地址,后用F9命令)方法运行实验程序。
(7)单步、断点运行完后,在存贮器窗口内检查7000H~70FFH中的内容是否为全0。
五、思考:
假使要把7000H一70FFH中的内容改成FF,如何编制程序。
实验二拆字程序
一、实验目的:
掌握汇编语言设计和调试方法。
二、实验内容:
把7000H的内容拆开,高位送7001H低位,低位送7002H低位,7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、实验程序框图
四、实验步骤:
1先用存贮器读写方法将7000H单元置成34H。
2用单步、断点或连续执行程序的方法从起始地址0050H开始运行程序(输入0050后按STEP为单步,按EXEC为连续)。
3按MON键或RESET键退出。
4检查7001H和7002H单元中的内容应为03H和04H。
五、思考:
如何用断点方法调试本程序。
实验三拼字程序
一、实验目的:
进一步掌握汇编语言设计和调试方法。
二、实验内容:
把7000H。
7001H的低位相拼后送入7002H中,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、实验程序框图:
四、实验步骤:
1将7000H单元中内容置03H,7001H单元中的内容置为04H。
2用单步或断点方式从0070H开始运行程序(输入0070后按STEP键为单步运行)。
3按MON键退出。
4检查7002H中的内容应为34H。
实验四数据区传递子程序
一、实验目的:
掌握RAM中的数据操作。
二、实验内容:
把(R3.R4)源RAM区首址内的(R6.R7)个字数据,传送到(R4.R5)目的RAM区。
三、实验程序框图:
四、实验步骤。
1在R2.R3中装入源首址<例如6000H>,R4.R5中装入目的地址<例如7000H>,R6.R7中装入字节数<0FFFH>。
2用单步、断点方法从起始地0090H开始运行实验程序(输入0090后按STEP键为单步运行)。
3检查7000H开始的内容和6000H开始的内容是否完全相同。
实验五数据排序实验
一、实验目的:
熟悉8031指令系统,掌握程序设计方法。
二、实验内容:
编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
三、实验程序框图:
四、实验步骤:
1把8032片内RAM50H~5AH中放入不等的数据(用寄存器读写方法)。
2用连续运行方式从起始地址0100H开始运行程序(输入0100后按EXEC键)。
3排序结束,显示“P.”。
4检查50~5AH中内容应从小到大排列。
五、思考:
编一程序把50H一5AH中内容按从大到小排列。
实验六无符号双字节快速乘法子程序
一、实验目的:
掌握MCS-51汇编语言程序设计方法。
二、预备知识:
本程序是利用单字节的乘法指令,根据下面的公式进行乘法运算的,
(R2R3)*(R6R7)=((R2)*28+(R3))*((R6)*28+(R7))
=(R2)*(R6)*216+((R2)*(R7)+(R3)*(R6))*28+(R3)*(R7)
三、实验内容:
将(B2m)和(R6R7)中双字节无符号整数相乘,积送R4R5R6R7中,
四、实验程序框图:
五、实验步骤。
17000H~7001H中存放无符号整数作为被乘数000AH,7002H~7003H中存放乘数0019H。
2用连续或单步从起始地址01D0H运行本实验程序(输入01D0后按EXEC键或STEP键)。
3用MON或RESET键退出。
4检查两个数的乘积7004~7007单元中的内容应为000000FAH。
实验七脉冲计数(定时/计数器实验)
一、实验目的:
熟悉8031定时/计数功能,掌握初始化编程方法。
二、实验内容:
把定时器0外部输入的脉冲进行计数,并送显示器显示。
三、实验程序框图:
二进制转十进制子程序
四、实验接线图:
图略
五、实验步骤:
1
把8032P3.4插孔(对52196S或598S而言就是X18)接T0~T7任一根或单脉冲输出孔“”。
2用连续方式从起始地址02A0H开始运行程序(按02A0后按EXEC键)。
3观察数码管显示的内容应为脉冲个数,
六、思考:
修改程序使显示器上可显示到999999个脉冲个数。
第三章、硬件实验
实验一P3.3口输人.P1口输出
一、实验目的:
掌握P3口P1口简单使用
二、实验内容:
p3.3口输入一脉冲,P1口按16进制加一方式点亮发光二极管。
三、实验程序框图:
四、实验接线图
图一
五、实验步骤:
1P3.3(对52196S、598实验仪而言,X10插孔即为p3.3)用插针连至K1.P1.0一P1.7用插针连至L8一L1(P1.0~P1.7对52196S、598实验仪而言,对应信号插孔为X0,X2,X3,X4,X5,X7,X8,X6)。
2从起始地址0540H开始连续运行程序(输入0540后按EXEC键)。
3开关K1每拨动一次,L1一L8发光二极管接16进制方式加一点亮。
L1一L8发光二极管按16进制方式加一闪亮。
实验二8255PC口控制PB口
一实验目的:
掌握单片机系统中扩展外围芯片的方法,了解8255芯片的结构及编程方法。
二实验内容:
用8255PC口作开关量输入口,PB口作输出口。
三、实验程序框图:
四、实验接线图:
图二
五、实验步骤:
18255PC口接Kl一K8,PB口接L1一L8。
2k1-k7全拨在上面(高电平),Ll一L8全暗。
3用连续方式从起始地址0600H开始运行程序。
4拨动Kl一K8,观察L1一L8点亮情况。
注意点:
1.在做实验时,必须先将程序送到RAM区,然后连线送行。
2.本实验只能在单机(不和PC机相连)状态下进行。
实验三8255控制交通灯
一、实验目的:
进一步了解8255芯片的结构及编程方法,学习模拟交通控制的实现方法。
二、实验内容:
用8255做输出口,控制+二个发光二极管燃灭,模拟交通灯管理。
三、实验程序框图:
四、实验接线图:
图三
五、实验步骤:
18255PC0一PC7PB0一PB3依次接发光二极管L12一Ll。
2以连续方式从0630H开始执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。
延时一段时间后东西路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,再切换到东、西路口方向,之后重复以上过程。
3本实验只能在不联机状态下进行。
实验四A/D转换实验
一、实验目的:
(1)、掌握A/D转换与单片机的接口方法。
(2)、了解A/D芯片0809转换性能及编程方法。
(3)、通过实验了解单片机如何进行数据采集。
二、实验内容:
利用实验仪上的0809做A/D转换器,实验仪上的电位器提供模似量输入。
编制程序。
将模似量转换成数字量,通过数码管显示出来。
三、实验接线图:
图四
四、实验程序框图:
五、实验步骤:
1把0809的0通道INO用插针接至Wl的中心抽头0~5V孔。
2把0809CS(或CS4)译码输出端FE00插孔。
30809的CLK插孔与分频输出端T2相连。
4以连续方式从起始地址06D0运行程序,数码管上显示0809.XX,后二位显示当前采集的电压转换的数字量,调节W1该二位将随着电压变化而相应变化。
六、思考:
修改程序,用其它通道轮流采样显示。
实验五D/A转换
一、实验目的:
(1)、了解D/A转换与单片机的接口方法。
(2)、了解D/A转换芯片0832的性能及编程方法。
(3)、了解单片机系统中扩展D/A转换芯片的基本方法。
二、实验内容:
利用0832输出一个从0V开始逐渐升至5V,再降至0V,数码管显示送入的数字量值。
三、实验接线图:
图五
四、实验程序框图:
五、实验步骤:
1把0832片选线0832CS(CS5)接至片选FE00插孔。
2调节W3使0832第8脚为-5V。
3从起始地址0740H开始连续运行程序(输入0740后按EXEC键)。
4数码管上显示不断加大或减少的数字量,用万用表测试D/A输出孔AOUT应也能测出不断加大或减少的电压值。
六、修改程序,使能产生锯齿波。
实验六8253方波
一、实验目的:
学会8253芯片和微机接口原理和方法。
掌握8253定时器/计数器的工作方式和编程原理)。
二、实验内容:
8253的0通道工作在方式3.产生方波。
三、实验程序框图L:
四、实验接线图:
图六
五、实验步骤:
1用插针把8253的CLK0孔和分频输出端T2孔相连。
28253的GATE0插孔和+5V插孔相连。
38253的片选信号8253CS(或CS3)和译码输出端FE00H相连。
4从起始地址0B50H开始连续运行程序,用示波器测8253的0通道输出端OUTO,应有方波产生。
实验七步进电机控制
一、实验目的:
了解步进电机控制的基本原理。
掌握步进电机转动编程方法。
二、实验内容:
读取显示器上显示的正、反转命令,转速(16级)和转动步数后执行。
转动步数减为零时停止转动。
三、实验预备知识:
步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。
四、实验接线图:
图七
五、实验程序框图:
六、实验步骤:
1、步进电机插头接DVCC实验仪J1插座,P1.0一P1.3(即X0,X2,X3,X4)接BA-BD孔。
2、从起始地址0B70H开始连续执行程序,从键盘上输入数字使显示器显示,第一位为0(正转)为1(反转),第二位0一F显示转速,第三一六位为设定步数,按EXEC键后。
步进电机开始转动,步数逐渐减小至零时步进电机停止转动。
实验八继电器控制
一、实验目的:
掌握用继电器控制的基本方法和编程。
二、实验内容:
利用P1口输出高低电平,控制继电器的开合,以实现对外部装置的控制。
三、实验预备知识:
现代自动化控制设备中都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等),一方面又要为电子电路的电气电路提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成这一桥梁作用。
四、实验接线图:
图八
五、实验步骤:
把8031的P1.0(X0)接JIN端,继电器JZ(中心抽头)接地(GND),JK常开开关接L1,JB常闭开关接L2,P3.3(X10)接K1。
编制程序,使P1.0电平变化,高电平时继电器吸合,常开触点接上L1点亮,L2熄灭,低电平时继电器不工作,常闭触点闭合,L1熄灭,L2点亮。
实验九电子音响
一、实验目的:
了解计算机发出不同音调声音的编程方法。
二、实验内容:
利用定时器产生不同频率的方法,组成乐谱由单片机进行信息处理,经过放大利用8031P1.7口输出歌曲。
三、预备知识:
(1)、要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用计时器计时此半周期时间,计时到后即反相输出,重复此过程即得到此频率的脉冲。
(2)、让定时器工作在计数方式上,改变计数值TH0及TL0,以产生不同的频率的方法。
(3)、每个音符使用一个字节,字节的高四位代表音符的高低,低四位代表音符的节拍。
四、实验接线图:
图九
五、实验步骤:
(1)、把软盘上ROG0文件送到开发机上,起始地址为8000H。
(2)、把P1.7(52196S、598实验仪上P1.7即为X6)用插针连至VIN(52196S、598实验仪上为SIN)插孔上。
喇叭接CZ4插座。
(3)、执行程序放出“祝您生日快乐”等歌曲。
六、思考:
自己动手编一首歌。
实验十小直流电机调速实验
一、实验目的:
1、掌握直流电机的驱动原理。
2、了解直流电机调速的方法。
二、实验内容:
1、用0832D/A转换电路的输出经放大后驱动直流电机。
2、编制程序改变0832输出经放大后的方波信号的占空比来控制电机转速。
三、实验线路:
基本同图五
四、连线方法:
1、0832的片选信号0832CS(CS5)连到译码输出FE20H。
2、0832的输出out端连到DJ插孔。
3、直流电机插头插到实验仪的DM插座上。
五、实验程序框图:
(略)
五、实验步骤:
1、确认连线正确性。
2、从起始地址0E00H开始连续运行程序。