单片机原理与应用实验指导书2009年5月第一章实验箱系统概述一、系统地址分配(1),存贮器地址分配(2),I/O地址分配二、系统接口定义(1),CZ11:用户实验通讯接口;(2),CZ4:打印接口;(3),JX0,JX17为系统提供的数据总线接口(4),CZ7:系统提供的扩展接口;(5),JX12、JX14:液晶显示接口三、通用电路简介(1)LED发光二极管指示电路:实验台上包括16只发光二极管及相应驱动电路。
见图1-1,Ll—L16为相应发光二极管驱动信号输入端, 该输入端为低电平“0”时发光二极管亮图1-6(2)逻辑电平开关电路:见图1-2。
实验台上有8只开关Kl-K8, 与之相对应的K1-K8个引线孔为逻辑电平输出端。
开关向上拨相应插孔输出高电平“l”, 向下拨相应插孔输出低电平“0”。
图1-7(3)单脉冲电路:实验台上单脉冲产生电路如图1-3,标有“”和“”的两个引线插孔为正负单脉冲输出端。
附近按钮AN为单脉冲产生按钮,每按一次产生一个单脉冲。
图1-8(4)分频电路:该电路由一片74LS393组成,见图1-4。
T0—T7为分频输出插孔。
该计数器在加电时由RESET信号清零。
当脉冲输入为8.0MHZ时,T0—T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。
图1-9(5)脉冲发生电路:实验台上提供一8MHZ的脉冲源,见图1-5,实验台上标有8MHZ 的插孔,即为脉冲的输出端。
图1-10(6)485接口电路:图1-11(7)通讯接口电路图1-12 (8)数码管显示电路图1-13 (9)键盘电路图1-14 (10),目标CPU(AT89S52)的控制电路图1-15(11),存储器控制电路图1-16第二章系统安装与使用一、软件安装1,系统要求◆ Pentium、Pentium-Ⅱ或兼容处理器的PC机;◆ Windows95/98/NT4.0/2000/XP;◆≥16MB RAM20◆≥MB 硬盘空间;2,DICE-598K51部分软件安装说明运行随机光盘上‘DICE-51仿真开发系统’安装文件,根据提示完成软件安装,然后双击桌面上‘DICE-51仿真开发系统’银环快捷图标,即可运行DICE-51仿真软件。
3,实验演示模拟装置的软件安装说明随机的光盘中有一个“电子演示装置”文件夹,其中有下列文件:setup.exe 演示装置上位软件,点击后自动安装D12Driver 演示装置USB接口驱动程序文件夹,内含win2k_xp和win98两个文件夹,相应的操作系统安装对应文件夹中的驱动程序。
(win2k_xp用于2000、xp操作系统,win98用于98操作系统。
)usbtest.exe 该文件用于测试演示装置的32个I/O口。
安装方法:先将上述程序从光盘复制到硬盘,并去掉只读属性,双击setup.exe,根据提示直至安装完毕;然后用USB线将演示装置连接到PC机USB口,屏幕会提示发现新硬件,根据提示引导进行安装,当选择驱动程序时请把路径指向硬盘上win2k_xp或win98(根据自己实际的操作系统)文件夹中的d12test.sys,并直至安装完毕。
二、硬件安装系统设置(1)KB6开关拨向导59一侧,把51K--CPU卡插到CPU卡座上(在8088Unit两侧),51K--CPU卡短路块向片外程序短接。
(2)SW3、SW4、SW5:为键盘/显示选择开关,开关置ON(出厂模式),键盘/显示控制选择系统配置的8255接口芯片,反之由用户选择自定义的I/O接口芯片控制,在本机实验中,除8279实验外,键盘/显示为出厂模式。
(3)脱机使用:接通实验仪电源,数码管应显示“P.- -51”,表明实验系统处于51脱机状态,可通过实验仪键入相应实验序号,再按[EX/FV]键,即可全速执行该实验程序,例如输入数字键0、9,连接好A/D实验的导线,再按[EX/FV]键,即可运行实验序号九的A/D 实验。
(4)联PC机操作:用34芯导线连接JF(在CPU卡)和仿真器接口(在CPU卡右侧),此时数码管熄灭,自动进入联机状态,把通信线一头和实验仪的系统通信接口CZ1相连,另一端和PC机串口相连,运行DICE-51仿真开发系统软件,51部分实验源程序在598K5asm 文件夹。
*注:实验系统上的CZ11串行口为用户实验串行口。
第三章实验指导一、采用联机调试实验程序时,需双击桌面上“DICE-51仿真开发系统”银环图标,打开仿真调试软件,设置仿真模式。
具体步骤如下:点击菜单栏的“设置(S)”项,在弹出下拉菜单中选择“仿真模式(M)...”,此时此时将弹出“仿真模式”对话框,在此进行相关设置==>CPU:8031/8032;RAM:用户RAM;ROM:系统ROM。
二、实验接线图上的粗实线表示用户在实验时要用导线连接起来。
软件实验实验一清零程序1,实验目的:掌握汇编语言设计和调试方法,熟悉键盘操作。
2,实验内容:把2000H~20FFH的内容清零。
3,实验程序框图:4,实验步骤:用连续或单步方式运行程序,检查2000~20FF中执行程序前后的内容变化。
5,思考:假使把2000H~20FFH中的内容改成FF,,如何修改程序。
实验二拆字程序l,实验目的:掌握汇编语言设计和调试方法。
2,实验内容:把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H 高位清零,一般本程序用于把数据送显示缓冲区时用。
3,实验程序框图:4,实验步骤:用连续或单步方式运行程序,检查2000H~2002H中内容变化情况。
5,思考:如何用断点方式调试本程序。
实验三拼字程序1,实验目的:进一步掌握汇编语言设计和调试方法。
.2,实验内容:把2000H.2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一字节。
3,实验程序框图:4,实验步骤:单步或用断点方式运行程序,检查2002H内容变化情况。
实验四数据区传送子程序1,实验目的:掌握RAM中的数据操作。
2,实验内容:把R2.R3源RAM区首址内的R6.R7字节数据传送到R4.R5目的RAM区。
3,实验程序框图:4,实验步骤:在R2.R3中输入源首址(例如0000H),R4.R5中输入目的地址(例如2000H),R6.R7中输入字节数(例如lFFFH),运行程序,检查0000H~lFFFH中内容是否和2000H~3FFFH中内容完全一致。
实验五数据排序实验1,实验目的:熟悉51指令系统,掌握程序设计方法。
2,实验内容:编写并调试一个排序子程序,其功能为用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
3,程序框图:4,实验步骤:将RAM 50H~5AH 中放入不等的数据,用断点方法运行本实验程序后检查实验六查找相同数个数1,实验目的:熟悉汇编语言编程。
2,实验内容:在2000H~200FH的N个单元中填入零,运行本程序后检查2100H中是否为N。
3,实验程序框图:4,实验步骤:在2000H~200FH的几个单元中填入零,运行本程序后检查2100H中是否是几个单元数。
5,思考:修改程序,查找其它内容。
实验七无符号双字节快速乘法子程序1,实验目的:掌握MCS-51汇编语言程序设计方法。
2,预备知识:本程序利用单字节的乘法指令,根据下面的公式进行乘法运算的。
(R2R3)*(R6R7)=((R2)* +(R3))*((R6)* +R7))=(R2)*(R6)* +((R2)*(R7)+(R3)*(R6))* +(R3)*(R7)3,实验内容:将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4 R5 R6 R7中。
4,实验程序框图:5,实验步骤:在R2R3和R6R7中输入无符号整数,断点或单步运行本实验程序后检查R4 R5 R6 R7中内容。
实验八多分支程序1,实验目的:掌握汇编语言的编程。
2,实验内容:编写程序,根据送入的数据转移运行。
3,实验程序框图:4,实验步骤:在20H中分次送入00.01.02.03,每次运行程序后,观察数码管上数字循环实验九脉冲计数(定时/计数器实验)1,实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法。
2,实验内容:把定时器0外部输入的脉冲进行计数,并送显示器显示3,实验程序框图:4,实验接线图:5,实验步骤:用插针把8MHZ插孔和T插孔连接,P3.4 依次接T0~T7或单脉冲输出孔,执行程序,观察数码管上计数脉冲的速度及个数。
6,思考:修改程序使显示器上可显示到999999个脉冲个数。
实验十电脑时钟(定时器、中断综合实验)1,实验目的:熟悉MCS-5l定时器和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。
2,实验内容:编写程序,从实验系统键盘上输入时间初值,用定时器产生0.lS定时中断,对时钟计数器计数,并将数值实时地送数码管显示。
3,实验程序框图4,实验步骤:连续运行程序,在键盘上输入时间初值,按执行键F0/EX执行,数码管实时显示时间值。
5,思考:(1)电子钟走时精度和程序中那些常数有关?硬件实验实验一P1口亮灯实验1,实验目的:(l)学习P1口的使用方法;(2)学习延时子程序的编写。
2,实验顶备知识:(l),Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
(2),本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。
3,实验内容:P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
4,实验程序框图:5,实验接线图:6,实验步骤:P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。
7,思考:改变延时常数,使发光二极管闪亮时间改变。
修改程序,使发光二极管闪亮移位方向改变。
实验二P1口转弯灯实验1,实验目的:进一步了解P1口的使用,学习汇编语言编程方法及调试技巧。
2,实验内容:P1.0 开关接5V,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮,P1.0,P1.1开关同时接5V或接地时,转弯灯均不闪亮。
3,实验程序框图:4,实验接线图:5,实验步骤:P1.0 接K1,P1.1接K2,P1.4~P1.7接L1、L4、L7、L10,连续运行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序,(例可把延时程序第一个字节改成返回指令22H),以便观察。
实验三 P3口输入,P1口输出1,实验目的:掌握P3口P1口简单使用。
2,实验内容:P3.3口输入一脉冲, PI口按16进制加一方式点亮发光二极管。