单片机实验指导书精.docx
《单片机实验指导书精.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书精.docx(28页珍藏版)》请在冰豆网上搜索。
单片机实验指导书精
单片机实验指导书
楚晓华编
汽车与交通工程学院
(2006年8月编)
第一章伟福仿真器系统概述
本实验系统是基于伟福仿真器系统开发的,利用汽车电子实验室的THKSCM-2单片机开发综合实验台进行开发实验和仿真实验。
本仿真器系统由仿真主机+仿真头、单片机开发实验板等组成。
本系统的特点是:
1.主机+仿真头的组合,通过更换不同型号的仿真头即可对各种不同类型的单片机进行仿真,是一种灵活的多CPU仿真系统。
采用主机+POD组合的方式,更换POD,可以对各种CPU进行仿真。
本仿真器主机型号为S51,仿真头型号为POD8X5X(可仿真51系列8X5X单片机)。
2.双平台,具有DOS版本和WINDOWS版本,后者功能强大,中/英文界面任选,用户源程序的大小不再有任何限制,支持ASM,c,PLM语言混合编程,具有项目管理功能,为用户的资源共享、课题重组提供强有力的手段。
支持点屏显示,用鼠标左键点一下源程序中的某一变量,即可显示该变量的数值。
有丰富的窗口显示方式,多方位,动态地显示仿真的各种过程,使用极为便利。
本操作系统一经推出,立即被广大用户所喜爱。
3.双工作模式
(1)软件模拟仿真(不要仿真器也能模拟仿真)。
(2)硬件仿真。
4.双CPU结构,100%不占用户资源。
全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、支持实时断点计数、软件运行时间统计。
5.双集成环境
编辑、编译、下载、调试全部集中在一个环境下。
多种仿真器,多类CPU仿真全部集成在一个环境下。
可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。
为了跟上形势,现在很多工程师需要面对和掌握不同的项目管理器、编辑器、编译器。
他们由不同的厂家开发,相互不兼容,使用不同的界面,学习使用都很吃力。
伟福WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供千个与第三方编译器的接口。
由于风格统一,大大节省了您的精力和时间。
6.强大的逻辑分析仪综合调试功能。
逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样,并实时在线调试分析,采集深度32K(E2000/L),最高时基采样频率达20MHz,40路波形,可精确实时反映用户程序运行时的历史时间。
系统在使用逻辑分析仪时,除普通的单步运行、键盘断点运行、全速硬件断点运行外,还可实现各种条件组合断点如:
数据、地址、外部控制信号、CPU内部控制信号、程序区间断点等。
由于逻辑仪可以直接对程序的执行结果进行分析,因此极大地便利于程序的调试。
随着科学技术的发展,单片机通讯方面的运用越来越多。
在通讯功能的调试时,如果通讯不正常,查找原因是非常耗时和低效的,您很难搞清楚问题到底在什么地方,是波特率不对,是硬件信道有问题,是通讯协仪有问题,是发方出错还是收方出错。
有了逻辑仪,情况则完全不一样,用它可以分别或者同时对发送方、接收方的输入或者输出波形进行记录、存储、对比、测量等各种直观的分析,可以将实际输出通讯报文的波形与源程序相比较,可立即发现问题所在,从而极大地方便了调试。
7.强大的追踪器功能
追踪功能以总线周期为单位,实时记录仿真过程中CPU发生的总线事件,其触发条件方式同逻辑分析仪。
追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。
屏幕窗口显示波形图最多追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成追踪功能。
总线跟踪可以跟踪程序的运行轨迹。
可以统计软件运行时间。
第二章开发环境简介
双击桌面上的WAVE图标或从开始/程序/WAVEFORWINDOWS/WAVE进入本开发环境,其界面及主要功能如图2-1中所注。
图2-1WAVE界面
1.仿真器设置窗口
如图2-2所示,在实验开始时要先根据需要设置好仿真器类型、仿真头类型以及CPU类型,并注意是否“使用伟福软件模拟器”,若使用硬件仿真,请注意去掉“使用伟福软件模拟器”前的选择。
图2-2仿真器设置窗口
2.文件窗口
如图2-3,可在此窗口下进行包括新建、打开、保存等文件操作。
图2-3文件窗口
3.编译文件窗口
如图2-4,在此窗口下可将源文件编译成目标文件。
图2-4编译文件窗口
4.执行窗口
如图2-5,在此窗口下,可用全速、跟踪、断点等各种方式运行程序
图2-5执行窗口
5.窗口窗口
如图2-6-1,在此窗口下,可以观察各种窗口信息,其中最常用到的是CPU窗口和数据窗口。
图2-6-1窗口
a.CPU窗口
通过CPU窗口可以看到你编译正确的机器码及反汇编程序,可以让你更清楚地了解程序执行过程。
CPU窗口中还有SFR窗口和位窗口,让你了解程序执行过程中寄存器内容的变化。
图2-6-2CPU窗口
b.数据窗口
对51系列CPU,数据窗口有:
DATA内部数据窗口;CODE程序数据窗口;
XDATA外部数据窗口;PDATA外部数据窗口(页方式)
图2-6-3数据窗口
图2-6-4DATA(内部数据窗口)
图2-6-5CODE(程序数据窗口)
图2-6-6XDATA(外部数据窗口)
图2-6-7PDATA(页方式外部数据窗口)
第三章MCS51系列单片机实验
软件实验一存储器块清零
一、实验目的
1.掌握存储器读写方法。
2.了解存储器的块操作方法。
二、实验内容
1.指定内部RAM中某块的起始地址和长度,要求能将其内容清零。
2.指定外部RAM中某块的起始地址和长度,要求能将其内容清零。
3.指定外部RAM中某块的起始地址和长度,要求能将其内容置为某固定值(如0FFH)。
三、实验说明
通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以了解单片机编程、调试方法。
四、实验仪器和设备
PC机、WAVE软件。
五、参考程序框图
否
是
存储器块清零参考程序框图
软件实验二二进制到BCD转换
一、实验目的
1.掌握简单的数值转换算法。
2.基本了解数值的各种表达方法。
二、实验内容
3.将给定的一个单字节二进制数,转换成非压缩的二—十进制(BCD)码。
4.将给定的一个单字节二进制数,转换成压缩的二—十进制(BCD)码。
三、实验说明
计算机中的数值有各种表达方式,这是计算机的基础。
掌握各种数制之间的转换是一种基本功。
有兴趣的同学可以试试将BCD转换成二进制码。
四、实验仪器和设备
PC机、WAVE软件。
五、参考程序框图
单字节二进制数转换成非压缩BCD码框图
软件实验三数据排序
一、实验目的
1.了解数据排序的简单算法。
2.了解数列的有序和无序概念。
二、实验内容
给出一组随机数,将此组数据排序,使之成为有序数列。
三、实验说明
有序的数列更有利于查找。
本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。
再进行下一轮比较,找出第二大数据,直到全部数据有序。
四、实验仪器和设备
PC机、WAVE软件。
五、
参考程序框图
否是
否
是
否
是
数据排序参考程序框图
硬件实验一P1口输入、输出实验
一、实验目的
1.学习Pl口的使用方法。
2.学习延时子程序的编写和使用。
二、实验内容
1、P1口做输出口,接八只发光二极管(其输入端为高电平时发光二极管点亮),编写程序,使发光二极管循环点亮。
2、P1.0、P1.1作输入口接两个拨动开关S0、S1;P1.2,P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态在发光二极管上显示出来。
编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
三、实验电路连线
P1.0●-----------------------●LED0P1.0●-----------------------●S0
P1.1●-----------------------●LED1P1.1●-----------------------●S1
P1.2●-----------------------●LED2P1.2●-----------------------●LED2
P1.3●-----------------------●LED3P1.3●-----------------------●LED3
P1.4●-----------------------●LED4
P1.5●-----------------------●LED5
P1.6●-----------------------●LED6
P1.7●-----------------------●LED7
实验1:
P1口循环点灯实验2:
P1口输入输出
四、实验说明
1、P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用作输入口时必须先对它置“1”。
若不先对它置“1”,读入的数据是不正确的。
2、延时子程序的延时计算问题
对于程序Delay:
MOVR7,#200
DEL1:
MOVR6,#123
NOP
DEL2:
DJNZR6,DEL2
DJNZR7,DEL1
RET
五、实验仪器和设备
查指令表可知执行MOV指令需用1个机器周期,DJNZ指令需用2个机器周期,在12MHz晶振时,一个机器周期时间长度为1μs,所以该段程序执行时间为:
[1+(1+1+2*123+2)*200+2]*1μs
≈50ms
THKSCM-2单片机开发综合实验装置、PC机、WAVE软件、E6000/S51仿真器+POD8X5X仿真头等。
六、参考程序框图
P1口循环P1口输入
点灯框图输出框图
硬件实验二交通灯控制(软件延时法)
一、实验目的
1.学习数据输出程序的设计方法。
2.学习模拟交通灯控制的方法。
3.进一步了解软件延时方法。
二、实验内容
用CPU的P1口输出控制信号,控制六个LED灯(红,绿,黄),模拟交通灯管理。
三、实验电路连接
P1.0●-----------------------●LED0
P1.1●-----------------------●LED1
P1.2●-----------------------●LED2
P1.3●-----------------------●LED3
P1.4●-----------------------●LED4
P1.5●-----------------------●LED5
四、实验说明
l.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始为状态0。
状态0:
东西红灯,南北红灯;然后转
状态1:
南北绿灯通车,东西红灯;过一段时间转
状态2:
南北绿灯闪几次转黄灯亮,延时几秒,东西仍然红灯;再转
状态3:
东西绿灯通车,南北红灯;过一段时间转
状态4:
东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯;最后循环至状态1。
2.各用一组红、黄、绿色LED分别表示南北方向和东西方向红绿灯。
3.延时程序参考硬件实验一中的例子,具体时间长短由同学自己确定。
五、实验仪器和设备
THKSCM-2单片机开发综合实验装置、PC机、WAVE软件、E6000/S51仿真器+POD8X5X仿真头等。
六、参考程序框图
交通灯控制参考程序框图
硬件实验三计数器实验
一、实验目的
学习51单片机内部定时/计数器使用方法。
二、实验内容
51单片机内部定时计数器T0,按计数器模式工作于方式1,对P3.4(T0)引脚进行计数。
将其数值按二进制数在P1口驱动LED灯上显示出来。
三、实验电路连线
P1.0●-----------------------●LED0
P1.1●-----------------------●LED1
P1.2●-----------------------●LED2
P1.3●-----------------------●LED3
P1.4●-----------------------●LED4
P1.5●-----------------------●LED5
P1.6●-----------------------●LED6
P1.7●-----------------------●LED7
●-----------------------●T0(P3.4)
四、实验说明
本实验中内部计数器起计数器的作用。
外部事件计数脉冲由T0(P3.4)脚引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。
同时这就决定了输入波形的频率不能超过机器周期频率。
五、实验仪器和设备
THKSCM-2单片机开发综合实验装置、PC机、WAVE软件、E6000/S51仿真器+POD8X5X仿真头等。
六、参考程序框图
计数器实验参考程序框图
硬件实验四外部中断实验
一、实验目的
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
二、实验内容
用单次脉冲申请中断,在中断处理程序中对信号进行反转输出。
三、实验电路连线
P1.0●-----------------------●LED0
●------------------------●INT0
四、实验说明
编写中断处理程序需要注意的问题是:
1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2.必须在中断处理程序中设定是否允许中断重入,即设置EX0位。
本例中使用了INT0中断,一般进入中断处理程序时应保护PSW,ACC以及中断处理程序使用但非其专用的寄存器(保护现场)。
本例的INT0中断处理程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器(恢复现场)。
另外中断处理程序中涉及到关键数据的设置时应关中断,即设置时不允许中断重入。
本例中没有涉及这种情况。
3.INT0端接单次脉冲发生器。
P1.0接LED灯,以查看信号反转.
五、实验仪器和设备
THKSCM-2单片机开发综合实验装置、PC机、WAVE软件、E6000/S51仿真器+POD8X5X仿真头等。
六、参考程序框图
主程序框图INT0中断处理程序框图
硬件实验五定时器实验(电子秒表)
一、实验目的
1.进一步学习51单片机内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编程方法。
3.了解键盘显示接口工作原理。
二、实验内容
利用定时器定时,使七段数码管输出记时值。
三、实验电路连线
本实验连线实验板上已经接好,无需另外接线。
四、实验说明
本系统键盘显示接口由8279芯片控制,占用二个端口地址:
数据口FF88H,命令口FF89H,在使用键盘显示功能时,要先初始化8279。
本实验中要将记时结果送LED显示,这可通过调用下面给出的显示子程序来实现,调用过程是:
先将各位记时值拆字,分别送到LED0~LED7显示缓冲区中去,然后调用显示子程序。
本实验中用定时器T0产生1秒钟基本时间单位,本系统fosc=12MHz,当定时器T0工作在方式1(16位)时,最大定时时间为
216*1μs=65536μs
再利用软件记数,当T0中断16次时,所用时间为
65536*16=1048576μs≈1s
因此在T0中断处理程序中,要判断中断次数是否到16次,若不到16次,则只使中断次数加1,然后返回,若到了16次,则使电子秒表记时值加1(十进制),请参考硬件实验五有关内容。
五、实验仪器和设备
PC机、WAVE软件、E2000/S仿真器+POD8X5X仿真头、MULT1A用户板、实验板、开关电源等。
六、参考程序及框图
LED0EQU50H;定义显示缓冲区
LED1EQU51H
LED2EQU52H
LED3EQU53H
LED4EQU54H
LED5EQU55H
LED6EQU56H
LED7EQU57H
ORG0000H
LJMPMAIN
ORG000BH
LJMPINT_T0;转T0中断处理程序
ORG0030H
MAIN:
NOP
INIT1:
MOVDPTR,#0FF89H;INIT_8279初始化
MOVA,#00H;MODE
MOVX@DPTR,A
MOVA,#2AH;CLOCK
MOVX@DPTR,A
MOVTMOD,#01H;T0初始化,方式1
MOVTH0,#00H;T0时间常数
MOVTL0,#00H
MOVTCON,#10H;启动T0
MOVIE,#82H;开T0中断
MOV70H,#10H;中断次数记数(65536*16=1048576μs≈1s)
MOVR0,#LED0
CLRA
LOOP:
MOV@R0,A;显示缓冲区清零
INCR0
CJNER0,#LED7+1,LOOP
DISP:
LCALLDISPLAY;调显示子程序,开始显示8个0
SJMPDISP;循环调用
ORG1000H
DISPLAY:
MOVDPTR,#0FF89H;显示子程序
MOVA,#90H;8279写显示缓冲区命令
MOVX@DPTR,A
MOVR0,#8H
MOVR1,#LED0
DLOOP:
MOVA,@R1
MOVDPTR,#DISPTAB;查表,得到七段字型码
MOVCA,@A+DPTR;
DISPD2:
MOVDPTR,#0FF88H;
MOVX@DPTR,A;显示(送8279数据口)
INCR1
DJNZR0,DLOOP
RET
ORG2000H
INT_T0:
PUSHACC;T0中断处理程序开始,保护现场
PUSHPSW
MOVTH0,#00H;重新赋T0时间常数
MOVTL0,#00H
MOVPSW,#10H;选中工作寄存器2组
DJNZ70H,FAN;中断次数记数未减为0,即未到1秒,转
MOVR0,#LED7;到1秒
MOV70H,#10H;重新赋中断次数记数
LOP3:
MOVA,@R0
ADDA,#01;电子秒表记时值加1
DAA;十进制调整
JNBACC.4,LOP2;处理进位
MOV@R0,#00H
DECR0
CJNER0,#LED0-1,LOP3
CLRA
LOP2:
MOV@R0,A
FAN:
POPPSW;恢复现场
POPACC
RETI
DISPTAB:
DB3FH;0七段字型码表
DB06H;1
DB5BH;2
DB4FH;3
DB66H;4
DB6DH;5
DB7DH;6
DB07H;7
DB7FH;8
DB6FH;9
DB77H;A
DB7CH;B
DB39H;C
DB5EH;D
DB79H;E
DB71H;F
DB00H;(10H)
DB40H;-(11H)
DB76H;H(12H)
DB73H;P(13H)
DB3EH;U(14H)
DB67H;Q(15H)
DB38H;L(16H)
DB50H;r(17H)
DB80H;.(18H)
DB3DH;G(19H)
DB5CH;o(1AH)
DB08H;_(1BH)
DB04H;i(1CH)
DB37H;N(1DH)
DB1CH;u(1EH)主程序框图
DB78H;t(1FH)
DB0FFH;All(20H)
DB54H;n(21H)
END
否
是
显示子程序框图
T0中断处理程序框图