收藏 分销(赏)

MCS-51单片机实验.doc

上传人:二*** 文档编号:4511019 上传时间:2024-09-26 格式:DOC 页数:13 大小:1.04MB
下载 相关 举报
MCS-51单片机实验.doc_第1页
第1页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、MCS-51单片机实验第一部分 软件实验2软件实验一 求一组数据的最大(小)值2软件实验二 二进制数转换为BCD数3软件实验三 二进制数转换为ASCII码3第二部分 硬件实验5硬件实验一 并行口输入、输出实验5硬件实验二 外部中断实验6硬件实验三 定时计数器实验9硬件实验四 串行通信实验11第三部分 综合实验13综合实验一 电子时钟13第一部分 软件实验软件实验一 求一组数据的最大(小)值一、实验目的1.熟悉Keil mVision3软件,掌握C51语言程序的调试方法。2.理解并掌握数组的定义及初始化。3.熟悉并学会分支程序、循环程序的安排与设计。二、实验设备装有Keil mVision3的计

2、算机 1台三、实验内容1.用数组定义一组数据(如10个带符号数,每个占2字节),并赋初值;2.编程找出这组数的最大值、最小值,分别存在max、min变量中;3.编译后单步调试,打开Watches窗口和Memory窗口,观察变量值的变化以及它们在单片机存储器中的实际位置。四、实验步骤1、建立项目文件:用鼠标单击【ProjectNew Project】菜单命令,在弹出的“Creat New Project”窗口中选择项目保存的位置,在“文件名”后的框中输入项目文件名(可以与源程序文件名相同),单击“保存”。并在弹出的窗口中选择器件型号。2、建立源程序文件并添加到项目中:用鼠标单击【FileNew】

3、菜单命令(或Create a new file),进入编辑窗口,在该窗口中输入源程序,单击【FileSave】菜单命令(或保存文件快捷按钮)保存文件(必须带扩展名)。注意:用汇编语言写的程序,文件的扩展名为.ASM(必须写);如用C语言则扩展名为.C。然后将该文件添加到项目中。必要时对单片机的晶振频率、编译输出文件(.hex)进行设置。3、编译程序:用鼠标单击【ProjectBuild target或Rebuild all target files】菜单命令(或相应的快捷按钮),对源文件进行编译。如果编译有错,输出窗口将说明出错的状态和位置,用鼠标双击输出窗口的错误信息条,则自动定位源文件中出

4、错的地方,可修改并保存后再编译,直到编译通过为止。4、调试程序:(1)用鼠标单击菜单【DebugStart/Stop Debug Session】(或快捷按钮),程序进入调试状态。(2)用鼠标单击菜单【ViewWatch & Call Stack Window】和【ViewMemory Window】(或快捷按钮 和),分别打开Watches窗口和Memory窗口,设置要观察的变量和存储器(参考下图)。(3)按F11键单步跟踪调试,每执行一条语言观察变量值的变化和存储器单元的变化。检查程序运行结果与设计要求是否相符。 软件实验二 二进制数转换为BCD数一、实验要求 将给定的一个无符号二进制数x

5、(8位),转换成二-十进制(BCD)码,其个位、十位、百位分别存放到数组a的元素a0,a1,a2中。二、实验目的1.掌握简单的数制转换算法;2.了解计算机中数的各种表达方法。三、实验说明 计算机中的数值有各种表示方式,这是计算机的基础。实际中可能经常用到各种数制之间的转换。有兴趣的同学可以试试将BCD码转换成二进制。四、程序框图参考如下:五、实验步骤参考软件实验一,并学习单步执行程序、执行到光标处、设断点运行等程序调试方法。注意观察程序执行过程中变量值的变化和内部RAM单元。软件实验三 二进制数转换为ASCII码一、实验要求 给出一个二进制数(8位),将其高、低4位对应的十六进制数(09或A-

6、F)转换成ASCII码。二、实验目的1.了解十进制(或十六进制)数与ASCII码的区别;2.学习如何用查表方法进行数值转换及快速计算。三、程序C51语言程序自行编写,建议09和AF这些字符对应的ASCII码值以数组形式存放到ROM区,供查表用。四、实验步骤参考软件实验一,并学习单步执行程序、执行到光标处、设断点运行等程序调试方法。注意观察程序执行过程中变量值的变化和内部RAM单元。第二部分 硬件实验硬件实验一 并行口输入、输出实验一、实验目的1.学习单片机并行I/O口的使用方法;2.学习软件延时函数的编写和使用。二、实验要求1.用P2.0引脚(下图中P20)来驱动1只LED(下图中的D20),

