单片机实验-外部中断、计数器定时器
- 格式:doc
- 大小:17.00 KB
- 文档页数:3
计数器实验报告㈠实验目的1.学习单片机内部定时/计数器的使用和编程方法;2.进一步掌握中断处理程序的编程方法。
㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台5.信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。
㈣实验说明1.本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
2.计数脉冲由信号发生器输入(从T0端接入)。
3.计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4.将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH ;T0的中断入口地址AJMP MAIN1MAIN:MOV SP,#60HMOV TMOD,#15H ;设置T1做定时器,T0做计数器,都于方式1工作MOV 20H,#14H ;装入中断次数MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位MOV TL0,#00H计数器主程序框图中断返回恢复现场NY 是否到1秒?显示置T1定时常数INT _T1入口保护现场清T0计数值中断服务程序框图开 始置T0,T1模式及初始值设置初始常数开中断等 待MOV TH0,#00HSETB TR1 ;启动定时器T1SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断MAIN1:PUSH PSWPUSH ACCCLR TR0CLR TR1 ;保护现场MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位,50ms;允许T1中断DJNZ 20H,RETUNT ;未到1s,继续计时MOV 20H ,#14H;1s到重新开始SHOW: ;显示计数器T0的值MOV R0,TH0 ;读计数器当前值MOV R1,TL0MOV A,R1MOV B,#0AHDIV AB;将计数值转为十进制MOV C,ACC.3 ;显示部分,将A中保存的十位赋给L0~L3 MOV P1.0,CMOV C,ACC.2MOV P1.1,CMOV C,ACC.1MOV P1.2,CMOV C,ACC.0MOV P1.3,CMOV A,B ;将B中保存的各位转移到A中MOV C,ACC.3 ;将个位的数字显示在L4~L7上MOV P1.4,CMOV C,ACC.2MOV P1.5,CMOV C,ACC.1MOV P1.6,CMOV C,ACC.0MOV P1.7,CRETUNT:MOV TL0,#00H ;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。
实验三外部中断实验报告班级:学号:姓名:教师:一、实验目的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.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器二、实验内容:(一)、定时器/计数器应用程序设计实验1.计数功能:用定时器1方式2计数,每计数满100次,将P1.0取反。
(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。
)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。
方式2有自动重装初值的功能,初始化后不必再置初值。
将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。
TMOD=60H。
定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。
(1)硬件设计硬件设计如图所示(2)C源程序#include "reg51.h" sbit P1_0=P1^0;void main(){TMOD=0x60;TH1=0xfd;TL1=0xfd;TR1=1;ET1=1;while(1){if(TF1==1){P1_0=~P1_0;TF1=0;}}}(3)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
(二)中断应用程序设计实验2.中断定时使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。
分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。
主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。
单片机中的中断与定时器的原理与应用在单片机(Microcontroller)中,中断(Interrupt)和定时器(Timer)是重要的功能模块,广泛应用于各种嵌入式系统和电子设备中。
本文将介绍中断和定时器的基本原理,并探讨它们在单片机中的应用。
一、中断的原理与应用中断是指在程序执行过程中,当发生某个特定事件时,暂停当前任务的执行,转而执行与该事件相关的任务。
这样可以提高系统的响应能力和实时性。
单片机中的中断通常有外部中断和定时中断两种类型。
1. 外部中断外部中断是通过外部触发器(如按钮、传感器等)来触发的中断事件。
当外部触发器发生状态变化时,单片机会响应中断请求,并执行相应的中断服务程序。
外部中断通常用于处理实时性要求较高的事件,如按键检测、紧急报警等。
2. 定时中断定时中断是通过定时器来触发的中断事件。
定时器是一种特殊的计时设备,可以按照设定的时间周期产生中断信号。
当定时器倒计时完成时,单片机会响应中断请求,并执行相应的中断服务程序。
定时中断常用于处理需要精确计时和时序控制的任务,如脉冲计数、PWM波形生成等。
中断的应用具体取决于具体的工程需求,例如在电梯控制系统中,可以使用外部中断来响应紧急停车按钮;在家电控制系统中,可以利用定时中断来实现定时开关机功能。
二、定时器的原理与应用定时器是单片机中的一个重要模块,可以用于计时、延时、频率测量等多种应用。
下面将介绍定时器的工作原理和几种常见的应用场景。
1. 定时器的工作原理定时器是通过内部时钟源来进行计时的。
它通常由一个计数器和若干个控制寄存器组成。
计数器可以递增或递减,当计数值达到设定值时,会产生中断信号或触发其他相关操作。
2. 延时应用延时是定时器最常见的应用之一。
通过设定一个合适的计时器参数,实现程序的精确延时。
例如,在蜂鸣器控制中,可以使用定时器来生成特定频率和持续时间的方波信号,从而产生不同的声音效果。
3. 频率测量应用定时器还可以用于频率测量。
、实验目的1 、掌握定时器/计数器计数功能的使用方法。
2 、掌握定时器/计数器的中断、查询使用方法。
3 、掌握Proteus 软件与Keil 软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
、设计要求1 、用Proteus 软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。
2、用Proteus 软件画出电路原理图,单片机的定时器/计数器以中断方式工 作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲, 则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。
通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD 初值的计 算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。
七、思考题1、利用定时器0,在P1.0 口线上产生周期为200微秒的连续方波,利用定 时器1,对P1.0 口线上波形进行计数,满50个,则取反P1.1 口线状态,在P 1.1 口线上接示波器观察波形。
tJI-JTTALlRSTIPO 1 Z^Cil POiPD 3/jfiD3 IPCLW/MH FD-5/^CB”血P2 O/jtS PNUMa P 2 .2/AJOPI F3JD/RKDP1 且1门池F1 2P1 .3P3^/|NT1 卩11 .4P3.4Z1D P1.5 P3 .5fT1 尸1P3.0AA/RP1I.7 P3.?/RD17三、电路原理图 18HQAT69C52P 2 .4/A12P2 5/A13 P2P2 .7XA1«5蝕丘2Q 37答:程序见程序清单四、实验程序流程框图和程序清单1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,MAIN: MOV IE, #00HMOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1LOOP: JNB TF1, LOOP CLRTF1 CPL P1.0 AJMP LOOP ENDC 语言程序:#in elude <reg52.h> sbit Y=P1A0; void mai n() {EA=0; ET1=0; TMOD=0x60;TH1=0x9C;计数数值初始化中断断 艙化!l[启动 =时器1 器一、r动 启N箱 * 1溢断清计数溢出标志—1 ~ P1.(口线取反TL 仁 0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }2、定时器/计数器以中断方式工作,对外部连续周期性脉冲信号进行计数, 每计满200个脉冲,则取反P1.0 口线状态。
单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验LI的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管DPD8O每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3 口是8位准双向口,具有双重功能:第一功能和P1 口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3. 0RXD串行输入口P3. 1TXD串行输出口P3. 2INTO外部中断0请求输入线P3. 3INT1外部中断1请求输入线P3.4TO定时器/计数器TO外部计数器脉冲输入线P3. 5T1定时器/计数器T1外部计数器脉冲输入线P3. 6WR外部数据存贮器写脉冲输出线P3. 7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断OBH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断0: EX0=l;中断1: EXl=l)o(2)CPU 开中断(EA二1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCOX:TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。
前一方式IT0二1,后一方式IT0二0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式ITl=0o当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
实验一外部中断实验(急救车与交通灯)一、实验目的1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
二、实验要求有急救车到达时,两向交通信号灯为红,以便让急救车通过路口的时间为5秒,急救车通过后交通信号灯恢复中断状态。
本实验以按键为中断申请,表示有急救车通过。
三、实验器材单片机开发板、万利仿真机、稳压电源、计算机三、实验原理1、工作原理:本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意。
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验中,主程序延时用的寄存器和中断延时用的寄存器应不相同。
2、工作框图四、实验电路与连线五、实验源代码;FOR EAT598CS273 EQU 0F200HORG 0000HLJMP STARTORG 0003H ;INT 0 中断入口地址LJMP INT0ORG 0040HSTART:MOV SP,#60HSETB EX0 ;INT 0 中断有效SETB IT0SETB EALCALL STATUS0 ;初始状态(都是红灯) CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯LCALL STATUS3 ;南北红灯,东西绿灯LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯LJMP CIRCLEINT0:PUSH PSW ;保护现场PUSH 2PUSH ACCMOV DPTR,#CS273MOV A,#0FH ;南北,东西都亮红灯MOVX @DPTR,AMOV R2,#50 ;延时8秒LCALL DELAYPOP ACC ;恢复现场MOVX @DPTR,APOP 2POP PSWRETISTATUS0: ;南北红灯,东西红灯MOV DPTR,#CS273MOV A,#0FHMOVX @DPTR,AMOV R2,#10 ;延时2秒LCALL DELAYRETSTATUS1: ;南北绿灯,东西红灯MOV DPTR,#CS273MOV A,#96H ;南北绿灯,东西红灯MOVX @DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS2: ;南北绿灯闪转黄灯,东西红灯MOV DPTR,#CS273MOV R3,#03H ;绿灯闪3次FLASH: MOV A,#9FHMOVX @DPTR,AMOV R2,#03HLCALL DELAYMOV A,#96HMOVX @DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#06H ;南北黄灯,东西红灯MOVX @DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS3: ;南北红灯,东西绿灯MOV DPTR,#CS273MOV A,#69HMOVX @DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS4: ;南北红灯,东西绿灯闪转黄灯MOV DPTR,#CS273MOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#6FHMOVX @DPTR,AMOV R2,#03HLCALL DELAYMOV A,#69HMOVX @DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#09H ;南北红灯,东西黄灯MOVX @DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYNOPRETDELAY: ;延时子程序PUSH 2PUSH 1PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2 ;延时100 mSDJNZ 2,DELAY1POP 0POP 1POP 2RETEND实验二单片机内部定时器应用一、实验目的1、理解单片机内部定时器的工作原理及使用方法2、了解单片机定时中断程序的编写和调试方法3、掌握定时器的基本使用方法二、实验要求由8031内部定时器1,按连接方式1工作,即作为16位定时器的使用每0.05秒钟T1溢出中断一次。
外部中断及NE555计数实验11103070315 李青【实验内容】1、利用外部按键中断计数并用数码管显示计数值2、用51单片机T0、T1定时计数器对NE555产生的脉冲信号进行频率计数,频率送LCD显示(或数码管显示)【需要了解的知识】1、GPIO设定2、LCD显示原理,输入与输出及其原理3、定时计数器工作原理及频率测量4、NE555工作原理【实验预习】预读实验指导电子文档的实验十六、七及其前面的实验流程【实验设备】Keil C51软件、ICE52 仿真驱动、MEFlash编程软件、USB驱动程序【实验过程】实验一外部中断实验任务:利用单片机的外部中断功能进行计数,然后将计数值输出到数码管上显示。
K5键—计数值加1(外部中断0)K6键—计数值加1(外部中断1)3位数码管显示,最大计数值255实验步骤:1)首先在硬盘上建立一个文件夹;2)启动Keil C51软件;3)执行Keil C51软件的菜单“Project|New Project……”,弹出一个名为“Create New Project”的对话框。
输入工程文件名,选择保存路径uv2后缀,点击“保存”按钮;4)紧接着弹出“Options for Target‘Target 1’”,为刚才的项目选择ATMEL 的AT89S52的CPU。
选择之后,点击“确定”按钮;5)接下来弹出一个对话框提示你是否要把标准8051的启动代码添加项目中去,此时,点击“否”按钮;6)执行菜单“File|New……”,出现一个名为“Text1”的文档。
接着执行菜单“File|Save”弹出一个名为“Save As”的对话框,将文件名改为“.asm”后缀,然后保存;7)添加源程序文件到工程中,一个空的源程序文件建成。
单击Keil C51软件左边项目工作窗口“Target1”上的“+”,将其展开。
然后右击“Source Group1”文件夹弹出下拉菜单,单击其中的“Add Files to Group‘Source Group1’”项;8)在弹出的对话框中先选择文件类型为“Asm Source file (*.s*;*.src;*.a*)”,这时对话框内创建的空的源程序文件已经出现在项目工作窗口的“Source Group1”文件夹中;输入源程序代码;9)点击工具栏“Options for target”按钮,弹出一个对话框,定义“Xtal”为11.0592.下面依序是存储模式、程序空间大小等设置,均用默认值即可。
单片机实验报告(二)实验名称:定时器及外部中断*名:**学号:*********班级:通信2班时间:2013.11南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技术的基本使用方法;3、学习中断处理程序的编程方法。
二、实验原理(1)以P1口作为输出口,定时器实现1s定时,实现显示数的1s加1,外部中断0键盘外接BUTTON,实现对显示数快速加1的控制。
(2)系统板上硬件连线把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。
把“单片机系统”A2区的INT0端口用导线连接到D1区的KEY1端口上;三、实验内容利用定时器中断控制1s的输出,使用外部中断0使得显示的数加1. 程序如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(){uint x,y;for(x=100;x>0;x--)for(y=110;y>0;y--);}uchar m,flag;void main(){uchar a,b;TMOD=0x01;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EX0=1; EX1=1; PX1=1; ET0=1; EA=1; 中断开启TR0=1;m=0; P1=0;while(1){while(flag==0); flag=0;if(m==100) m=0;m++;a=m/10;b=m+a*6;P1=b;}}void timer0() interrupt 1 using 0{uchar t;TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(t<20) t++;else { flag=1; t=0; }}void exter0() interrupt 0 using 1{if(INT0==0) delay();if(INT0==0) flag=1;}void exter1() interrupt 2 using 2{if(INT1==0) delay();if(INT1==0) m=0;}将编译好的程序下载到仿真电路中四、小结与体会通过本次定时器中断实验,我对定时器的工作原理有了更加深入的理解,这也是建立在向同学请教的基础上。
报告成绩:教师签字:批改日期:评语:学生实验报告课程名称单片机原理及接口技术姓名实验名称定时器/计数器、中断综合实验班级实验目的掌握51系列单片机中断系统及定时器的工作原理及使用技巧学号实验日期实验内容(1)P1 口做输出口,接八只发光二极管,高电平点亮,控制一个. 方向循环点亮8只LED,每个LED点亮时间为50ms;(2)在以上基础上加外部中断内容,由外部中断请求时,8只LED全亮(3)P1 口做输出口,接八只发光二极管,高电平点亮,控制一个方向循环点亮8只LED,每个LED点亮时间改为2s实验地点实验组号实验设备计算机 wave6000程序 lab2000p试验箱同组人1.实验电路及连线本次试验不做要求2.程序流程图本次实验无3.源程序(1 ORG 0000H MOV TL0,#58HLJMP MAIN SETB EAORG 0003H SETB ET0ORG 000BH SETB TR0LJMP SER0 SJMP $ORG 1000H SER0:MOV TH0,#9EHMAIN: MOV A,#01H MOV TL0,#58HLOOP: MOV P1,A RL AMOV TMOD,#01H MOV P1,AMOV TH0,#9EH RETIEND(2ORG 0000H SER0:MOV TH0,#9EHLJMP MAIN MOV TL0,#58HORG 0003H RL ALJMP SER1 MOV P1,AORG 000BH RETILJMP SER0 SER1:PUSH ACCORG 1000H PUSH PSWMAIN: MOV A,#01H MOV A,#0FFH LOOP: MOV P1,A MOV P1,AMOV TMOD,#01H LCALL DELAY MOV TH0,#9EH POP PSWMOV TL0,#58H POP ACCSETB EA RETISETB ET0 DELAY:MOV R7,#0FFH SETB TR0 L1:MOV R6,#0FAH SETB EX0 DJNZ R6,$SETB IT0 DJNZ R7,L1SJMP $ RETEND(3 ORG 0000H SETB EALJMP MAIN SETB ET0ORG 000BH SETB TR0LJMP SER0 SJMP $ORG 1000H SER0:MOV TH0,#9EH MAIN: MOV A,#01H MOV TL0,#58H LOOP: MOV P1,A DJNZ R0,EXIT MOV R0,#28H MOV R0,#28HMOV TMOD,#01H RL AMOV TH0,#9EH MOV P1,AMOV TL0,#58H EXIT:RETIEND4.结果记录及分析(1)结果: P1 口做输出口,接八只发光二极管,高电平点亮,控制一个方向循环点亮8只LED,每个LED点亮时间为50ms;分析:用定时器方式0,使用定时功能,定时器以中断方式工作。
51单片机定时器实验内容
51单片机定时器实验的内容可以根据不同的需求和目的进行调整,以下是
一些可能的实验内容:
1. 定时器初始化实验:实验目标是了解如何初始化51单片机的定时器,包括设置定时器的工作模式、计数值、初始值等。
实验中可以编写代码,让定时器在初始化后自动开始计时,并在达到指定时间后产生中断或输出信号。
2. 定时器中断实验:实验目标是了解如何使用51单片机的定时器中断功能,实现定时器在达到指定时间后自动触发中断,并在中断服务程序中执行特定的操作。
实验中可以编写代码,让定时器在达到指定时间后自动进入中断服务程序,并在其中执行特定的操作,如点亮LED灯等。
3. 定时器PWM输出实验:实验目标是了解如何使用51单片机的定时器PWM输出功能,实现定时器输出PWM波形。
实验中可以编写代码,让定时器输出不同占空比的PWM波形,并通过调整占空比来控制LED灯的亮
度等。
4. 定时器与外部事件同步实验:实验目标是了解如何使用51单片机的定时器与外部事件同步,实现定时器在外部事件发生时自动开始计时或停止计时。
实验中可以编写代码,让定时器在外部事件发生时自动开始计时或停止计时,并在达到指定时间后执行特定的操作。
以上是一些常见的51单片机定时器实验内容,通过这些实验可以深入了解51单片机的定时器工作原理和用法,并提高编程技能和硬件控制能力。
外部中断实验
外部中断实验通常是指在控制系统中测试外部事件对系统的影响。
外部中断可以是由输入设备、定时器、计数器、ADC等外部事件所触发的中断信号,当系统接收到外部中断信号时,会立刻停止当前运行的任务,执行中断服务程序,完成相应的处理后再返回原任务。
一个简单的外部中断实验可以是设计一个有按键操作的控制系统。
可以使用单片机或其他控制器,将按键连接到单片机的外部中断输入引脚,当按键被按下时,会产生外部中断信号,中断服务程序可以完成按键检测、处理等操作。
另外,也可以通过连接定时器或计数器来测试外部中断功能。
当定时器或计数器达到预设的计数值时,会产生中断信号,中断服务程序可以完成相应的处理。
在实际应用中,外部中断还可以用于实现多任务系统、数据采集、数据传输等应用。
单片机实验报告中断单片机实验报告:中断引言:单片机是一种集成电路,具有微处理器、存储器和输入输出接口等功能。
在嵌入式系统中,单片机常常被用于控制和管理各种设备。
而中断是单片机中一种重要的机制,它可以在特定条件下打断程序的正常执行,执行一段特定的代码,然后返回到原来的程序中。
本文将介绍中断的概念、分类以及在单片机实验中的应用。
一、中断的概念中断是一种硬件或软件生成的信号,用于打断正在执行的程序。
当中断信号发生时,单片机会立即停止当前的任务,转而执行中断服务程序。
中断可以提高程序的响应速度和效率,使单片机能够及时处理紧急事件。
二、中断的分类中断可以分为外部中断和内部中断两种类型。
1. 外部中断外部中断是由外部设备产生的中断信号。
当外部设备需要单片机的处理时,会发送中断请求信号。
单片机在接收到中断请求后,会立即停止当前任务,转而执行与中断相关的程序。
外部中断常用于处理外部设备的输入信号,如按键、传感器等。
2. 内部中断内部中断是由单片机内部产生的中断信号。
内部中断通常由单片机的一些特定事件触发,如定时器溢出、串口接收完成等。
内部中断常用于周期性的任务处理和数据通信等。
三、中断的实验应用在单片机实验中,中断被广泛应用于各种场景,下面将介绍两个实验应用的例子。
1. 外部中断实验假设我们需要设计一个按键控制LED灯的实验。
当按下按键时,LED灯亮起;当松开按键时,LED灯熄灭。
这个实验可以使用外部中断来实现。
首先,我们需要将按键连接到单片机的外部中断引脚。
当按键按下时,外部中断引脚会产生一个中断请求信号。
单片机接收到中断请求后,会执行相应的中断服务程序。
在中断服务程序中,我们可以控制LED灯的亮灭。
通过这个实验,我们可以学习到如何使用外部中断来处理外部设备的输入信号,并且了解到中断的响应速度和效率优势。
2. 内部中断实验假设我们需要设计一个定时器实验,要求每隔一段时间点亮一次LED灯。
这个实验可以使用内部中断来实现。
单片机中的定时器和计数器单片机作为一种嵌入式系统的核心部件,在各个领域都发挥着重要的作用。
其中,定时器和计数器作为单片机中常用的功能模块,被广泛应用于各种实际场景中。
本文将介绍单片机中的定时器和计数器的原理、使用方法以及在实际应用中的一些典型案例。
一、定时器的原理和使用方法定时器是单片机中常见的一个功能模块,它可以用来产生一定时间间隔的中断信号,以实现对时间的计量和控制。
定时器一般由一个计数器和一组控制寄存器组成。
具体来说,定时器根据计数器的累加值来判断时间是否到达设定的阈值,并在时间到达时产生中断信号。
在单片机中,定时器的使用方法如下:1. 设置定时器的工作模式:包括工作在定时模式还是计数模式,以及选择时钟源等。
2. 设置定时器的阈值:即需要计时的时间间隔。
3. 启动定时器:通过控制寄存器来启动定时器的运行。
4. 等待定时器中断:当定时器计数器的累加值达到设定的阈值时,会产生中断信号,可以通过中断服务函数来进行相应的处理。
二、计数器的原理和使用方法计数器是单片机中另一个常见的功能模块,它主要用于记录一个事件的发生次数。
计数器一般由一个计数寄存器和一组控制寄存器组成。
计数器可以通过外部信号的输入来触发计数,并且可以根据需要进行计数器的清零、暂停和启动操作。
在单片机中,计数器的使用方法如下:1. 设置计数器的工作模式:包括工作在计数上升沿触发模式还是计数下降沿触发模式,以及选择计数方向等。
2. 设置计数器的初始值:即计数器开始计数的初始值。
3. 启动计数器:通过控制寄存器来启动计数器的运行。
4. 根据需要进行清零、暂停和启动操作:可以通过控制寄存器来实现计数器的清零、暂停和启动操作。
三、定时器和计数器的应用案例1. 蜂鸣器定时器控制:通过定时器模块产生一定频率的方波信号,控制蜂鸣器的鸣叫时间和静默时间,实现声音的产生和控制。
2. LED呼吸灯控制:通过定时器模块和计数器模块配合使用,控制LED的亮度实现呼吸灯效果。
中断及定时器实验报告中断及定时器实验报告引言:中断是计算机系统中一种重要的机制,它可以打破程序的顺序执行,响应外部事件的发生。
中断的引入使得计算机可以同时处理多个任务,提高了系统的效率和可靠性。
定时器是中断的一种常见应用,它可以在一定时间间隔内产生中断信号,实现定时任务的功能。
本实验旨在通过编程实现中断和定时器的功能,并测试其正确性和稳定性。
一、实验目的1. 学习中断的概念和原理;2. 掌握中断的编程方法和中断处理程序的编写;3. 理解定时器的工作原理和应用场景;4. 实现定时器的功能,并测试其正确性和稳定性。
二、实验过程1. 硬件准备在实验中,我们使用了一台基于8051单片机的开发板,通过连接外部电路和开发板的引脚,实现对定时器的控制。
2. 软件编程首先,我们需要在开发板上搭建一个简单的电路,包括一个LED灯和一个按钮。
然后,我们使用汇编语言编写中断处理程序,实现当按钮按下时,LED灯闪烁的功能。
具体的编程步骤如下:(1)设置中断向量表:将中断处理程序的地址存储到中断向量表中,以便系统在中断发生时能够正确地跳转到相应的处理程序;(2)初始化定时器:设置定时器的计数器初值和工作模式;(3)编写中断处理程序:当中断发生时,执行相应的处理程序。
在本实验中,我们编写了一个简单的中断处理程序,当按钮按下时,将LED灯的状态取反;(4)启用中断:使能中断,使得系统能够响应外部事件的发生。
3. 实验测试将编写的程序下载到开发板上,并连接相应的电路。
按下按钮,观察LED灯是否按照预期的频率闪烁。
通过调整定时器的计数器初值和工作模式,可以改变LED灯闪烁的频率。
三、实验结果经过多次实验测试,我们发现中断和定时器的功能正常,LED灯能够按照预期的频率闪烁。
通过改变定时器的计数器初值和工作模式,我们成功地实现了LED灯闪烁频率的调节。
实验结果表明,中断和定时器是一种有效的方法,可以实现对外部事件的及时响应和定时任务的精确控制。
宁德师范学院计算机系实验报告(2014—2015学年第2学期)课程名称单片机原理实验名称中断实验专业计算机科学与技术(非师)年级12级学号B********** 姓名王秋指导教师杨烈君实验日期2015.5.21实验步骤、实验结果及分析:1、使用Proteus ISIS 7 Professional应用程序,建立一个.DSN文件2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、LED-YELLOW、BUTTON、7SEG-MPX8-CA-BLUE、RESPACK-8。
3、构建仿真电路4、创建一个Keil应用程序:新建工程项目文件;为工程选择目标器件(AT89C52);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。
5、把程序经过编译后生成的HEX文件添加到仿真电路中的处理器中(编辑元件→文件路径)程序代码:1.实现单按键控制Led灯闪烁#include"reg51.h"#define uchar unsigned charsbit Led1=P1^0; uchar Mode=0;void delay(int x) //定义时间间隔{while(x--);}void button_Cotrol() //根据按键模式执行相应的代码{if(Mode==0)Led1=0;if(Mode==1){Led1=~Led1;delay(1000);}}void int0() interrupt 0 //外中断0的中断编号为0{Mode=(Mode+1)%2; //更改按键模式}void main(){Led1=0; //置初值EA=1; //开放总中断EX0=1; //允许使用外中断0IT0=1; //选择负跳变来触发外中断while(1)button_Cotrol();}图1 单按键控制Led灯闪烁while(1)button_Cotrol();}图2 单按键多功能识别,控制4路Led灯闪烁3.实现0-99的计数器效果,按一下数值加1#include"reg51.h"#define uchar unsigned char#define disp_null 10sbit key=P3^2;uchar code tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //共阳数码管显示0~9的段码表uchar DispBuf[8];uchar sec=0;void delay(int x) //定义时间间隔{while(x--);}void PutTime(){DispBuf[7]=sec%10;while(1){P1=0x00;display();}}图3 0-99的计数器效果,按一下数值加1注:1、报告内的项目或设置,可根据实际情况加以补充和调整2、教师批改学生实验报告应在学生提交实验报告10日内。
单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。
二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。
因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。
❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE:门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
1)用单次脉冲申请中断INT0,在中断处理程序中对输出信号进行反转。
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0
START:
CLR P1.0
MOV TCON, #01H
MOV IE, #81H
LJMP $
INT0:
PUSH PSW
CPL P1.0
POP PSW
RETI
END
结果:按一下单脉冲小灯亮,再按一下,小灯灭
接线:INT0接单脉冲
P1.0接个小灯
2)用单次脉冲申请中断INT1,在中断处理程序中实现8个小灯左移点亮1次。
ORG 0000H
LJMP START
ORG 0013H
LJMP INT1
START:
MOV TCON,#04H
MOV IE,#84H
CLR PX1
MOV A,#01H
SJMP $
INT1:
MOV R1,#8
LOOP:
MOV P1,A
LCALL DELAY
RL A
DJNZ R1,LOOP
RETI
DELAY:MOV R6,#200
DELAY1:MOV R7,#125
DELAY2:DJNZ R7,DELAY2
DJNZ R6,DELAY1
RET
END
结果:按一下单脉冲,8个小灯左移点亮一次
接线:INT1接单脉冲P1口接8个小灯
3)将8051计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行单脉冲计数,并将其数值按二进制在P1口驱动LED灯上显示出来。
ORG 0000H
START:MOV TMOD,#05H
MOV TH0,#0
MOV TL0,#0
SETB TR0
LOOP:MOV P1,TL0
LJMP LOOP
END
结果:P1口与四个小灯相连,按单脉冲的次数在四个小灯上显示
接线:(P3.4)T0接单脉冲P1.0到P1.4接4个小灯
4)用CPU内部定时器T0中断方式计时,实现每1秒钟输出状态发生一次反转。
ORG 0000H
LJMP START
ORG 000BH
LJMP INT
START: MOV TMOD,#01H
MOV B,#0AH;即10,设循环次数10次。
改为2s时,将#0AH改为#14H,其他不用变
MOV TL0,#0B0H
MOV TH0,#3CH
SETB ET0
SETB EA
SETB TR0
SJMP $
INT: MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ B,RTURN
CPL P1.0
MOV B,#0AH
RTURN: RETI
END
结果:全速执行后,与P1.0相接的小灯亮灭交替,每隔一秒变化一次接线:P1.0接一个小灯。