《单片微机原理及应用实验指导书新8学时》.docx
- 文档编号:30748553
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:26
- 大小:1.80MB
《单片微机原理及应用实验指导书新8学时》.docx
《《单片微机原理及应用实验指导书新8学时》.docx》由会员分享,可在线阅读,更多相关《《单片微机原理及应用实验指导书新8学时》.docx(26页珍藏版)》请在冰豆网上搜索。
《单片微机原理及应用实验指导书新8学时》
MCS-51单片机实验指导书
任家富陶永莉编
成都理工大学
通信工程
2009年3月
引言
单片机技术的出现给现代测控领域带来了一次新的技术革命。
目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。
因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。
通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。
本实验仪可以实现的实验内容:
(1)单片机开发软件及仿真器的使用和P1口实验
(2)I/O口实验(交通灯实验,温度传感器,蜂鸣器、I2C)
(3)定时器实验(流水灯、交通灯、数码管等)
(4)总线实验(流水灯LED、外部RAM)
(5)系统扩展(包括:
LCD、ADC、DAC、RAM等)
(6)通信实验(RS232与计算机之间的串口实验)
(7)传感器实验(1-Wire温度实验)
(8)键盘实验(扫描接口)
(9)电机实验(四相六线式步进电机)
(10)时钟实验(RTC—PCF8563)
(11)软件实验(多个数求和、排序等)
(12)中断实验(外部中断、定时器、UART)
目录
引言2
实验一单片机集成开发环境应用3
一实验目的3
二实验内容4
三实验步骤11
四实验程序11
五思考问题12
实验二单片机I/O口实验12
一实验目的12
二实验内容12
三实验步骤13
四思考问题14
实验三定时器中断14
一实验目的14
二实验内容14
三实验步骤18
四思考问题18
实验四通信实验18
一实验目的18
二实验内容18
三实验步骤20
四思考问题23
实验一单片机集成开发环境应用
一实验目的
1.熟悉单片机集成开发软件(Keil);
2.掌握单片机仿真器的使用;
3.掌握单片机P1口使用;
二实验内容
1、集成开发环境Keil介绍及开发流程
KEILuVISION2是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM(产品全生命周期管理),汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。
KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。
安装好后,让我们一起来建立一个小程序项目吧。
即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。
首先当然是运行KEIL51软件。
运行几秒后,出现如图1-1的屏幕。
图1-1启动时的屏幕
2、建立您的第一个项目
1)建立您的第一个项目
点击Project菜单,选择弹出的下拉式菜单中的NewProject,如图1-2。
接着弹出一个标准Windows文件对话窗口,如图1-3,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。
在“文件名”中输入您的第一个C程序项目名称,这里我们用“test”,这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。
“保存”后的文件扩展名为uv2,这是KEILuVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。
图1-2NewProject菜单
图1-3文件窗口
2)选择所要的单片机
选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。
此时屏幕如图1-4所示。
AT89C51有什么功能、特点呢?
请看图中右边有简单的介绍,是英文的。
稍后的章节会作较详细的介绍。
完成上面步骤后,我们就可以进行程序的编写了。
图1-4选取芯片
3)在项目中创建新的程序文件或加入已经存在的程序文件
首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。
如果您没有现成的程序,那么就要新建一个程序文件。
在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。
点击图1-5中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单File-New或快捷键CTRL+N来实现。
图1-5新建文件
4)如果没有已经存在的程序文件,新建、保存
点击图1-5中的3保存新建的程序,也可以用菜单File-Save或快捷键CTRL+S进行保存。
因是新文件所以保存时会弹出类似图1-3的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。
如图1-6鼠标在屏幕左边的SourceGroup1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。
我们选“AddFiletoGroup‘SourceGroup1’”弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。
这时在SourceGroup1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。
图1-6把文件加入到项目文件组中
5)编译调试
C程序文件已被我们加到了项目中了,下面就剩下编译运行了。
这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX文件。
要生成用于芯片烧写的HEX文件,应进行如下设置:
在CreatHEXFile前打选择。
图中1、2、3都是编译按钮,不同是1是用于编译单个文件。
2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。
3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。
在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。
5是菜单中的它们,我个人就不习惯用它了。
嘿嘿,这个项目只有一个文件,您按1.2.3中的一个都可以编译。
在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们就依靠它来进行查错。
6是有一个小放大镜的按钮,这就是开启\关闭调试模式的按钮,它也存在于菜单Debug-Start\StopDebugSession,快捷键为Ctrl+F5。
图1-7编译程序
6)调试、生成HEX文件
进入调试模式,软件窗口样式大致如图1-8所示。
图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。
3是复位,模拟芯片的复位,程序回到最开头处执行。
图1-8调试运行程序
3、下载到单片机的内部运行
1)用KEIL(或用TOPICE52)生成的HEX文件
步骤:
1点击Project菜单,选择弹出的下拉式菜单中的NewProject。
2选择所要的单片机,如选择常用的Ateml公司的AT89C51。
3在项目中创建新的程序文件或加入已经存在的程序文件。
4如果没有已经存在的程序文件,新建、保存。
5编译
6调试、生成HEX文件
2)下载
本实验仪提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的内部flash。
连接ISP下载器和单片机的ISP下载口。
注意:
单片机的P1.5P1.6P1.7不能被短接。
3)ISP下载方法
使用Easy51Pro.exe软件。
ISP下载步骤:
1选择器件
2装载HEX文件
3擦除器件
4写器件
5
4)运行
将KEIL生成的HEX文件下载到单片机的内部flash后,按REST键和关机后再开机即可运行单片机的内部的程序。
三实验步骤
依照实验内容开始进行实验,熟悉Keil软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM扩展名,C文件为.C扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则进行在线软件的仿真调试。
仿真调试分为两种:
软件仿真和硬件仿真,前者不使用仿真器,后者使用硬件仿真器。
本实验箱提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的内部flash,重复此部分内容,直到熟练掌握开发环境的使用。
四实验程序
1、汇编程序:
ORG 0000H
SJMP START
ORG 0030H;(*)
START:
MOV P1,#00000010B;将P1.0与P1.1分别置低电平、高电平
NOP;空指令,不执行任何操作
NOP
NOP
LJMP START;跳转到STA
END;程序结束
2、C程序:
附:
关于此程序的C51实现
#include
#include
voidmain()
{
while
(1)
{
P1=0x02;//置位P1.1,清零P1.0
}
}
五思考问题
1)(*)处0030H其作用是什么?
如果改变,应注意哪些?
2)如果二极管的阴、阳极插反,怎么改进程序,使之发光?
3)用软件延时的办法实现指示灯的闪烁。
实验二单片机I/O口实验
一实验目的
1、熟悉单片机I/O口的特点
2、掌握单片机I/O口的编程
二实验内容
1、P1口交通灯程序编写(调试时连接JP3的8个跳线)
2、蜂鸣器发声程序
三实验步骤
调试时连接JP3的8个跳线。
1、蜂鸣器发声:
ORG0000H
LJMPMAIN
MAIN:
SETBP1.2
CALLDELAY
CLRP1.2
CALLDELAY
SJMPMAIN
DELAY:
MOVR7,#255;延时子程序
D1:
MOVR6,#255
D2:
DJNZR6,D2
DJNZR7,D1
RET;子程序返回
END;程序结束
2、流水灯:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVDPTR,#2000H
MOV@R0,#0FEH
MOVA,@R0
MOVX@DPTR,A
ACALLDELAY;延时
MOVR3,#07H;设置左移7次
LOOP:
RLA;左移一位
MOVX@DPTR,A
ACALLDELAY;延时
DJNZR3,LOOP;R3是否为0,不为0转LOOP继续执行
AJMPMAIN;返回主程循环执
DELAY:
MOVR7,#255;延时子程序
D1:
MOVR6,#255
D2:
DJNZR6,D2
DJNZR7,D1
RET;子程序返回
END;程序结束
同学们可自编。
四思考问题
1:
用C51编流水灯程序
2:
用C51编蜂鸣器发声程序
实验三定时器中断
一实验目的
1、熟悉单片机中断的概念;
2、熟悉单片机内部定时器的硬件结构;
3、掌握单片机定时器的编程;
4、掌握单片机的时序及锁存器的使用;
5、掌握用定时器实现交通灯和流水灯显示。
二实验内容
1、中断是指CPU正在处理某些事务的时候,外部又发生了某一事件,请求CPU及时处理。
于是,CPU暂时中断当前的工作,转而处理所发生的事件。
处理完毕,再回到原来被中断的地方,继续原来的工作。
这样的过程,称为中断。
下图分别为中断方式流程和嵌套流程。
图4-2中断方式流程
2、单片机共有5个中断源,两个优先级,并可以实现两级中断嵌套。
图4-4中断系统结构
MCS-51单片机响应中断有四个条件:
1)中断源有请求;
2)寄存器IE的总允许位EA=1,且IE相应的中断允许位为1;
3)无同级或高级中断正在服务;
4)现行指令执行完最后一个机器周期。
3、单片机有两个16位的硬件定时器/计数器,分别称为Timer0和Timer1。
每个定时器都有四种工作方式,称为方式0、方式1、方式2和方式3。
工作方式有软件控制。
其结构图如下。
图4-5定时器/计数器结构
单片机的定时器/计数器都统称为定时器,是为定时器是对机器周期进行计数,而计数器是对外部的脉冲进行计数。
通常情况下,都称为定时器。
定时器的四种工作方式是由软件来控制的,如下表所示,定时器工作方式寄存器TMOD中的M0、M1两为决定了它的工作方式。
表4-1定时器的四种工作方式
M1M0
工作方式
说明
00
方式0
13位计数器
01
方式1
16位计数器
10
方式2
自动再装入8位计数器
11
方式3
定时器0:
分为两个8位计数器
定时器1:
对外部停止计数
4、使用单片机的定时器T0产生100ms的定时信号,使实验仪主板上的流水灯(8只红色发光二极管)依次发光,并循环。
设此时系统的时钟频率为6MHz,再根据它来决定定时器T0的初始值。
由于时钟频率为6MHZ,所以,机器周期为2µs。
初始值计算有以下公式的出,t=(216-T0初值)×机器周期,就可以计算出初始值,公式是依据定时器的工作原理的出的,51单片机的定时器是加法计数的,即由有一个数开始,每一个机器周期加一,直至溢出。
5、实验主板上的8只红色发光二极管的亮/灭是由8位锁存器74HC573进行锁存。
电路如下图。
图4-6流水灯电路
由图可以看出,锁存器是挂在系统总线上的,有外部地址进行统一编址,是外部地址64K地址空间的一部分。
74HC573的锁存信号有译码电路产生,又因为573在控制端C引脚为高电平时,数据通道打开,从高变到低时,数据被锁存,所以,C端门控信号是由74HC138译码器的输出端(译码地址:
2000H)在加一个反相器得到的。
程序设计:
由系统总线扩展I/O口,实现流水灯的程序设计。
示例1:
用软件延时实现流水灯的延时。
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVDPTR,#2000H
MOV@R0,#0FEH
MOVA,@R0
MOVX@DPTR,A
ACALLDELAY;延时
MOVR3,#07H;设置左移7次
LOOP:
RLA;左移一位
MOVX@DPTR,A
ACALLDELAY;延时
DJNZR3,LOOP;R3是否为0,不为0转LOOP继续执行
AJMPMAIN;返回主程循环执
DELAY:
MOVR7,#255;延时子程序
D1:
MOVR6,#255
D2:
DJNZR6,D2
DJNZR7,D1
RET;子程序返回
END;程序结束
示例2:
给出定时器的中断服务程序,同学可以进行修改,形成由中断完成的流水灯程序设计。
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIME
MAIN:
MOVTH0,#0D8H
MOVTL0,#0A0H
MOVTMOD,#01H;定时器工作方式1
SETBET0;开定时中断
SETBEA;开总中断
SETBTR0;定时器开始计时
中断服务程序:
TIME:
MOVTH0,#0D8H
MOVTL0,#0A0H
RETI
三实验步骤
1、首先用软件延时的方法,实现流水灯实验;
2、用定时器设计流水灯实验,让流水灯依次点亮或熄灭,并掌握外部扩展时地址的分配(扩展外部I/O,使用锁存器)。
四思考问题
1:
用C51采用软件延时的方法,实现流水灯程序。
2:
用C51采用定时器延时设计流水灯实验,让流水灯依次点亮或熄灭程序。
实验四通信实验
一实验目的
1、熟悉单片机通信的原理;
2、熟悉MCS-51单片机UART四种工作方式;
3、掌握UART的编程方法
二实验内容
1、串行通信基本知识
在MCS-51单片机内部,有一个通用异步接收/发送器(UART)。
这是一个全双工串行接口,能同时进行发送和接收数据。
利用这个串行接口,可以实现单片机之间的单机通信、多机通信,以及与PC机之间的通信。
通信方式种类:
一种是并行通信,一种是串行通信。
串行通信的三种方式:
单工通信、半双工通信和全双工通信。
同步技术分为:
异步通信、同步通信,它们之间的不同点可以参考相关参考书目。
异步通信的一般数据格式为:
图7-1异步通信的一帧数据格式
同步通信的数据格式为:
图6-1同步通信的数据格式
2、MCS-51单片机的通用串行口结构
MCS-51有一个可编程的全双工串行通信接口,可作为通用异步接收/发送器UART,也可作为同步移位寄存器。
它的帧格式有8位、10位和11位,可以设置为固定波特率和可变波特率。
串口的工作方式主要有SCON和PCON两个寄存器来决定。
图6-3串口控制寄存器
SCON的最高两位SM0、SM1表示串行口工作方式控制位,两位对应四种工作方式,如表7-1所示(fosc是晶振频率)。
图6-4电源控制寄存器
PCON的最高位SMOD是波特率倍增位。
串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不提高一倍。
单片机复位时,SMOD=0。
3、单片机串口的工作方式
(1)方式0的波特率
工作方式0时,移位脉冲由机器周期的第6个状态周期S6给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。
因此,波特率是固定的,为振荡频率的1/12,不受PCON寄存器中SMOD的影响。
用公式表示为:
工作方式0的波特率=fosc/12(fosc时钟频率)
(2)方式2的波特率
工作方式2时,移位脉冲由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中的SMOD位的值,当SMOD=0时,波特率为fosc的1/64;当SMOD=1时,波特率为fosc的1/32,用公式表示为;
工作方式2波特率=(2SMOD/64)×fosc
(3)工作方式1和方式3的波特率
这两种工作方式的波特率由定时器T1的溢出率决定,波特率的数值可以参考教科书中的表。
4、实验箱统中的串行接口电路
下图为实验箱系统中的串行接口电路采用的接口芯片是MAX232。
图6-5串口接口电路
5、串行接口接收程序
可使用串口调试助手程序来接收和发送数据。
三实验步骤
1、试编写自适应波特率的程序,根据外部的数据速率决定本身的波特率。
程序设计1:
实现将计算机端发送过来的数据返回给计算机终端。
程序示例1:
ORG0000H
LJMPMAIN
ORG0023H
LJMPUART
MAIN:
MOVTMOD,#20H
MOVTL1,#0F3H
MOVTH1,#0F3
MOVPCON,#80H
SETBES
MOVSCON,#50H
SETBTR1
SETBEA
SJMP$
UART:
CLRES
JNBRI,LL
MOVA,SBUF
MOVSBUF,A
SETBES
LJMPEXIT
LL:
CLRTI
SETBES
EXIT:
RETI
END
2、根据实验箱系统提供的原理图,熟悉实验提供的参考程序。
完成使用UART的同步方式,实现数码管显示。
程序设计2:
使用UART的同步方式,实现数码管显示。
程序示例2:
ORG0000H
LJMPSTART
MTDEQU30H;发送缓冲区首址MTD=30H,伪指令。
START:
MOVSCON,#00H;串口中断方式0
MOVR1,#MTD;发送缓冲器数据初始化
MOV@R1,#03H;"0"
INCR1
MOV@R1,#9FH;"1"
INCR1
MOV@R1,#25H;"2"
INCR1
MOV@R1,#0DH;"3"
INCR1
MOV@R1,#99H;"4"
INCR1
MOV@R1,#49H;"5"
INCR1
MOV@R1,#041H;"6"
INCR1
MOV@R1,#1FH;"7"
INCR1
MOV@R1,#01H;"8"
INCR1
MOV@R1,#09H;"9"
INCR1
MOVR2,#10;送发送缓冲区的代码个数
LOOP:
LCALLUARTNO;显示子程序
MOVR2,#10;再次送发送缓冲区的代码个数,以便循环显示
SJMPLOOP;循环显示
UARTNO:
MOVR0,#MTD;缓冲区首址入R0
SOUT:
MOVA,@R0;发送数据入A
MOVSBUF,A;启动发送
CALLDELAY;延时
WAIO:
JNBTI,WAIO;发送等待
CLRTI;发送结束标志清0
INCR0;指向下一个发送数据地址
DJNZR2,SOUT;10个字节发送完?
未完转SOUT
DELAY:
MOVR7,#255;延时子程序
D1:
MOVR6,#255
D2:
DJNZR6,D2
DJNZR7,D1
RET;子程序返回
END;程序结束
四思考问题
1:
用C51试编写自适应波特率的程序,根据外部的数据速率决定本身的波特率。
实现将计算机端发送过来的数据返回给计算机终端。
2:
用C51使用UART的同步方式,实现数码管显示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片微机原理及应用实验指导书新8学时 单片 微机 原理 应用 实验 指导书 学时