外部中断,定时器与串行口综合实验
硬件实验四 外部中断实验
硬件实验四外部中断实验一、实验要求用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。
二、实验目的1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
三、实验电路及连线四、实验说实明中断服务程序的关键是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2.必须在中断程序中设定是否允许中断重入,即设置EXO位。
本例中使用了INTO中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。
本例的中断程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。
另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。
本例中没有涉及这种情况。
INTO(P3.2)端接单次脉冲发生器。
P1.0接LED灯,以查看信号反转.五、程序流程图硬件实验五 定时器实验一、实验要求用CPU 内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转.二、实验目的1、学习8051内部计数器的使用和编程方法。
2、进一步掌握中断处理程序的编程方法。
三、实验电路及连线四、实验说明1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。
内部计数器在单片机中主要有定时器和计数器两个功能。
本实验使用的是定时器。
2、定时器有关的寄存器有工作方式寄存器TMOD 和控制寄存器TCON 。
TMOD 用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。
TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
3、内部计数器用作定时器时,是对机器周期计数。
每个机器周期的长度是12个时钟周期。
实验系统的晶振是6MHZ ,本程序工作于方式2,即8位自动重装方式定时器, 定时器100us 中断一次, 请列出定时常数的计算公式,并计算出定时常数:机器周期=定时常数的计算公式 :定时常数= .然后对100us 中断次数计数10000次,就是1秒钟.4、在中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
单片机外部中断实验报告
实验三外部中断实验报告班级:学号:姓名:教师:一、实验目的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管D1~D8。
每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3口是8位准双向口,具有双重功能:第一功能和P1口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 INT0 外部中断0请求输入线P3.3 INT1 外部中断1请求输入线P3.4 T0定时器/计数器T0外部计数器脉冲输入线P3.5 T1定时器/计数器T1外部计数器脉冲输入线P3.6 WR外部数据存贮器写脉冲输出线P3.7 RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断0 03H定时器/计数器T1溢出中断0BH外部中断1 13H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EA ES ET1 EX1 ET0 EX0(1)外部中断源允许中断(中断0:EX0=1;中断1:EX1=1)。
(2)CPU开中断(EA=1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IT0是选择文字则外部中断0请求(INT0)边沿触发方式或电平触发方式的控制位。
前一方式IT0=1,后一方式IT0=0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式IT1=0。
当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
单片机串行通信实验报告(实验要求、原理、仿真图及例程)
《嵌入式系统原理与实验》实验指导实验三调度器设计基础一、实验目的和要求1.熟练使用Keil C51 IDE集成开发环境,熟练使用Proteus软件。
2.掌握Keil与Proteus的联调技巧。
3.掌握串行通信在单片机系统中的使用。
4.掌握调度器设计的基础知识:函数指针。
二、实验设备1.PC机一套2.Keil C51开发系统一套3.Proteus 仿真系统一套三、实验容1.甲机通过串口控制乙机LED闪烁(1)要求a.甲单片机的K1按键可通过串口分别控制乙单片机的LED1闪烁,LED2闪烁,LED1和LED2同时闪烁,关闭所有的LED。
b.两片8051的串口都工作在模式1,甲机对乙机完成以下4项控制。
i.甲机发送“A”,控制乙机LED1闪烁。
ii.甲机发送“B”,控制乙机LED2闪烁。
iii.甲机发送“C”,控制乙机LED1,LED2闪烁。
iv.甲机发送“C”,控制乙机LED1,LED2停止闪烁。
c.甲机负责发送和停止控制命令,乙机负责接收控制命令并完成控制LED的动作。
两机的程序要分别编写。
d.两个单片机都工作在串口模式1下,程序要先进行初始化,具体步骤如下:i.设置串口模式(SCON)ii.设置定时器1的工作模式(TMOD)iii.计算定时器1的初值iv.启动定时器v.如果串口工作在中断方式,还必须设置IE和ES,并编写中断服务程序。
(2)电路原理图Figure 1 甲机通过串口控制乙机LED闪烁的原理图(3)程序设计提示a.模式1下波特率由定时器控制,波特率计算公式参考:b.可以不用使用中断方式,使用查询方式实现发送与接收,通过查询TI和RI标志位完成。
2.单片机与PC串口通讯及函数指针的使用(1)要求:a.编写用单片机求取整数平方的函数。
b.单片机把计算结果向PC机发送字符串。
c.PC机接收计算结果并显示出来。
d.可以调用Keil C51 stdio.h 中的printf来实现字符串的发送。
中断及定时器实验报告
一、实验目的1. 理解中断和定时器的基本概念及工作原理。
2. 掌握51单片机中断系统和定时器的配置方法。
3. 学会使用中断和定时器实现特定功能,如延时、计数等。
4. 培养动手实践能力和问题解决能力。
二、实验原理中断是计算机系统中的一种机制,允许CPU在执行程序过程中,暂停当前程序,转去执行另一个具有更高优先级的程序。
51单片机具有5个中断源,包括两个外部中断(INT0、INT1)、两个定时器中断(定时器0、定时器1)和一个串行口中断。
定时器是51单片机内部的一种计数器,可以用于产生定时中断或实现定时功能。
51单片机有两个定时器,即定时器0和定时器1。
定时器可以工作在模式0、模式1、模式2和模式3。
三、实验内容及步骤1. 实验内容一:外部中断实验(1)实验目的:掌握外部中断的使用方法,实现按键控制LED灯的亮灭。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置外部中断,实现按键控制LED灯的亮灭。
2. 实验内容二:定时器中断实验(1)实验目的:掌握定时器中断的使用方法,实现LED灯闪烁。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断,实现LED灯闪烁。
3. 实验内容三:定时器与外部中断结合实验(1)实验目的:掌握定时器与外部中断结合使用的方法,实现按键控制LED灯闪烁频率。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断和外部中断,实现按键控制LED灯闪烁频率。
四、实验结果与分析1. 外部中断实验:成功实现了按键控制LED灯的亮灭。
当按下按键时,LED灯亮;松开按键时,LED灯灭。
2. 定时器中断实验:成功实现了LED灯闪烁。
LED灯每隔一定时间闪烁一次,闪烁频率可调。
3. 定时器与外部中断结合实验:成功实现了按键控制LED灯闪烁频率。
MCS-51单片机实验
MCS-51单片机实验第一部分软件实验 (2)软件实验一求一组数据的最大(小)值 (2)软件实验二二进制数转换为BCD数 (3)软件实验三二进制数转换为ASCII码 (3)第二部分硬件实验 (5)硬件实验一并行口输入、输出实验 (5)硬件实验二外部中断实验 (6)硬件实验三定时计数器实验 (9)硬件实验四串行通信实验 (11)第三部分综合实验 (13)综合实验一电子时钟 (13)第一部分软件实验软件实验一求一组数据的最大(小)值一、实验目的1.熟悉Keil μVision3软件,掌握C51语言程序的调试方法。
2.理解并掌握数组的定义及初始化。
3.熟悉并学会分支程序、循环程序的安排与设计。
二、实验设备装有Keil μVision3的计算机 1台三、实验内容••••1.用数组定义一组数据(如10个带符号数,每个占2字节),并赋初值;••••2.编程找出这组数的最大值、最小值,分别存在max、min变量中;••••3.编译后单步调试,打开Watches窗口和Memory窗口,观察变量值的变化以及它们在单片机存储器中的实际位置。
四、实验步骤1、建立项目文件:用鼠标单击【Project—New Project…】菜单命令,在弹出的“Creat New Project”窗口中选择项目保存的位置,在“文件名”后的框中输入项目文件名(可以与源程序文件名相同),单击“保存”。
并在弹出的窗口中选择器件型号。
2、建立源程序文件并添加到项目中:用鼠标单击【File—New…】菜单命令(或Create a new file),进入编辑窗口,在该窗口中输入源程序,单击【File—Save】菜单命令(或保存文件快捷按钮)保存文件(必须带扩展名)。
注意:用汇编语言写的程序,文件的扩展名为.ASM(必须写);如用C语言则扩展名为.C。
然后将该文件添加到项目中。
必要时对单片机的晶振频率、编译输出文件(.hex)进行设置。
3、编译程序:用鼠标单击【Project—Build target或Rebuild all target files】菜单命令(或相应的快捷按钮),对源文件进行编译。
实验三定时器及外部中断实验
实验三定时器及外部中断实验一、实验目的1)熟悉VC5416的定时器工作原理。
2)掌握VC5416定时器的编程控制方法。
3)学会使用定时器的中断方式来控制程序执行方法。
4)掌握外部中断的编程控制方法,理解DSP对于中断的响应的过程。
5)了解并学习混合编程的实现方法。
二、实验设备1)计算机一套,DSP硬件仿真器一台,实验箱一台。
2)CCS4.1-CCS5.5软件版本。
3)源程序及链接命令文件见:D:\ EXPER\EXP3目录下的.asm 、.cmd、.C 和.lib文件。
三、实验步骤(一)、连接仿真器,将仿真器插接到C5416的JTAG接口上,另一头插接到电脑的USB接口上,因为仿真器是金属外壳,容易和箱子内部的电路触碰造成短路,从而对实验箱造成损坏,这个要特别注意,也不允许在机箱打开电源情况下插拔仿真器。
(二)、实验箱配置及连线:C5416DSP核心板上的SW1的1-6的开始设置为off off off off on on(上电后工做于1/2分频器方式,其它实验也按照此设置不变,我试验过改为PLL*2方式仿真器就连接不上了),SW2设置为on on on on。
将DSP核心板所在试验箱引脚连线区的BCANRX(C54的XF)引脚,与指示灯连线区LAMP的L1连接起来,这样就可以通过XF控制这个L1这个方光管的亮灭了。
将DSP核心板所在试验箱引脚连线区的INT0(C54的外部中断0输入)引脚与单脉冲按键PAULSE的P-(按下输出负脉冲)连接起来,这样按下按键时,就会给DSP的INT0中断引脚发送一个负脉冲。
连线照片见程序目录中的图片文件。
(二)、打开实验箱电源开关。
(三)、使用给定的文件,按照实验一的步骤建立实验项目,例如工作区目录为D:\ exp3 中建立一个exp3的实验项目,添加所有的给定的文件。
(四)、仿真调试方法1、通过菜单Project- Build All 对项目进行编译和链接,如下:如果有错误会出现在problem 窗口中。
中断系统实验)
电子信息工程系实验报告课程名称:单片机原理及接口技术 实验项目名称:中断系统实验 实验时间: 班级: 姓名: 学号一、实验目的1、熟悉keil 仿真软件、伟福仿真器和实验板中外部中断的使用。
2、了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。
3、理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。
4、熟悉中断处理特别是外部中断处理的过程,掌握中断处理子程序的书写格式和使用方法。
二、实验原理1、中断的主要概念:现代的计算机都具有实时处理功能,能对外部发生的事件如人工干预、外部事件及意外故障做出及时的响应或处理,这是依靠计算机的中断系统来实现的。
所谓中断是指,单片机内部有一个中断管理系统,它对内部的定时器事件、串行通信的发送和接收事件及外部事件(如键盘按键动作)等进行自动的检测判断,当有某个事件产生时,中断管理系统会置位相应标志通知CPU ,请求CPU 迅速去处理。
2、5个中断源: MCS -51系列中不同型号单片机的中断源数量是不同的(5~11个),最典型的8051单片机有5个中断源,即外部中断0、1,内部定时器中断0、1,串口中断。
3、中断3个相关寄存器的格式与设置:(1)中断请求标志及外部中断方式选择寄存器TCON ,其格式如下:IE0:外部中断0请求源(INT0)标志。
IE0=1,外部中断0正在向CPU 请求中断,当 CPU 响应该中断时由硬件清零IE0(边沿触发方式)。
IT0:外部中断源 INT0 触发方式控制位。
IT0 = 0,外部中断0程控为电平触发方式,当P3.2输入低电平时,置位IE0。
IT0 = 1,外部中断0程控为边沿触发方式,相继的两次采样,一个周期中采样到为高电平,接着的下个周期中采样到为低电平,则置‘1’ IE0。
IE1:外部中断1请求(INT1,P3.3)标志。
IE1 = 1外部中断1向 CPU 请求中断,当 CPU 响应外部中断时,由硬件清‘0’ IE1(边沿触发方式)。
8051单片机实验
新建项目
项目窗口
(4) 单击快捷工具栏中的“编译”图标(或 F9键),对刚才保存的项目进行编译和连接, 如图所示。
在编译之前,软件会自动将项目中的源程 序文件存盘。如果发生编译连接错误,则 在“信息窗口”中报告如图所示编译连接 出错信息。此时可将鼠标指向“信息窗口” 中的错误行并双击鼠标左键,光标将自动 跳转到编辑窗口中源程序的相应出错位置, 便于用户修改。修改源程序文件并保存之 后,重新进行第(3)步。
从P1.0输出不同频率的方波信号,经放 大滤波后驱动扬声器发声。声音的频率由延 时程序控制。实验电路如下图所示,执行程 序后,扬声器将发出一定频率的声音。
程序参考流程 如右图所示:
复习思考题
复习8051单片机并行I/O端口特性, P0~P3口各有什么特点?
为什么说P1口是“准双向口”?在实 验中用P1口输入时如果不先向P1口写入 “1”而直接读取引脚,会出现什么现象?
② 模拟交通信号灯控制。
8051单片机中断系统
8051单片机有5个中断源,有两个 中断优先级,高优先级的中断源可以中 断低优先级的服务程序,反之不行。当 两个同样级别的中断申请同时到来时, 则按一个固定的查寻次序来处理中断响 应。
中断源 入口地址
外部中断0 0003H
定时/计数器0 000BH
外部中断1 0013H
D7 D6 D5 D4 D3 D2 D1 D0
EA
ES ET1 EX1 ET0 EX0
EA:中断总允许位。 EA=0,CPU关闭所有的中断申请; EA=1,允许各个中断源的中断申请,但 还要取决于各中断源中断允许控 制位的状态。
ES:串行口中断允许位。 ES=1,串行口开中断; ES=0,串行口关中断。
实验3外部中断实验报告
实验3外部中断实验报告以下是为大家整理的实验3外部中断实验报告的相关范文,本文关键词为实验,外部,中断,报告,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。
实验三定时中断实验一、实验目的1.掌握51单片机外部中断的应用。
2.掌握中断函数的写法。
3.掌握定时器的定时方法。
4.掌握LeD数码管的显示。
二、实验内容1.用外部中断0测量负跳变信号的累计数,同时在LeD数码管上显示出来。
2.用外部中断改变流水灯的方式。
3.用定时器T1的方式2控制两个LeD以不同周期闪烁。
使用定时器T1的方式2来控制p0.0、p0.1引脚的两个LeD分别以1s和2s 的周期闪烁。
三、实验仿真硬件图在proteus软件中建立如下图所示仿真模型并保存。
1.用外部中断0测量负跳变信号的累计数,同时在LeD数码管上显示出来(用中断方式做计数器)。
2.用外部中断改变流水灯的方式。
中断前:开始时,p0.0~p0.7的8个灯依次点亮。
外部中断0:p0.0~p0.7的左右4个灯闪烁亮8次外部中断1:p0.0~p0.7的8个灯间隔闪烁8次改变中断优先级和保护现场,观察运行结果四、编程提示12345678p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7AT89c51c122pfu1x112m18 xTAL219xTAL1p0.0/AD0p0.1/AD1p0.2/AD2p0.3/AD3p0.4/AD4p0.5/AD5p 0.6/AD6p0.7/AD7p2.0/A8p2.1/A9p2.2/A10p2.3/A11p2.4/A12p2.5/A13p2 .6/A14p2.7/A15p3.0/RxDp3.1/TxDp3.2/InT0p3.3/InT1p3.4/T0p3.5/T1p3. 6/wRp3.7/RD3938373635343332212223242526272810111213141516171234567812345678c222pfD1D2D3D4D5D6D7D8R110k9RsTc310uf2930 31psenALeeAR2220R3220R4220R5220R6220R7220R8220R9220外部中断0请求InT0,由p3.2管脚输入,通过IT0位来决定是低电平有效还是下降沿有效。
实验一清零实验
实验一清零实验一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把7000H~70FFH的内容清零。
三、实验程序框图四、实验步骤1、当DVCC单片机仿真实验系统独立工作时(1)将固化区EPROM中实验程序目标码传送到仿真RAM区,操作如下:输入0后按F1键,再输入0FFF后按F2键,再输入0后按EPMOV稍等,系统返回初始状态,显示“P.”。
(2)根据表2—1所示,通过键盘输入实验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,稍侯,按RESET键退出运行;如果以单步运行程序,则输入0030后,按SETP键,按一次执行一条语句,直到执行到003CH为止,按MON键退出运行;如果以断点运行程序,则先输入003CH(断点地址),再按F1键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。
(3)用存贮器读写方法检查7000H~70FFH中的内容应全是00H。
2、当DVCC仿真实验系统联PC机时(1)在闪动“P.”状态,按PCDBG键;(2)在PC机处于在Win95/98软件平台下,单击DVCC图标。
(3)在“系统设置”选项中设定仿真模式为内程序、内数据。
对硬件实验4、5、6、7、8、9、12、15而言,仿真模式应设定为内程序、外数据。
(4)根据屏幕提示进入51/96动态调试菜单。
(5)联接DVCC实验系统(Ctrl+H)(6)装载目标文件(Ctrl+L)(7)设置PC起始地址(8)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序(9)单步、断点运行完后,在存贮器窗口内检查7000H~70FFH中的内容是否全为00H一、思考:假使要把7000~70FFH中的内容改成FF,如何编制程序。
实验二拆字实验一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把7000H的内容拆开,高位送7001H低位,低位送7002H低位。
单片机原理及应用习题-(带答案)
《单片机原理及应用》习题一、填空1、MCS-51单片机访问外部存储器时,利用 ALE 信号锁存来自 P0 口的低8位地址信号。
2、MCS-51系统中,当PSEN 信号有效时,表示从P0口稳定地读入了 低8位地址 。
3、通常单片机上电复位时PC=0000H ,SP= 07H ;而工作寄存器则缺省采用第 00 组,这组寄存器的地址范围是从 00H~07H 开始。
4、MCS-51单片机的存储器从物理结构上可划分 4 个空间,从逻辑上分别可划分 3 个空间。
5、MCS-51单片机8031中有 2 个16位的定时/计数器,可以被设定的工作方式有 4 种。
6、MCS-51有 5 中断源,有 2 中断优先级,优先级由软件填写特殊功能寄存器 加以选择。
7、当/EA 接地时,MCS-51单片机将从_ 外部程序的存储器_____的地址0000H 开始执行程序。
8、中断请求信号有 电平 触发和 边沿 触发两种触发方式。
9、用串行口扩展并行口时,串行接口的工作方式应选为 0 。
10. MCS -51复位后·CPU 从 0000 H 单元开始执行程序。
·SP 的内容为 07 H , 第一个压入堆栈的数据将位于 片内 RAM 的 08 H 单元。
·SBUF 的内容为 不定 。
·ADDC A , #54H 指令执行后 , PSW 寄存器的内容将等于 01 H 。
11. 8051AH·片内设置有4KB 的ROM , 当EA 端保持高电平时 , PC (程序计数器)值超过 OFF H时 , 将自动转向执行外部程序存储器的程序。
·可做通用I/O 的至少有_P1_口的8条I/O 线。
_P0_口作地址/数据总线, 传送地址码的_低_8位 , _P2 口作地址总线 , 传送地址码的高__8位。
12.存储器组织·8051片内RAM 有 128 个字节 , 片外RAM 寻址范围为 64K 个字节。
嵌入式系统实验报告
嵌入式系统实验报告学院:计算机科学与工程姓名:学号:______________专业:指导老师:完成日期:实验一:流水灯案例、8位数码管动态扫描案例一、实验目的1.1进一步熟悉Keil C51集成开发环境调试功能的使用;1.2学会自己编写程序,进行编译和仿真测试;1.3利用开发板下载hex文件后验证功能。
二、实验原理2.1:实验原理图2.2:工作原理2.2.1:流水灯电路中有LO,1,L2,L3,4,L5,L6,L7 共八个发光二极管,当引脚LED_ SEL输入为1,对于A、B、C、D、E、F、G、H引脚,只要输入为1,则点亮相连接的发光二极管。
A~H引脚连接STM32F108VB芯片的PE8~PE15,程序初始化时,对其进行初始设置。
引脚LED_ SEL 为1时,发光二极管才工作,否则右边的数码管工作。
注意,LED SEL 连接于PB3,该引脚具有复用功能,在默认状态下,该引脚的I0不可用,需对AFIO_ MAPR寄存器进行设置,设置其为10可用。
2.2.2:8位数码管数码管中的A~G、DP段分别连接到电路图中的A~G、H线上,当某段上有一-定的电压差值时,便会点亮该段。
当E3输入为1,也就是LED_ SEL输入为0时,根据SELO~SEL2的值确定选中的数码管,即位选,再根据A~H引脚的高低电平,点亮对应段,即段选。
三、实验结果3.1:流水灯对于给出的流水灯案例,下载HEX文件后,在开发板上可观察到L0-L7从左至右依次点亮,间隔300ms。
当全部点亮八个发光二极管后,八个发光二极管同时熄灭,间隔300ms后,发光二极管再次从左至右依次点亮。
如此反复循坏。
3.2:8位数码管对于给出的8位数码管动态扫描案例,下载后,在开发板上可观察到8个数码管从左至右依次显示对应的数字,且每一个数码显示的数字在1-9之间循环。
可以通过加快扫描频率,使得八位数码管在人眼看上去是同时显示。
在后续的案例中可以看到该现象。
单片机实验指导书
目录实验一系统认识实验 (2)实验二端口I/O输入输出实验 (14)实验三外部中断实验 (17)实验四定时器实验 (21)实验五串行口通信实验 (25)实验六串行通信的调试实验 (29)实验七数码管静态显示实验 (33)实验八数码管动态显示实验 (38)实验一系统认识实验一、实验目的1.学习Keil C51编译环境的使用;2.学习STC单片机的下载软件STC-ISP的使用;3.掌握51单片机输出端口的使用方法。
二、实验内容任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。
三、接线方案单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:图1-1实验线路四、实验原理51单片机有4个8位的并行I/O端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。
作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。
例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为:MOV P0, #0FFHMOV A, P0若将P0.0位的数据传送至C中,程序为:SETB P0.0MOV C, P0.0五、实验步骤1、连接串行通信电缆和电源线;2、根据图1-1实验线路进行电路连接;3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行”“单片机”;4、打开实验箱上的电源开关。
5、利用Keil C51创建实验程序,并进行编译生成后缀为.HEX的文件;6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序ORG 0000H ;程序的开始LJMP MAIN ;转入主程序ORG 0200H ;主程序的开始MAIN: MOV P1,#00H ;P1口做准备M1: INC P1 ;P1口连接输出计数,LCALL DELAY ;转入延时子程序LJMP M1 ;循环DELAY: MOV R5,#255 ;延时子程序D1: MOV R6,#255DJNZ R6,$DJNZ R5,D1RETEND ;程序体结束七、思考题1、利用其他I/O口实现LED加1点亮功能;2、利用P1端口实现流水灯(左移或右移)功能;3、实现LED其他点亮功能。
单片机实验报告
单片机实验报告《单片机系统实验》实验报告院系:学号:姓名:2017年12月一、实验目的1.了解32位单片机(STM32系列)原理及其应用,熟悉单片机的资源,掌握单片机的最小系统设计及扩展技术,掌握单片机的编程语言。
2.通过本实验了解LCD液晶工作原理,能通过编程操作液晶的显示。
二、实验设备STM32实验系统一套,PC机一台。
三、实验原理(1)I/O口及定时器实验:STM32的GPIO口控制4个发光二极管,了解其硬件连接方式,学会使用STM32的一个定时器,掌握对定时器计时方式的编程。
编写程序循环点亮4个发光二极管,控制点亮时间为1秒钟闪烁。
(2)外部中断实验:掌握STM32单片机外部中断的用法,学会设置中断优先级,在实验(1)的基础上完成,如果有外部中断发生改变发光二极管的发光规律。
(如,仅其中2个灯亮,再次触发外部中断后,发光二极管重新变成4个灯循环点亮。
)(3)串行口通信实验:掌握STM32单片机与计算机之间的硬件连接方式,了解二者之间的传输协议,进行数据传输。
(4)LCD实验:掌握STM32单片机与液晶之间的硬件连接方式,单片机如何驱动液晶进行显示。
四、内容与步骤1.学会使用IAR或KEIL的编译链接调试环境,熟悉有关STM32使用到的库,并能顺利建立包含各种库文件的工程。
(2学时)2.I/O口实验:在建立工程的基础上能点亮发光二极管。
(2学时)3.定时器实验:循环定时(用定时器做)点亮4个灯,即每1秒闪烁点亮一个灯,循环往复(或叫跑马灯实验)。
(2学时)4.外部中断实验:按键作为触发外部中断的条件,中断发生时,改变发光二极管的点亮规律。
(2学时)5.串行口通信实验:编写串行口通信实验程序,能在计算机与STM32系统间进行ASCII码的传输。
(2学时)6.LCD实验:通过自行编写库文件和了解液晶显示字库,能在液晶上显示“北京航空航天大学机械工程及自动化学院”字样。
(6学时)五、关键代码1.I/O口及定时器实验/*通过定时器3中断函数实现跑马灯,现象为每个LED灯依次点亮1秒后熄灭*/void TIM3_IRQHandler(void){extern uint8_t LED_Status[5];if(TIM3->SR&0X0001)//溢出中断{if(LED_Status[1]==0){LED1_ON;LED2_OFF;LED3_OFF;LED4_OFF;LED_Status[1]=1;}else if(LED_Status[1]==1){LED1_OFF;LED2_ON;LED3_OFF;LED4_OFF;LED_Status[1]=2;}else if(LED_Status[1]==2){LED1_OFF;LED2_OFF;LED3_ON;LED4_OFF;LED_Status[1]=3;}else if(LED_Status[1]==3){LED1_OFF;LED2_OFF;LED3_OFF;LED4_ON;LED_Status[1]=0;}}TIM3->SR&=~(1<<0);//清除中断标志位}2.外部中断实验/*LED灯的发光规律有两种:一种是每个LED灯依次点亮1秒后熄灭,另一种是每次2个LED灯同时点亮,持续1秒后向前移动1个LED灯的位置。
工作报告之单片机数码管实验报告
单片机数码管实验报告【篇一:单片机实验报告——led数码管显示实验】《微机实验》报告led数码管显示实验指导教师:专业班级:姓名:学号:联系方式:一、任务要求实验目的:理解led七段数码管的显示控制原理,掌握数码管与mcu的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。
实验内容:利用c8051f310单片机控制数码管显示器基本要求:利用末位数码管循环显示数字0-9,显示切换频率为1hz。
提高要求:在4位数码管显示器上依次显示当天时期和时间,显示格式如下: yyyy (年份)mm.dd(月份.日)hh.mm(小时.分钟)思考题:数码管采用动态驱动方式时刷新频率应如何选择?为什么?二、设计思路c8051f310单片机片上晶振为24.5mhz,采用8分频后为3.0625mhz ,输入时钟信号采用48个机器周期。
0到9对应的断码为:fch、60h、dah、f2h、66h、b6h、beh、e0h、feh、f6h 基础部分:由于只需要用末位数码管显示,不需要改变位码,所以只需要采用led的静态显示。
采用查表的方法,通过循环结构,每次循环查找数据表下一地址,循环十次后重新开始循环。
每次循环延时1s,采用定时器0定时方式1。
提高部分:四个数码管都要显示,所以采用led的动态显示。
由于数码管的位选由p0.7、p0.6控制,p0端口的其他引脚都没用到,所以对p0端口初始化赋00h,每次循环加40h、选中下一位,四次后十六进制溢出,p0端口变又为00h回到第一个数码管。
每位数码管显示一个段码后都延时1ms(否则数码管太亮,刺眼)采用定时器0定时方式1,依然采用查表法改变段码值。
通过循环: djnz r5,backmovr5,#250 djnz r4,back movr4,#8来控制每种模式的切换时间,我采用2s切换一次(8*250*1ms=2s)。
切换模式,可以采用改变查表法的偏移量来实现,没切换一次模式,偏移量加04h,三次后回到初始偏移量,来实现三种模式的循环显示。
51单片机实验10-9(青岛大学)小白发
(3)本实验中延时子程序采用指令循环来实现,在系统时间允许的情况 下可以采用此方法。
延时时间 = 机器周期(12÷11.0592MHz)×指令所需机器周期数×循环次数 延时时间程序:
= 28×2μs=512μs。
青岛大学电工电子实验教学中心
实验二 定时/计数器实验
初值X = 2k-定时值/机器周期T
100ms 的定时初值计算:
• X=216-100ms /2μs=65536-50000=15536= 3CB0H
13 位计数器500μs 定时初值
一、实验目的
熟悉MCS-51单片机的定时/计数功能,掌握初始化编程显示 方法。
二、实验内容
• 1、定时器实验:在使用11.0592 MHZ晶振的条件下,用 定时器0产生100MS 定时,由P1.0 输出周期为200MS的方 波信号,并通过示波器观察测量P1.0 的输出波形。 2、计数器实验:手动外部输入脉冲,计数器记到6 时, 由P1.0 输出信号,使LED 发光。
• 1. P3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加1。 • 2. P1口做输出口,编写程序,使P1口接的8 个发光二极管L1—L8按16进 制加1方式点亮发光二极管。
青岛大学电工电子实验教学中心
实验一 P1口开关量输入输出实验
三、实验说明
(1)P1口是准双向口,每一位都可独立地定义为输出或输入。当P1口用 作输入口时必须先对它置“1”。若不先对它置“1”,读入的数据是不正 确的。
三、程序框图
实验2.1
实验外部中断实验报告
实验三定时中断实验一、实验目得1、掌握51单片机外部中断得应用。
2、掌握中断函数得写法。
3、掌握定时器得定时方法。
4、掌握LED数码管得显示。
二、实验内容1、用外部中断0测量负跳变信号得累计数,同时在LED数码管上显示出来。
2、用外部中断改变流水灯得方式。
3、用定时器T1得方式2控制两个LED以不同周期闪烁。
使用定时器T1得方式2来控制P0、0、P0、1引脚得两个LED分别以1s与2s得周期闪烁。
三、实验仿真硬件图在Proteus软件中建立如下图所示仿真模型并保存。
}同级自然优先级:外部中断0→定时器T0中断→外部中断1→定时器T1中断→串行口中断。
中断优先级别得设定:实验二要求:初始状态为P0、0~P0、7得8个LED显示灯依次循环点亮;外部中断0服务程序为8个LED灯,左4个,右4个闪烁8次,外部中断1服务程序8个LED灯,间隔闪烁8次。
⑴设定外部中断0为高优先级,先执行外部1中断,过程中用外部0中断来将其中断,反之不行。
注意保护现场。
⑵设定外部中断1为高优先级,先执行外部0中断,过程中用外部1中断来将其中断,反之不行。
注意保护现场。
实验三(调试下列程序,在错误行后面注明错误及改正方法):#include <reg51、h>#define ucharunsigned char;sbit D0=P1^0;sbitD1=P1^1;uchar a,b;void main(){EA=1;ET1=1;TMOD=0x20;ﻩTL1=6;ﻩTR0=1;a=0;ﻩb=0;ﻩwhile(1);}void t1()interrupt 1{ﻩa++;ﻩb++;if(a=1000){D0=~D0ﻩa=0;}if(b=4000)ﻩ{ﻩD1=~D1;ﻩﻩb=0;}写出源程序,并注释实验报告格式实验三定时中断实验学院: 专业:年级: 实验时间: 姓名: 学号: 指导教师:一、实验目得1、掌握51单片机外部中断得应用。
单片机原理及接口技术(李朝青)课后习题答案――第五章
TF1:定时器T1溢出中断请求。功能与用法类似定时器T0
(3)串行口中断类
串行口中断是为串行数据的传送需要而设置的。串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从RI端引入芯片,才可能引发中断。
答:
中断响应时间不是确定不变的。由于CPU不是在任何情况下对中断请求都予以响应的;此外,不同的情况对中断响应的时间也是不同的。下面以外部中断为例,说明中断响应的时间。
在每个机器周期的S5P2期间,端的电平被所存到TCON的IE0位,CPU在下一个机器周期才会查询这些值。这时满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令“LCALL”,使程序转入中断矢量入口。调用本身要用2个机器周期,这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,至少需要3个机器周期,这是最短的响应时间。
如果遇到中断受阻的情况,这中断响应时间会更长一些。例如,当一个同级或更高级的中断服务程序正在进行,则附加的等待时间取决于正在进行的中断服务程序:
如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为1~3个机器周期;如果正在执行的是RETI指令或者访问IE或IP的指令,则附加的等待时间在5个机器周期内。
12、"89C51单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?答:
有两种方式:
电平触发和边沿触发
电平触发方式:
CPU在每个机器周期的S5P2期间采样外部中断引脚的输入电平。若为低电平,使IE1(IE0)置“1”,申请中断;若为高电平,则IE1(IE0)清零。
单片机习题答案解析1_2
习题一1.什么是单片机,和微机相比较,它有什么优点?2.请叙述51系列单片机的主要产品及其特点。
3.除51系列单片机外,常用的单片机还有哪些型号,各有什么优点?4.单片机中常用的数制有哪些,它们之间相互如何转换?5.计算机中常用的二进制编码有哪些,请分别予以叙述。
6.(1)10和(-1)10的原码、反码和补码分别是多少?习题二1.单片机主要应用在什么领域?2. 89C51单片机包含哪些主要逻辑功能部件? 各有什么主要功能?3.89C51单片机EA端如何使用?4.什么是机器周期、指令周期?89C51指令周期、机器周期和时钟周期的关系如何?当主频为12MHz时,一个机器周期等于多少微秒?执行一条最长的指令需多少微秒?5.如何认识89C51存储器空间在物理结构上可划分为四个空间,而在逻辑上又可划分为三个空间?各空间的寻址范围、寻址方式是什么?6.89C51有哪些主要的特殊功能寄存器,分布在哪里?7.内部RAM低128B从功能和用途方面,可划分为哪三个区域?8.89C51内部RAM有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存器组的选择由什么决定?9.89C51的外部RAM和I/O口是如何编址的,如何寻址?10.89C51的程序存储器的寻址空间是多少,如何区别片内程序存储器和片外程序存储器的?11.89C51的位寻址区在哪里,位寻址空间是多少?12.什么是堆栈,什么是SP,89C51的堆栈位于什么地方,复位后堆栈指针初值是多少,一般将SP设置为多少?进栈、出栈时堆栈指针将怎样变化?13.单片机包括哪两种复位方式,在单片机应用系统中为何需要系统复位,复位后主要寄存器的状态如何?14.89C51的P3口各引脚的第二功能是什么?15.89C51有几种低功耗方式,如何进入和退出?习题三1.什么是指令,什么是指令系统?2.89C51总共有多少条指令,分为哪几类?3.89C51有哪些寻址方式,各自的寻址空间如何?4.说明下列指令中源操作数采用的寻址方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬件实验八外部中断,定时器与串行口综合实验
一.实验目的
1.进一步巩固外部中断,定时计数器和串行口的原理
2.进一步巩固外部中断,定时计数器使用和编程方法
3.进一步巩固串行口与PC机通信的实现方法
二.实验内容
独立按键按下后,单片机每隔3s将内部的RAM60H开始的存储单元中的数据发送到串行口,并在PC上的串行调试助手上显示。
再次按下,则停止传送。
若继续按下,则继续传送。
以此类推。
三.实验连线
用杜邦线将P3.0口和独立按键连接起来
四.实验说明
本实验结合外部中断,定时计数器和串行口的知识,实现数据定式传输。
独立按键的按下将产生从高到低的电平变化,可作为外部中断的输入信号。
主程序中,应首先对外部中断,定时计数器和串行口进行初始化。
在外部中断程序中判断是发送还是停止发送,若需要发送数据则开启定时器,若停止发送数据则关闭定时器。
在定时器中断服务程序中发送数据。
五.实验代码及其现象
程序代码:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
char code table[]="communication engineering kingsam 1006052150"; char *p;
uint i;
int k=0;
char overtime,flag;
void init() //初始化函数
{
TMOD=0x21; //置工作方式
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=0xfd;
TL1=0xfd;
EA=1;
EX0=1;
ET0=1;
IT0=1;
ES=1;
TR1=1; //启动定时器R1
SCON=0x40;
p=0x60;
p=table;
}
void int0() interrupt 0 //外部中断子函数{
if(flag==0)
{
flag=1;
TR0=1;
}
else
{
flag=0;
TR0=0;
}
}
void T0_interrupt() interrupt 1 //定时器T0中断函数{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i++;
if(i==60) //定时3秒
{
i=0;
overtime=1;
}
}
void main() //主函数{
init();
while(1)
{
if(overtime==1)
{
*p=table[k++];
SBUF=*p;
p++;
while(TI==0);
TI=0;
overtime=0;
if(k==42)
{
k=0;
}
}
}
}
实验思路:本实验要求实现按下独立按键之后,单片机每隔3s将内部RAM60H开始的存储单元中的数据发送到串行口,并在PC上的串口调试助手上显示。
再次
按下,则停止发送。
若继续按下,则继续发送,以此类推。
故我们可以把整
个实验程序分成三个模块来完成。
外部中断模块,定时器定时模块以及串口
发送模块。
首先在外部中断模块内部控制定时器T0的使能端是否置一,从
而控制定时器T0开始计数的时间,以实现按下一次独立按键,数据发送,
再按一下,数据不发送的功能。
然后在定时器模块内部定时的时间,我们本
题设计为3s。
最后就是串行口的发送模块,每经过3s,则发送一个数据,
然后在电脑的串口测试助手上接收一个数据。
实现现象:在PC上的串口调试助手上显示出如下图的字符,每显示一个字符,间隔为3s
六.实验心得
这次实验有些难度,需要提前复习找材料,主要是考验大家综合能力,把外部中断,定时器与串行口实验综合运用,单片机每隔3s将内部RAM60H开始的存储单元中的数据发送到串行口,并在PC上的串口调试助手上显示。
需要设置延迟时间,使它们在相同时间延迟。