单片机实验指导书选修.docx
《单片机实验指导书选修.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书选修.docx(23页珍藏版)》请在冰豆网上搜索。
单片机实验指导书选修
《单片机原理及应用》
实验指导
――适合于“EL-MUT-Ⅲ”型单片机/微机实验系统
中国农业大学工学院
2012年11月
说明:
为配合中国农业大学工学院机电、测控、汽电等相关专业开设单片机原理与应用方面的课程,编写出本实验指导。
完成本实验指导中的实验,可使学生基本掌握MCS-51系列单片机的结构原理、接口技术、程序设计技巧。
指导书中详细叙述了各实验的目的、内容,列出了接线图、程序框图和实验步骤。
将实验系统连接在PC机上,通过串行口通讯线控制单片机开发系统进行实验。
实验仪上的晶振是6MHz。
所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师可根据实际的教学要求,选择相应实验。
对同一问题的解决办法往往不是唯一的,欢迎学生和老师在使用本书过程中提出最为优秀的实验方案,指示错误和不足。
实验和实验报告的要求
1、严格按照实验步骤做实验;
2、注意检查核对自己实验所用元器件、仪器、设备、用户板,做到齐全整齐;
3、整理好实验程序和实验结果;
4、实验报告书写清楚,字迹端正;
5、实验报告中所附程序要有必要的注释,流程框图条理性要好;
6、详细记录在组装、调试和测试中出现的故障或问题,进行故障分析并简述排除故障的过程和方法;
第一章:
系统概述
1.1EL型微机教学实验系统结构
EL-MUT-III型微机教学实验系统由电源、系统板、CPU板、可扩展的实验模板、微机串口通讯线、JTAG通讯线及通用连接线组成。
系统板的结构简图见图1-1。
图1-1系统板的结构简图
1.2硬件资源
1、可编程并口接口芯片8255一片。
2、串行接口两个:
8250芯片一个,系统与主机通讯用,用户不可用。
单片机的串行口,可供用户使用。
3、键盘、LED显示芯片8279一片,其地址已被系统固定为CFE8H、CFE9H。
硬件系统要求编码扫描显示。
4、六位LED数码管显示。
5、ADC0809A/D转换芯片一片,其地址、通道1—8输入对用户开放。
6、DAC0832D/A转换芯片一片,其地址对用户开放,模拟输出可调。
7、8位简单输入接口74LS244一个,8位简单输出接口74LS273一个,其地址对用户开放。
8、配有8个逻辑电平开关,8个发光二极管显示电路。
9、配有一个可手动产生正、负脉冲的单脉冲发生器。
10、配有一个可自动产生正、负脉冲的脉冲发生器,按基频6.0MHz进行1分频(CLK0)、二分频(CLK1)、四分频(CLK2)、八分频(CLK3)、十六分频(CLK4)输出方波。
11、配有一路0---5V连续可调模拟量输出(AN0)。
12、配有可编程定时器8253一个,其地址、三个定时器的门控输入、控制输出均对用户开放。
13、配有可编程中断控制器8259一个,其中断IRQ输入、控制输出均对用户开放。
14、2组总线扩展接口,最多可扩展2块应用实验板。
15、配有两块可编程器件EPM7064,一块被系统占用。
另一块供用户实验用。
两块器件皆可通过JTAG接口在线编程。
使用十分方便。
16、灵活的电源接口:
配有PC机电源插座,可与PC电源直接接驳。
另外还配有外接开关电源,提供所需的+5V,±12V,其输入为220V的交流电。
1.38051单元
1)、微处理器:
i80c31,它的P1口、P3口皆对用户开放,供用户使用。
2)、时钟频率:
6.0MHz
3)、存储器:
程序存储器与数据存储器统一编址,最多可达64k,板载ROM(监控程序27C256)12k;RAM1(程序存储器6264)8k供用户下载实验程序,可扩展达32k;RAM2(数据存储器6264)8k供用户程序使用,可扩展达32k。
(RAM程序存储器与数据存储器不可同时扩至32k,具体与厂家联系)见图1-2。
在程序存储器中,0000H----2FFFH为监控程序存储器区,用户不可用,4000H----5FFFH为用户实验程序存储区,供用户下载实验程序。
数据存储器的范围为:
6000H----7FFFH,供用户实验程序使用。
注意:
因用户实验程序区位于4000H-----5FFFH,用户在编写实验程序时要注意,程序的起始地址应为4000H,所用的中断入口地址均应在原地址的基础上,加上4000H。
例如:
外部中断0的原中断入口为0003H,用户实验程序的外部中断0的中断程序入口为4003H,其他类推,见表1-1。
图1-2存储器组织图
中断名称
8051原中断程序入口
用户实验程序响应程序入口
外中断0
0003H
4003H
定时器0中断
000BH
400BH
外中断1
0013H
4013H
定时器1中断
001BH
401BH
串行口中断
0023H
4023H
表1-1用户中断程序入口表
4)可提供的对8051的基本实验
为了提高微机教学实验质量,提高实验效率,减轻主讲教师和实验教师的劳动强度,在该系统的实验板上,除微处理器外、程序存储器、数据存储器外,还增加了8255并行接口、8250串行控制器、8279键盘、显示控制器、8253可编程定时器、A/D、D/A转换、单脉冲、各种频率的脉冲发生器、输入、输出电路等模块,各部分电路既相互独立、又可灵活组合,能满足各类学校,不同层次微机实验与培训要求。
可提供的实验如下:
(1)、8051P1口输入、输出实验
(2)、简单的扩展输入、输出实验
(3)、8051定时器/计数器实验
(4)、8051外中断实验
(5)、8279键盘扫描、LED显示实验
(6)、8255并行口输入、输出实验
(7)、8253定时器/计数器实验
(8)、8259中断实验
(9)、串行口通讯实验
(10)、ADC0809A/D转换实验
(11)、DAC0832D/A转换实验
(12)、存储器扩展实验
(13)、交通灯控制实验
5)资源分配
本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程。
此单元也分两部分:
一部分为系统CPLD,完成系统器件,如监控程序存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0---CS5)给用户使用,他们的地址固定,用户不可改变。
具体的对应关系见表1-2。
另一部分为用户CPLD,它完全对用户开放,用户可在一定的地址范围内,进行编译码,输出为插孔LCS0----LCS7,用户可用的地址范围见表1—2,注意,用户的地址不能与系统相冲突,否则将导致错误。
表1-2:
CPLD地址分配表
地址范围
输出孔/映射器件
性质(系统/用户)
0000H--2FFFH
监控程序存储器
系统*
3000H--3FFFH
数据存储器
系统*
4000H--7FFFH
用户程序存储器
系统*
8000H--CFDFH
LCS0—LCS7
用户
CFE0H
PC机串行通讯芯片8250
系统*
CFE8H
显示、键盘芯片8279
系统
CFA0H--CFA7H
CS0
系统
CFA8H--CFAFH
CS1
系统
CFB0H--CFB7H
CS2
系统
CFB8H--CFBFH
CS3
系统
CFC0H--CFC7H
CS4
系统
CFC8H--CFCFH
CS5
系统
CFD0--FFFFH
LCS0—LCS7
用户
注:
系统地址中,除带“*”用户既不可用,也不可改外,其他系统地址用户可用但不可改。
第二章8051调试软件的使用
2.1与计算机建立连接步骤
1、用串口交叉线将实验箱与计算机串口连接好;
2、检查实验箱的电源线是否连接好;
3、给实验箱上电,此时LED显示“199502”;
4、打开8051调试软件,此时上位机如图2-1所示,
图2-1上位机软件界面
5、点击确定,并且及时按下实验箱上的黄色PRESET按钮,则软件进入EL型(80C51)教学实验环境,LED显示“C—”,表示实验箱与上位机连接正常,可进行编程调试。
注意:
1、给实验箱上电后要及时打开软件,按下“确定”,否则,LED显示“P_”,表示实验箱未与上位机建立连接;
2、如果操作未成功,检查计算机的COM口是否为“COM1”,如不是,选择相应的COM口再次操作。
2.2编辑程序
主窗口下。
在“文件”中选择“新建”菜单,可进行C语言编辑或汇编语言编辑。
也可以选择“打开”,打开现有的实验程序(选择后缀.ASM或.C,可分别打开汇编语言程序和C语言实验程序)。
2.3编译程序
程序编辑完成后,即可进行编译调试。
主菜单中有“编译”栏,可对当前文件进行编译。
“调试”栏可进行系统复位及其他调试手段。
“选项”栏“通讯串口选项”可进行通讯口设置。
“查看”栏可打开内存、外存、寄存器等窗口,通过修改存储器地址可查看不同地址区的内容,也可以对其进行修改。
2.4程序调试步骤
如程序是以“.ASM”为扩展名的汇编程序,则程序编辑完成后。
在工具栏中选择“汇编”命令(F3)(
),编译完成后弹出编译结果信息。
如汇编不成功,请检查错误并重新编辑程序,直到汇编成功。
在工具栏中选择“调试”命令(F5)(
),将程序下载到实验箱的程序存储器。
调试程序,可进行如下操作:
程序复位(Ctrl+F2)(
)、设置/清除断点(Ctrl+F8)(
)、跟踪调试(F7)(
)、单步执行(F8)(
)、执行到光标行(F4)(
)、运行(F9)(
)。
在调试的过程中不可以对程序进行编辑,如果要对程序进行编辑,请执行“停止调试”命令(Shift+F5)(
),然后方可对程序进行编辑;或对单片机进行复位,从主菜单的“调试”下拉菜单中选择“单片机复位”命令(Ctrl+R),马上按下实验箱的复位按钮,复位成功后,对程序进行编辑。
第三章实验部分
实验一P1口实验一
一、实验项目
1.P1口做输出口,接8只发光二极管,编写程序使发光二极管循环点亮。
2.P1口做输入口,接8个按钮开关,74LS273做输出口,用发光二极管实时显示8个按钮的开关状态。
二、实验目的
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
三、实验原理
P1口为准双向口,它的每一位都能独立地定义为输入位或输出位;当定义为输入位时,必须向锁存器相应位写入“1”。
延时程序的实现常有两种方法:
定时器中断、指令循环;大多采用后一种。
本实验系统晶振为6.144MHz,则一个机器周期为
即
。
现要实现0.1s的程序,可大致如下:
MOVR7,#200
(1)
DEL1:
MOVR6,#X
(2)
DEL2:
DJNZR6,DEL2(3)
DJNZR7,DEL1(4)
MOV一个机器周期、DJNZ指令两个机器周期,一个机器周期需
,现求出X的值:
指令1指令2指令3指令4
x=126代入指令2即可。
四、实验连线
项目1:
P1.0~P1.7接发光二极管L1~L8
项目2:
P1.0~P1.7接按钮K1~K8;74LS273的SO0~SO7接发光二极管L1~L8,片选端CSU8\接CS0(由程序选择的入口地址而定)。
五、实验电路
六、程序框图
七、参考程序
项目1:
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
MOVA,#H;先让第一个发光二极管点亮
LOOP:
MOVP1,A;从P1口输出到发光二极管
MOVR1,#;延时0.1秒
DEL1:
MOVR2,#200
DEL2:
DJNZR2,DEL2
DJNZR1,DEL1
A;左移一位,点亮下一个发光二极管
.4.
LJMP
项目2:
NAMET1_2;P1口输入实验
OUT_PORTEQU0CFA0H;片选地址CS0
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
MOVP1,#H;复位P1口为输入状态
MOVA,P1;读P1口的状态值入累加器A
MOVDPTR,#OUT_PORT;将输出口地址赋给地址指针DPTR
MOVX@DPTR,A;将累加器A的值赋给DPTR指向的地址
JMP;继续循环监测端口P1的状态
END
八、问题思考
1.项目1中,如何实现相反方向循环移动?
两个一起循环移动?
2.项目2中,P1口初值置“0”行不行,为什么?
实验二简单I/O口扩展实验二
一、实验项目
74LS244做输入口读取开关状态;74LS273做输出口将开关状态通过发光二极管显示出来
二、实验目的
1.学习在单片机系统中扩展I/O口的方法
2.学习数据输入、输出程序的编制方法
三、实验原理
74LS244是一个扩展输入口,同时也是一个单向驱动器
四、实验连线
74LS244的SI0~SI7接按钮K1~K8,片选端CS244\接CS0;74LS273的SO0~SO7接发光二极管L1~L8,片选端CS273\接CS1
五、实验电路
六、
开始
程序框图
置端口地址
从74LS244读入开关状态
从74LS273输出开关状态
延时0.01秒
.11.
七、参考程序
NAMET4;I/O口扩展实验
CSEGAT0000H
LJMPSTART
CSEGAT4100H
INPORTEQU0CFA8H;74LS244端口地址
OUTPORTEQU0CFB0H;74LS273端口地址
START:
MOVDPTR,#
LOOP:
A,@DPTR;读开关状态
MOVDPTR,#
MOVX@DPTR,A;显示开关状态
MOVR7,#10H;延时
DEL0:
MOVR6,#H
DEL1:
DJNZR6,DEL1
DJNZR7,
JMP
END
实验三定时器实验——循环彩灯实验
一、实验项目
由8031内部定时器1按方式1工作,P1口做输出,发光二极管显示。
要求编写程序模拟循环彩灯,变化花样为:
L1~L8依次点亮、依次熄灭、全亮、全灭,时序间隔0.5秒。
二、实验目的
1.学习8031内部定时器有使用和编程方法
2.进一步掌握中断处理程序的编写方法
三、实验原理
由8031内部定时器1工作在方式1工作时,作16位定时器使用。
定时器/计数器的输入脉冲周期与机器周期一样,为
。
本实验系统
,要实现0.5秒延时,要在定时器中设置一个时间常数使其每隔0.1秒产生一次中断,CPU响应中断后R0值减一,令皂=05H即可。
机器周期=
;设计数初值为X,则
定时器和中断系统初始化主要是对IP、IE、TCON、
TMOD的相应位设置,并将时间常数送入定时器中。
四、实验连线
P1.0~P1.7相应接发光二极管L1~L8。
五、实验电路
六、程序框图
中断程框图
Yes
No
Yes
主程序框图
.16.
七、参考程序
NAMET5;定时器实验
OUTPORTEQU0CFB0H
CSEGAT0000H
LJMP
CSEGAT401BH;定时器/计数器中断程序入口地址
LJMP
CSEGAT4100H
START:
MOVA,#01H;首显示码
MOVR1,#H;设置偏移量,即从基址寄存器到表首的距离
MOVR0,#05H;05是计数值
MOVTMOD,#H;计数器置为方式
MOVTL1,#H;装入时间常数
MOVTH1,#H
ORLIE,#88H;CPU中断开放标志位和定时器
;1溢出中断允许位均置位
SETBTR1;开始计数
LOOP1:
CJNER0,#00,DISP
MOVR0,#05H;R0计数计完一个周期,重置初值
INCR1;表地址偏移量加
CJNER1,#31H,LOOP2
MOVR1,#03H;如到表尾,则重置偏移量初值
LOOP2:
MOVA,R1;从表中取显示码入累加器
MOVCA,@A+PC
JMPDISP
DB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH
DB0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH
DB0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH
DB0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00H
DISP:
;MOVDPTR,#OUTPORT
;MOVX@DPTR,A
MOV,A;将取得的显示码从P1口输出显示
JMPLOOP1
INT:
CLRTR1;停止计数
DECR0;计数值减一
MOVTL1,#H;重置时间常数初值
MOVTH1,#H
SETB;开始计数
RETI;中断返回
END
八、问题思考
在中断子程序中省去指令CLRTR1和指令SETBTR1行不行?
会有什么结果?
实验四8255A可编程并行接口实验
一、实验项目
用8255A可编程并行接口芯片,重复实验四的内容。
PA口作为显示输出口,PB口作为开关量输入口。
二、实验目的
1.了解8255A芯片的结构及编程方法
2.掌握通过8255A并行接口读取开关数据的方法
三、实验原理
设置好8255A各端口的工作模式:
三个端口都工作于方式0,PA口作为显示输出口,PB口作为开关量输入口。
四、实验连线
8255A的PA0-PA7接发光二极管L1-L8,PB0-PB7接开关K1-K8,片选信号CS8255接CS0。
五、实验电路
六、程序框图
七、参考程序
CSEGAT0000H
LJMPSTART
CSEGAT4100H
PAEQU0CFA0H
PBEQU0CFA1H
PCTLEQU0CFA3H
START:
MOVDPTR,#PCTL;置8255A控制字,A、B、C口均工作
MOVA,#H;方式0,A、C口为输出,B口为输入
MOVX@DPTR,A
LOOP:
MOVDPTR,#PB;从B口读入开关状态值
MOVXA,
MOVDPTR,#PA;从A口将状态值输出显示
MOVX,A
MOVR7,#10H;延时
DEL0:
MOVR6,#0FFH
DEL1:
DJNZR6,
DJNZR7,
LJMPLOOP
END
八、问题思考
试分析改置8255A控制字,A、B、C口工作方式1,B、C口为输出,A口为输入,可不可以。