7、编写程序,使LED闪烁(要求LED亮500ms,灭500ms);2.P2做输出口,接8只LED(如下图),编写程序,使LED循环点亮(流水灯);3.P3.2和P3.3做输入口,分别接两个拨动开关到GND;P2.7P2.4做输出口,接4只LED(参考下图),用来指示两个开关的闭合状态组合。实现如下“真值表”:P3.3P3.2P2.7P2.6P2.5P2.4开开亮灭灭灭开合灭亮灭灭合开灭灭亮灭合合灭灭灭亮三、实验说明1.MCS-51单片机的P0-P3口作为普通I/O口使用时是准双向口,它们做输出口时与一般的双向口使用方法相同,直接输出0或1;当作为输入口使用时,由内部结构可知,必须先对它置“1”(

8、目的是使其内部的MOSFET关断),否则读入的数据可能不正确;2.软件延时子程序(函数)就是通过(多重)循环来消耗CPU的时间,从而达到延时目的。如用汇编语言编写,可大致算出循环所需的机器周期数;如用C51语言编写,则需编译后再实际调试。注意要先设置好晶振频率。四、实验程序自行编写附:延时函数(供参考)/延时函数(C51语言)void Delay(unsigned int x)unsigned int i; while(x-) for(i=0;i123;i+);五、实验步骤参考前面的实验,并学习Step Into、Step Over、Step Out、设断点运行、运行到光标处等程序调试方法。注

9、意观察程序运行时变量值的变化、内部RAM单元、实际延时时间、外设I/O端口电平。在Keil软件中调试通过后,再用Proteus软件来验证。六、思考题1.记录每个LED点亮的持续时间,并根据实际需要进行调整,在Proteus仿真软件中或实验板上观察延时时间200ms时显示效果的区别。2.让一个共阳七段数码管(下图4位中的一位)循环显示0-9和A-F,每个数显示0.5s。用P10(即P1.0)作为位选信号,P0口输出段码。硬件实验二 外部中断实验一、实验目的1.掌握中断的应用,中断源,中断矢量和中断号等概念;2.掌握中断的开放与屏蔽,中断优先级的设定,中断响应过程;3.理解中断服务函数与主函数的关

10、系。二、实验设备1.微机一台2.Keil C51编程软件3.Proteus仿真软件4.单片机实验板及下载线(可选)三、实验要求1.通过外部中断0,启动或关闭流水灯,即上电复位时不亮,按一次INT0(P3.2)引脚的按钮,P2端口的流水灯开启,再按一次,灯熄灭。2.分别采用下降沿触发方式(IT0=1)和低电平触发方式(IT0=0),编写C51程序,调试无误后,再用Proteus软件仿真测试。在实验板上进行测试时,应考虑去抖。四、实验说明1.实验电路2.8051的中断源在MCS51系列单片机中,不同类型的单片机,其中断源个数和中断标志位的定义也有所不同。下面是8051的中断源。中断源一览表中断源名

11、称申请中断的原因触发方式选择位中断申请标志允许中断的控制位中断总允许位外部中断0引脚有低电平、或下降沿IT0(TCON)IE0(TCON)EX0(IE)EA(IE)定时器0中断T0定时器/计数器0溢出TF0(TCON)ET0(IE)外部中断1引脚有低电平、或下降沿IT1(TCON)IE1(TCON)EX1(IE)定时器1中断T1定时器/计数器1溢出TF1(TCON)ET1(IE)串行口中断RXD、TXD接收一个字节或发送一个字节完成RI、TI(SCON)ES(IE)注:( )中为该位所属对应的特殊功能寄存器3.中断系统总体框图8051中断系统的中断方式、中断开放和禁止以及中断优先级的设定总体框

12、图如Error! Reference source not found.所示:4.定时器、外部中断控制定时器中断的溢出标志位和外部中断的控制位是由定时器控制寄存器TCON来定义,如图所示:5.串行口中断控制串行口中断用发送中断和接收中断标志,在串行口控制寄存器SCON,具体见串行口实验。6.中断允许设置中断允许寄存器IE字节地址为A8H,其各位含义如图所示。7.中断优先级设置8051内部中断系统对各中断源中断优先级有一个统一的规定,各中断源在同一优先级时从高到低的排列顺序为:外部中断0定时器0中断外部中断1定时器1中断串行口中断(定时器2中断)。每个中断源的中断优先级都可以通过程序来设定为高优

13、先级还是低优先级,由中断优先级寄存器 IP 统一管理。IP寄存器各位的含义如图.8.中断入口地址/中断编号中断响应时,将对应的中断入口地址装入程序计数器PC,使程序转移到该中断入口地址单元,去执行中断服务程序。与各中断源相对应的中断入口地址、中断编号如Error! Reference source not found.所示:中断入口地址表中 断 源中 断 入 口 地 址中 断 编 号外部中断00003H0定时器T0中断000BH1外部中断10013H2定时器T1中断001BH3串行口中断0023H4五、思考题1.比较在下降沿触发和低电平触发两种方式程序中中断请求标志位IE0的异同;2.比较在查

14、询法和中断法两种程序中中断请求标志位IE0的异同。硬件实验三 定时计数器实验一、实验目的1.了解MCS-51单片机中定时/计数器的基本结构、工作原理和工作方式;2.掌握定时/计数常数(初值)的设定;3.学习定时/计数器中断法和查询法的应用。二、实验设备1.微机一台2.Keil C51编程软件3.Proteus仿真软件4.单片机实验板及下载线(可选)三、实验内容1.定时器实验实验要求(中断法或查询法):用单片机内部定时器方式计时,实现每一秒钟P2口输出状态发生一次反转。(可设置定时器溢出时间为50ms,溢出20次则为1秒)。2.对外部信号计数实验要求(无中断,只读计数值):(1)单片机对从P3.

15、4输入的信号计数,T0工作于方式1(2)将计数数值结果送至P2口显示(二进制形式)(选做:将结果以十进制形式用3位数码管来显示)。四、实验说明1.实验电路同中断实验。2.定时器/计数器模型定时器/计数器模型如下图。(1) 对计数脉冲可选择来自单片机内部振荡器或是由单片机外部引脚输入的外部脉冲;(2) 计数器的主体是一个加1计数器,它对进入脉冲进行加1计数(其计数长度由程序 设定,但不能超过16位);(3) 计数器是否计数由控制信号确定(通过TCON寄存器中的TRx置位来启动计数);(4) 计数器溢出时(进位),置一个溢出标志TFx并触发中断系统产生中断请求,也可以由用户查询TFx来判断溢出与否

16、。TFx可以由程序或是中断服务程序复位(清0)。3.定时器方式设置定时/计数器方式寄存器TMOD 的地址为89H(不可位寻址),其各位的意义如下图:M1、M0:定时/针数器为工作方式选择,具体如表所示。表 定时/计数器的工作方式M1M0工作方式说 明00方式013位计数器(THx高八位及TLx低五位);01方式116位计数器;10方式2可自动重新装入初值的8位计数器;11方式3将定时器0分为两个8位计数器。定时器T1在此方式下停止。T0工作于方式3时T1可以工作于其他方式,此时常用做串行口时钟。定时器T0有0、1、2、3共四4种工作方式,定时器T1只有0、1、2共三种工作方式。C/:定时/计数

17、选择。0为定时,定时脉冲由内部振荡器12分频后提供;1为计数,对由T0的引脚(P3.4)或T1的引脚(P3.5)输入的外部脉冲进行计数,计数的最高频率为内部振荡器的1/24。GATE:门控位。确定控制信号由TRx位还是由引脚控制。4.定时器的控制定时/计数器控制寄存器TCON的地址为88H(可位寻址),其各位的意义如Error! Reference source not found.:TF1/TF0:定时器1/0溢出中断标志位。由硬件置位,当转向中断服务程序时由硬件清0,也可由软件清0。TR1/TR0:定时器1/0运行控制位。1为启动计数,0为停止。IE1/IE0:外部中断1/0请求标志位。中

18、断时由硬件置位,当转向中断服务程序时由硬件清0,也可以由软件清0。(具体用法详见中断系统)IT1/IT0:外部中断触发方式控制位。IT1/IT0=1时为下降沿触发中断;IT1/IT0=0时为低电平触发中断。(具体用法详见中断系统)5.编程的具体步骤在实际应用中,若要使用定时/计数器,应按以下步骤进行编程:(1) 设定定时/计数器的工作方式(TMOD);(2) 给计数器设定所需的初值(TH0、TL0、TH1、TL1);(3) 开放定时/计数器中断(如果需要的话);(4) 启动计数器开始计数(通过设置TCON中的相关位TR1/TR0)五、思考题1、定时器的方式1和方式2,在设定定时常数和编写中断服

19、务程序时有何不同?2、比较中断法和查询法两种实现程序的异同?硬件实验四 串行通信实验一、实验目的1.了解MCS-51单片机串行口(UART)的结构;2.掌握串行口的工作方式及波特率的设置方法;3.掌握单片机串行通信的编程方法。二、实验设备1.微机一台2.Keil C51编程软件3.Proteus仿真软件4.单片机实验板及下载线(可选)三、实验内容1.发送和接收数据并显示实验要求(发送方用查询法,接收方用中断法):单片机甲用于发送,单片机乙用于接收。甲向乙发送0-9和A-F共16个数。乙接收这16个数存放到数组,然后依次用一个接在P0口的共阳七段数码管显示出来,每个数显示时间约0.5s。2.发送

20、字符实验要求:(1)发生外部中断0(下降沿触发)时,单片机从串行口输出字符串“Hello”;(2)发生外部中断1(下降沿触发)时,单片机从串行口输出字符串“SCUT!”。四、实验说明1.实验电路双机通信时,甲的发送端(TXD)接乙的接收端(RXD),自己画Proteus电路模型。发送字符时,直接用已有的实验板模型,在串行终端Virtual Terminal窗口点击鼠标右键,取消“Hex Display Mode”前面的。2.串行口工作方式设置串行口特殊功能控制寄存器SCON(可位寻址)的格式如下位7位6位5位4位3位2位1位0SM0SM1SM2RENTB8RB8TIRISM0、SM1:为串行口

21、工作方式选择位。8051串行口共有4种工作方式。通过对SM0、SM1的设置可以选择串行口的工作方式。具体工作方式如下Error! Reference source not found.所示。串行口工作方式选择SM0SM1方式功能说明000移位寄存器方式(波特率为fosc/12)0118位UART,波特率可变(T1溢出率/n)1029位UART,波特率为fosc/64或fosc/321139位UART,波特率可变(T1溢出率/n) SM2:多机通信控制位。主要用于工作方式2和工作方式3。在方式2和方式3中,如SM2=1,则接收到第9位数据(RB8)为0时,不启动接收中断标志RI(即RI0),并且

22、将接收到的前8位数据丢弃;RB81时,才将接收的前8位数据送入SBUF,并置位RI产生中断请求。当SM20时,则不论第9位数据为1或是为0,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。 REN:允许接收控制位。REN0,禁止串行口接收;REN1,允许串行口接收。 TB8:待发送数据第9位,用于在方式2和方式3时存放发送数据第9位。TB8由软件置位或复位。RB8:接收到的数据第9位。多机通信控制位。 TI:发送完一帧数据时,该位硬件置1,向CPU申请串行口中断。 RI:接收到一帧数据时,该位硬件置1,向CPU申请串行口中断。3. 串行通信波特率的计算 (1)方式0:

23、移位寄存器方式。 波特率fosc / 12。 (2)方式2:9位UART。 波特率2SMODfosc / 64。 (3)方式1或3:8位或9位UART。 使用定时器1作为串行口波特率发生器时, 波特率=2SMOD/32(定时器1溢出率); 当定时器1工作于方式2时, 波特率=2SMOD/32(fosc/12)/(256TH1)。SMOD为波特率选择位。在方式1、方式2和方式3时,串行通信的波特率和SMOD有关。当SMOD1时,波特率加倍;否则波特率不加倍。SMOD为PCON寄存器(不可位寻址)的最高位。五、思考题1、特殊功能寄存器SCON、PCON中各位的含义是什么?2、若串行口方式1下波特率

24、为2400,定时器T1的初值X为多少?第三部分 综合实验综合实验一 电子时钟一、实验目的1.掌握单片机并行I/O口的使用方法;2.掌握外部中断、定时器、串行口的设置及编程方法;3.学习多位数码管的动态扫描显示编程方法。二、实验设备1.微机一台2.Keil C51编程软件3.Proteus仿真软件4.单片机实验板及下载线(可选)三、实验内容1.简单电子钟实验要求:在四个共阳数码管上显示形式为“HH.MM”的时间,不显示秒位(设初始时间为23.59.56,程序开始运行时显示23.59,则过4s后应显示00.00)。2.功能较齐全的电子钟实验要求:(1)开始时在四个共阳数码管上显示形式为“HH.MM

25、”的时间,不显示秒位(设初始时间为12.34.56),可用P3.7、P3.6、P3.5的按钮分别设置时、分、秒,按一次加1,实时调整;(2)可由串行口接收PC机发来的时间值,如字符串“235957”或数值23、59、57表示将当前时间设为23:59:57;(3)发生外部中断1(下降沿触发)时,只在后两位数码管上显示秒位,前两位不显示;再次发生该中断时又恢复为“HH.MM”的形式显示。(4)发生外部中断0(下降沿触发)时,单片机从串行口发送当前的时分秒值。如当前时间为17:23:45,则发送字符串“172345”或数值17、23、45。四、实验说明1.实验电路直接用已有的实验板模型,在串行终端Virtual Terminal窗口点击鼠标右键,取消“Hex Display Mode”前面的。2.程序设计步骤仔细分析设计要求,画出程序设计流程图,对各功能模块分别编程,用函数或中断函数实现,分块调试。程序有问题时应学会使用设置断点、运行到光标处和单步运行调试,找出问题所在。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服