单片机定时器实验

单片机定时器实验
单片机定时器实验

实验三单片机内部定时器应用

实验目的

1、理解单片机内部定时器的工作原理及使用方法

2、了解单片机定时中断程序的编写和调试方法

3、掌握定时器的基本使用方法

实验仪器

单片机开发板、万利仿真机、稳压电源、计算机

实验原理

1、单片机定时器的工原理

MCS-51 单片机内部有两个16 位可编程的定时器/计数器T0 和T1。它们即可用作定时器方式,又可用作计数器方式。其中T0 由TH0 和TL0 计数器构成;T1 由TH1 和TL1 计数器构成。

工作于定时器方式时,通过对机器周期(新型51单片机可以对振荡周期计数)的计数,即每一个机器周期定时器加1,来实现定时。故系统晶振频率直接影响定时时间。如果晶振频率为12MHZ,则定时器每隔(1/12MHZ)×12=1us 加1。

工作于计数器方式时,对P3.4 或P3.5 管脚的负跳变(1→0)计数。它在每个机器周期的S5P2 时采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,计数器加1。因此需要两个机器周期来识别一个有效跳变,故最高计数频率为晶振频率的1/24。

特殊功能寄存器TMOD 用于定时器/计数器的方式控制。高4 位用于设置T1,低4 位用于设置T0。如图4-7所示。

图4-7 定时器模式控制字格式

TCON 寄存器用于定时器的计数控制和中断标志。如图4-8所示。

图4-8 定时控制寄存器数据格式

编写程序控制这两个寄存器就可以控制定时器的运行方式。

单片机内部定时器/计数器的使用,简而概之:(1)如需用中断,则将EA和相关中断控制位置1;(2)根据需要设置工作方式,即对TMOD设置;(3)然后启动计数,即对TR0或TR1置1。(4)如使用中断,则计数溢出后硬件会自动转入中断入口地址;如使用查询,则必须对溢出中断标志位TF0或TF1进行判断。

2、 用定时器编写一个秒计时器

假设系统使用的晶振频率为12MH Z ,即每个机器周期为1us 。如使用方式1,则定时时间最长是216×1us=65536us=65.536ms ,小于1s 。故必须设置一个软件计数单元,即假设定时器定时中断时间为50ms ,则必须定时中断20次才达到1s 并对秒计时单元加1,20即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。

图4-9 定时器应用程序流程图

实验内容

1、单片机定时器秒计时器

LEDCLK BIT P3.4;

LEDDIN BIT P2.3;

LEDDATA DATA P0;

DSEG AT 30H

dispbuf: ds 8;显示缓冲区

timetick: ds 1

second: ds 1

minute: ds 1

hour: ds 1

TIMECOUNT EQU 50000

CSEG at 0000H

SJMP MAIN

ORG 000BH

LJMP P_T0

ORG 0030;中断服务程序

P_T0:

PUSH PSW

PUSH ACC

PUSH DPH

PUSH DPL

MOV TH0,#(65535-TIMECOUNT)/256

MOV TL0,#(65535-TIMECOUNT)MOD 256

SETB RS0;后面所使用的R0~r7

DJNZ timetick,P_T02

MOV timetick,#20

INC second

; cjne second,#60,P_T01

; MOV SECOND,#0

; inc minute;

P_T01: MOV A,second

MOV B,#100

DIV AB

MOV R0,#dispbuf+2

MOV @R0,A

DEC R0

MOV A,B

MOV B,#10

DIV AB

MOV @R0,A

DEC R0

MOV @R0,B

P_T02: CLR RS0

POP DPL

POP DPH

POP ACC

POP PSW

RETI

MAIN:

mov sp,#60h

MOV dispbuf,#0

MOV dispbuf+1,#0

MOV dispbuf+2,#0

MOV dispbuf+3,#0

MOV dispbuf+4,#0

MOV dispbuf+5,#0

MOV dispbuf+6,#0

MOV dispbuf+7,#0

MOV TH0,#(65535-TIMECOUNT)/256;3CAF MOV TL0,#(65535-TIMECOUNT)MOD 256;

MOV TMOD,#01H;设定定时器的工作方式

SETB ET0;允许T0溢出中断

SETB TR0;启动t0

SETB EA;开启总中断

MAIN1:

ACALL DISP

SJMP MAIN1

DISP:

MOV R6,#8

MOV R0,#dispbuf

CLR LEDCLK

CLR LEDDIN

NOP

DISP1: SETB LEDCLK

MOV A,@R0

MOV DPTR,#LEDTAB

MOVC A,@A+DPTR

MOV LEDDATA,A;

MOV R7,#5

ACALL DelayNms

INC R0

SETB LEDDIN

CLR LEDCLK

DJNZ R6,DISP1

RET; 大延时

DelayNms:

D1: ACALL Delay1ms

DJNZ R7,D1

RET; 延时子程序

Delay1ms:

push 07

mov R7,#250

delay1:

NOP

NOP

DJNZ R7,delay1

POP 07

RET

LEDTAB:DB 03H,9FH,25H,0DH;0,1,2,3

DB 99H,49H,41H,1FH;4,5,6,7

DB 01H,09H,11H,0C1H;8,9,A,B

DB 63H,85H,61H,71H;C,D,E,F

END

2、修改上面的程序,设计一个N秒倒计时器(N为学号后两位)。倒计时时间到后,重新开始计时。

LEDCLK BIT P3.4;

LEDDIN BIT P2.3;

LEDDATA DATA P0;

DSEG AT 30H

dispbuf: ds 8;显示缓冲区

timetick: ds 1

second: ds 1

minute: ds 1

hour: ds 1

TIMECOUNT EQU 50000

CSEG at 0000H

SJMP MAIN

ORG 000BH

LJMP P_T0

ORG 0030H;中断服务程序

P_T0:

PUSH PSW

PUSH ACC

PUSH DPH

PUSH DPL

MOV TH0,#(65535-TIMECOUNT)/256

MOV TL0,#(65535-TIMECOUNT)MOD 256 SETB RS0;后面所使用的R0~r7

DJNZ timetick,P_T01

MOV timetick,#20

dec second

MOV A,second

CJNE A,#00,P_T01

MOV SECOND,#33

P_T01: MOV A,second

MOV B,#100

DIV AB

MOV R0,#dispbuf+2

MOV @R0,A

DEC R0

MOV A,B

MOV B,#10

DIV AB

MOV @R0,A

DEC R0

MOV @R0,B

CLR RS0

POP DPL

POP DPH

POP ACC

POP PSW

RETI

MAIN:

mov sp,#60h

MOV dispbuf,#0

MOV dispbuf+1,#0

MOV dispbuf+2,#0

MOV dispbuf+3,#0

MOV dispbuf+4,#0

MOV dispbuf+5,#0

MOV dispbuf+6,#0

MOV dispbuf+7,#0

mov timetick,#20

mov second,#33

MOV TH0,#(65535-TIMECOUNT)/256;3CAF MOV TL0,#(65535-TIMECOUNT)MOD 256;

MOV TMOD,#01H

SETB ET0;允许T0溢出中断

SETB TR0;启动t0

SETB EA;开启总中断

MAIN1:

ACALL DISP

SJMP MAIN1

DISP:

MOV R6,#8

MOV R0,#dispbuf

CLR LEDCLK

CLR LEDDIN

NOP

DISP1: SETB LEDCLK

MOV A,@R0

MOV DPTR,#LEDTAB

MOVC A,@A+DPTR

MOV LEDDATA,A;

MOV R7,#5

ACALL DelayNms

INC R0

SETB LEDDIN

CLR LEDCLK

DJNZ R6,DISP1

RET; 大延时

DelayNms:

D1: ACALL Delay1ms

DJNZ R7,D1

RET; 延时子程序

Delay1ms:

push 07

mov R7,#250

delay1:

NOP

NOP

DJNZ R7,delay1

POP 07

RET

LEDTAB: DB 03H,9FH,25H,0DH;0,1,2,3

DB 99H,49H,41H,1FH;4,5,6,7

DB 01H,09H,11H,0C1H;8,9,A,B

DB 63H,85H,61H,71H;C,D,E,F

END

思考题

1、在实验程序基础上编写一个24小时计时时钟。

LEDCLK BIT P3.4;

LEDDIN BIT P2.3;

LEDDATA DATA P0;

DSEG AT 30H

dispbuf: ds 8;显示缓冲区

timetick: ds 1

second: ds 1

minute: ds 1

hour: ds 1

TIMECOUNT EQU 50000

CSEG at 0000H

SJMP MAIN

ORG 000BH

LJMP P_T0

ORG 0030H;中断服务程序

P_T0:

PUSH PSW

PUSH ACC

PUSH DPH

PUSH DPL

MOV TH0,#(65535-TIMECOUNT)/256

MOV TL0,#(65535-TIMECOUNT)MOD 256

SETB RS0;后面所使用的R0~r7

DJNZ timetick,P_T02

MOV timetick,#20

INC second

MOV A,second

CJNE A,#60,P_T01;秒

MOV SECOND,#0

inc minute;

MOV A,minute;分

CJNE A,#60,P-T01

INC HOUR;时

MOV A,HOUR

CJNE A,#12,P-T01

MOV HOUR,#0

P_T01: MOV A,second

MOV B,#100

DIV AB

MOV R0,#dispbuf+2

MOV @R0,A

DEC R0

MOV A,B

MOV B,#10

DIV AB

MOV @R0,A

DEC R0

MOV @R0,B

P_T02: CLR RS0

POP DPL

POP DPH

POP ACC

POP PSW

RETI

MAIN:

mov sp,#60h

MOV dispbuf,#0

MOV dispbuf+1,#0

MOV dispbuf+2,#0

MOV dispbuf+3,#0

MOV dispbuf+4,#0

MOV dispbuf+5,#0

MOV dispbuf+6,#0

MOV dispbuf+7,#0

MOV TH0,#(65535-TIMECOUNT)/256;3CAF MOV TL0,#(65535-TIMECOUNT)MOD 256;

MOV TMOD,#01H;设定定时器的工作方式

SETB ET0;允许T0溢出中断

SETB TR0;启动t0

SETB EA;开启总中断

MAIN1:

ACALL DISP

SJMP MAIN1

DISP:

MOV R6,#8

MOV R0,#dispbuf

CLR LEDCLK

CLR LEDDIN

NOP

DISP1: SETB LEDCLK

MOV A,@R0

MOV DPTR,#LEDTAB

MOVC A,@A+DPTR

MOV LEDDATA,A;

MOV R7,#5

ACALL DelayNms

INC R0

SETB LEDDIN

CLR LEDCLK

DJNZ R6,DISP1

RET; 大延时

DelayNms:

D1: ACALL Delay1ms

DJNZ R7,D1

RET; 延时子程序

Delay1ms:

push 07

mov R7,#250

delay1:

NOP

NOP

DJNZ R7,delay1

POP 07

RET

LEDTAB: DB 03H,9FH,25H,0DH;0,1,2,3

DB 99H,49H,41H,1FH;4,5,6,7

DB 01H,09H,11H,0C1H;8,9,A,B

DB 63H,85H,61H,71H;C,D,E,F

END

2、说说把显示程序放在主程序和定时中断程序的优缺点。

答:显示程序放在主程序时会一直占用空间执行,但执行速度比较快

显示程序放在中断程序是通过中断服务程序中被调用而执行的,每中断一次调用一次,故执行耗时间。

如有侵权请联系告知删除,感谢你们的配合!

实验三单片机定时计数器实验

实验三单片机定时/计数器实验 1、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 2、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 3、实验仪器和条件 计算机 伟福实验箱(lab2000P) 4、实验内容 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD

用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 五、思考题 1、使用其他方式实现本实验功能; 2、改为门控方式外部启动计数; 3、如果改为定时间隔为200us,如何改动程序; 4、使用其他方式实现本实验功能,例如使用方式1,定时间隔为10ms,如何改动程序。 六、源程序修改原理及其仿真结果 思考题一:使用其他方式实现本实验功能 方法一: movTMOD, #00000100b;方式0,记数器 movTH0, #0 movTL0, #0 setbTR0;开始记数;由于方式0的特点是计数时使用TL0的低五位和八位 TH0,故用加法器a用“与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。 Loop: mova,TL0 anla,#1fh

定时器实验报告

定时器实验报告 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

电子信息工程学系实验报告课程名称:单片机原理及接口应用 实验项目名称:51定时器实验 实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。 MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP)

2 、51单片机的相关寄存器设置 方式控制寄存器TMOD: D7D6D5D4D3D2D1D0 GATE C/T M1 M0GATE C/T M1M0 TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。 TMOD各位的含义如下: 1. 工作方式选择位M1、M0 M1、M0的状态决定定时器的工作方式: M1M0功能说明 0 0 1 10 1 1 方式0,为13位的定时/计数器 方式1,为16位的定时/计数器 方式2,为常数自动重装入的8位定时/计数器 方式3,T0分为两个8位定时/计数器, T1在该方式时停止 3、51单片机定时器的工作过程(逻辑)方式一方式1:当M1M0=01时,定时器工作于方式1。

实验4指导书 555定时器电路设计

实验4 555定时器电路设计 预习内容 阅读《电工电子实验教程》第6.5节中555集成定时器应用的内容。 预习实验的内容,自拟实验步骤和数据表格,完成理论设计,画出原理电路,选择所用元件名称、数量,熟悉元件引脚,手写预习报告。 一、实验目的 1.熟悉集成定时器555的工作原理及应用。 2.熟悉时钟信号产生电路的设计方法。 3.掌握使用定时器555设计多谐振荡器的方法。 二、知识要点 时钟信号在电子电路中有着非常重要的作用,而生成周期时钟信号的方法也有多种。比较常用的方法就是使用555定时器构成多谐振荡器。此电路广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。 555定时器是一种模拟和数字功能相结合的中规模集成器件。一般用双极性工艺制作的称为555,用CMOS工艺制作的称为7555。555定时器的电源电压范围宽,可在4.5V~16V 工作,7555可在3~18V工作,输出驱动电流约为200mA,因而其输出可与TTL、CMOS或者模拟电路电平兼容。555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。 图5-1 555定时器的结构图和引脚分布图 1脚-GND,接地脚; 2脚-Trigger,低电平触发端; 3脚-Output,输出端; 4脚-Reset,复位端,低电平有效; 5脚-Control V oltage,电压控制端; 6脚-Threshold,阈值输入端; 7脚-Discharge,放电端; 8脚-V CC,电源端。 三、实验内容 题目:时钟信号发生电路设计 设计一个电路,能够产生时钟信号,要求信号频率可调,设计范围不小于500Hz~1000Hz,

单片机定时器实验

单片机定时器实验

实验三单片机内部定时器应用 实验目的 1、理解单片机内部定时器的工作原理及使用方法 2、了解单片机定时中断程序的编写和调试方法 3、掌握定时器的基本使用方法 实验仪器 单片机开发板、万利仿真机、稳压电源、计算机 实验原理 1、单片机定时器的工原理 MCS-51 单片机内部有两个16 位可编程的定时器/计数器T0 和T1。它们即可用作定时器方式,又可用作计数器方式。其中T0 由TH0 和TL0 计数器构成;T1 由TH1 和TL1 计数器构成。 工作于定时器方式时,通过对机器周期(新型51单片机可以对振荡周期计数)的计数,即每一个机器周期定时器加1,来实现定时。故系统晶振频率直接影响定时时间。如果晶振频率为

图4-8 定时控制寄存器数据格式编写程序控制这两个寄存器就可以控制定时器的运行方式。 单片机内部定时器/计数器的使用,简而概之:(1)如需用中断,则将EA和相关中断控制位置1;(2)根据需要设置工作方式,即对TMOD设置;(3)然后启动计数,即对TR0或TR1置1。(4)如使用中断,则计数溢出后硬件会自动转入中断入口地址;如使用查询,则必须对溢出中断标志位TF0或TF1进行判断。 2、用定时器编写一个秒计时器 假设系统使用的晶振频率为12MH Z,即每个机器周期为1us。如使用方式1,则定时时间最长是216×1us=65536us=65.536ms,小于1s。故必须设置一个软件计数单元,即假设定时器定时中断时间为50ms,则必须定时中断20次才达到1s并对秒计时单元加1,20即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

实验三++555定时器的应用仿真实验

电子技术仿真实验报告实验题目: 3 555定时器的应用仿真实验 班级: 姓名: 学号: 实验日期: 实验成绩:

实验三 555定时器的应用仿真实验 一、实验目的: 1、熟悉555定时器的工作原理。 2、掌握555定时器的典型应用。 3、掌握基于multisim 10.0的555定时器应用仿真。 二、实验原理: 555定时器是一种常见的集数字与模拟功能于一体的集成电路。通常只要外接少量的外围元件就可以很方便地构成施密特触发器、单稳态触发器和多谐振荡器等多种电路。其中: (1) 构成施密特触发器,用于TTL 系统的接口,整形电路或脉冲鉴幅等; (2)构成多谐振荡器,组成信号产生电路; (3)构成单稳态触发器,用于定时延时整形及一些定时开关中。 555应用电路采用这3种方式中的1种或多种组合起来可以组成各种实用的电子电路。 U1 LM555CM GND 1DIS 7OUT 3 RST 4VCC 8THR 6CON 5 TRI 2 GND ——1脚,接地;TRI ——2脚,触发输入;OUT ——3脚,输出;RES ——4脚,复 位(低电平有效);CON ——5脚,控制电压(不用时一般通过一个0.01F 的电容接地);THR ——6脚,阈值输入;DIS ——7脚,放电端;VCC ——8脚,+电源

1、 由555定时器构成多谐振荡器 (1) 接通电源时,设电容的初始电压0=c V ,此时TR V \TH V 均小于1/3Vcc ,放电截止, 输出端电压为高电平,Vcc 通过1R 和2R 对C 充电,Vc 按照指数规律逐步上升。 (2) 当Vc 上升到2/3Vcc 时,放电管导通,输出端电压为低电平,电容C 通过2R 放电,Vc 按照指数规律逐步下降。 (3) 当Vc 下降到1/3Vcc 时,放电管截止,输出端电压由低电平翻转为高电平,电容C 又开始充电。当电容C 充到Vc=2/3Vcc 时,又开始放电,如此周而复始,在输出端即可产生矩形波信号。 矩形波信号的周期取决于电容器充、放电回路的时间常数,输出矩形脉冲信号的周期 C R R T )2(7.021+≈ 2、 施密特触发器是脉冲波形整形和变换电路中经常使用的一种电路。其具有两个稳定 状态,两个稳定状态的维持和相互转换取决于输入电压的高低和,属于电平触发,具有两个不同的触发电平,存在回差电压。由555定时器构成的施密特触发器将555定时器的THR 和TRI 两个输入端连在一起作为信号输入端即可得到施密特触发器。 (1) 当Vi<1/3Vcc 时,输出Vo 为高电平。随着Vi 的上升,只要Vi<2/3Vcc ,输出 信号将维持原状态不变,设此状态为第一稳定状态。 (2) 当Vi 上升到Vi ≥2/3Vcc 时,输出Vo 为低电平。电路由第一稳定状态翻转为第 二稳定状态,电路的正向阈值电压为+T V =2/3Vcc 。随着Vi 上升后又下降的情况,只要Vi 〉1/3Vcc ,电路将维持在第二稳定状态不变。 (3) 当Vi 下降到Vi ≤1/3Vcc 时,电路又翻转到第一稳态,电路的负向阈值电压为 -T V =1/3Vcc 。 三、实验内容: 1、555定时器构成多谐振荡器仿真实验

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

数字电路实验报告555定时器及应用

姓名:xxxxxxxxxxxxxxx学号:xxxxxxxxxx . 学院:计算机与电子信息学院专业:计算机类. 班级:xxxxxxxxxxxxxxxxxx时间:2019年10月18 日. 指导教师:xxxxxxxx . 实验名称:555定时器及应用. 一、实验目的 1、熟悉掌握555定时器的基本工作原理及功能; 2、掌握555定时器构成多谐震荡器的工作原理和使用方法; 3、熟悉数字系统的分析和应用。 二、实验原理 1、555定时器原理简介 555定时器是共仪器、仪表、自动化装置、各种民用电器的定时器、时间延时器等电子控制电路用的时间功能电路,也可以做自激多谐振荡器、脉冲调制电路、脉冲相位调谐电路、脉冲丢失指示器、报警器以及单稳态、双稳态等各种电路,应用范围十分广泛。 (1)555定时器的特点 ①外部连接几个阻容元件,可以方便的构成施密特触发器、多谐振荡器和单稳态 触发器等脉冲产生与整形回路。 ②具有一定的输出功率,因此可直接驱动微电机、指示灯和扬声器等。该器件有 双极型和COMS型两类产品,双极型产品型号最后三位为555,COMS型产品 型号最后四位为7555,它们的功能及外部引线排列完全相同。 ③电源电压范围宽(3~18V),双极型的电源电压为5~15V,COMS型的电源电 压为3~18V,能够提供与TTL及COMS型的数字电路兼容的逻辑电平。 (2)555定时器的电路结构及功能 图6-1是555定时器的电路结构图和管脚排列图,它的八个引脚的名称及作用如下: 1脚:芯片的地端2脚:芯片的触发输入端TR’(也叫低触发端)3脚:芯片的输出端4脚:芯片的复位端RD’ 5脚:芯片的控制电压输入Vco 6脚:芯片的阈值输入端TH(也叫高触发端)7脚:芯片的放电端DISC 8脚:芯片的电源Vcc

单片机 实验三中断及定时器实验

实验三:中断及定时器实验 一、实验目的: 1、弄清中断的概念、基本原理,掌握中断技术的应用 2、了解中断初始化的方法,中断向量安装和中断服务子程序的 设计方法。 3、了解定时/计数器的工作原理及MCS51单片机的定时器内 部结构 4、掌握时间常数计算方法 5、掌握定时器初始化方法和定时中断程序设计方法 二、实验内容:定时器实验 1、这个是一个电子钟走时程序,利用定时器T0产生50ms中 断,中断计数器中断20次为1秒,利用秒信号进行电子钟 计时。先读懂下面程序段,然后编辑、编译程序,并在伟福 仿真器上模拟调试该程序。 程序清单如下: COUNT EQU 7FH COUNT1 EQU 7EH S_MEM EQU 73H M_MEM EQU 72H H_MEM EQU 71H ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0 ;“*1” MAIN: MOV SP,#2FH MOV TMOD,#00000001B MOV TH0,#03CH ;50毫秒中断时间常数 MOV TL0,#0BH MOV IE,#10000010B ;开放T0 MOV IP,#0 MOV S_MEM,#0

MOV M_MEM,#0 MOV H_MEM,#0 MOV COUNT,#20 SETB TR0 ;______________________________________________________ W AIT:NOP SJMP W AIT INT_T0: MOV TL0,#0BH MOV TH0,#3CH DJNZ COUNT,EXT_T0 MOV COUNT,#20 ;恢复中断计数器 INC S_MEM ;“*2” MOV A,S_MEM CJNE A,60,EXT_T0 MOV S_MEM,#0 INC M_MEM MOV A,M_MEM CJNE A,#60,EXT_T0 MOV M_MEM,#0 INC H_MEM MOV A,H_MEM CJNE A,#13,EXT_T0 MOV H_MEM,#0 EXT_T0: RETI 2、按下列要求修改程序或回答问题。(实验报告内容) a、把程序改成T1中断计时 ORG 000H LJMP MAIN ORG 001BH

单片机综合实验报告51电子时钟

一、实验内容: 设计一个数字时钟,显示范围为00:00:00~23:59:59。通过5个开关进行控制,其中开关K1用于切换时间设置(调节时钟)和时钟运行(正常运行)状态;开关K2用于切换修改时、分、秒数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定闹钟,闹钟同样可以设定初值,并且设定好后到时间通过蜂鸣器发声作为闹铃。 选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能。 二、实验电路及功能说明 1602显示器电路(不需接线) 电子音响电路 按键说明: 按键键名功能说明 K1 切换键进入设定状态 K2 校时依次进入闹钟功能是否启用,闹钟时,分秒, 年,月,日及时间时,分,秒的设置,直到退出 设置状态 K3 加1键调整是否起用闹钟和调节闹钟时,分,秒, 年,月,日,时间的时,分,秒的数字三、实验程序流程图:

四、实验结果分析 定时程序设计: 单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-51采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/

计数器两种工作模式和4种工作方式。 定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX. 当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。 实时时钟实现的基本方法: 这次设计通过对单片机的学习、应用,以A T89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它主要通过51单片机综合仿真实验仪实现,通过1602能够准确显示时间,调整时间,它的计时周期为24小时,从而到达学习、设计、开发软、硬件的能力。主要实现功能为显示时间,时间校准调时(采用手动按键调时),闹铃功能(设置定时时间,到点后闹铃发出响声)。通过键盘可以进行校时、定时。闹铃功能使用I/O 口定时翻转电平驱动的无源蜂鸣器。本文主要介绍了工作原理及调试实现。 四个按键K1、K2、K3、K4、一个蜂鸣器。 1602显示时钟、跑表。 时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。 秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。 实时时钟程序设计步骤: 先对系统进行初始化,如:LCD1602初始化,DS1302初始化等,然后才能进入主显示模块,即可在LCD1602上看到相应的信息。对于LCD1602的初始化,主要是对开启显示屏,清屏,设置显示初始行等操作。DS1302的初始化主要是先开启写功能,然后写入一个初始值。 本系统采用的是LCD1602液晶显示器,由于其是本身带有驱动模块的液晶屏,所以对于LCD1602操作程序可分为开显示、设置显示初始行、写数据和清屏等部分。LCD1602的写命令程序和写数据程序分别以子程序的形式写在程序里,以便主程序中的调用。 (1)选择工作方式,计算初值; (2)采用中断方式进行溢出次数累计; (3)计时是通过累加和数值比较实现的; (4)时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值; (5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来; (6)中断服务程序:进行计时操作; (7)加1子程序:用于完成对时、分、秒的加操作,中断服务程序在秒、分、时加1时共有三种条调用加1子程序,包括三项内容:合字、加1并进行十进制调整、分字。 程序说明: 按K1按键进入设定状态 按K2,依次进入闹钟功能是否启用,闹钟时,分秒,年,月,日及时间时,分,秒的设置,直到退出设置状态按K3,调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字 LCD第二排中间显示小喇叭,表示启用闹钟功能,无则禁止闹钟功能(可在调整状态进行设置)正常状态,LCD上排最前面显示自定义字符,LCD下排最前面闪动"_" 设置状态,LCD上排最前面显示"P",下排最前面在设置闹钟时间时显示"alarm_",其它状态显示

555定时器多谐波电路Multisim仿真

数字电子技术仿真实验报告 实验名称:555定时器 学生姓名:刘佳璇学号:20152523 指导教师:金丹 院系:电气工程学院班级:201502D 2017 年11 月29 日

555定时器 一、实验目的 1、学会使用 MULTISIM 软件进行数字电子实验仿真。 2、学习了解555定时器的工作原理。 二、实验内容 多谐振荡器 三、实验原理 555定时器的内部电路图及引脚排列见下图,功能表见下表。

555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS 触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为3/2CC V ,C2的反相输入端的电压为VCC 若触发输入端TR 的电压小于3/CC V ,则比较器C2的输出0,可使RS 触发器置1,使输出端OUT=1。如果阈值输入端TH 的电压大于3/2CC V ,同时TR 端的电压大于3/CC V ,则C1的输出为0,C2的输出为1,可将RS 触发器置0,使输出为0电平。

多谐振荡器又称为无稳态触发器,它没有稳定的输出状态,只有两个暂稳态。在电路处于某一暂稳态后,经过一段时间可以自行触发翻转到另一暂稳态。 两个暂稳态自行相互转换而输出一系列矩形波。多谐振荡器可用作方波发生器。电路如图。 四、 实验设计与仿真 构建仿真电路如图所示,其中Ω=k R 21,Ω=k R 12,F C μ1.0=。接通V 5电源,用示波器观察c u 和o u 的波形。

波形如下图: 仿真结果与实验结果一致。 五、实验小结

这次的仿真实验是 555 定时器(多谐振荡器)电路,实验连线较简单,但是原理并不简单,通过实验我更加深刻的理解了555定时器的工作原理。

4实验四 单片机定时器的使用

姓名:学号:日期: 实验四单片机定时器的使用 一、实验名称:单片机定时器的使用 二、实验目的 1.掌握在Keil环境下建立项目、添加、保存源文件文件、编译源程序的方法; 2.掌握运行、步进、步越、运行到光标处等几种调试程序的方法; 3.掌握在Proteus环境下建立文件原理图的方法; 4.实现Proteus与Keil联调软件仿真。 三、使用仪器设备编号、部件及备件 1.实验室电脑; 2.单片机实验箱。 四、实验过程及数据、现象记录 1.在Proteus环境下建立如下仿真原理图,并保存为文件; 原理图中常用库元件的名称: 无极性电容:CAP 极性电容:CAP-ELEC 单片机:AT89C51 晶体振荡器:CRYSTAL 电阻:RES 按键:BUTTON 发光二极管:红色LED-RED 绿色LED-GREEN 蓝色LED-BLUE 黄色LED-YELLOW 2.在Keil环境下建立源程序并保存为.ASM文件,生成.HEX文件; 参考程序如下: ORG 0000H LJMP MAIN ORG H ;定时器T0的入口地址 LJMP TIMER0 MAIN: MOV TMOD,#01H

MOV R0,#05H MOV TH0,# H ;定时器的初值 MOV TL0,# H SETB ;开定时器T0的中断 SETB ;开CPU的中断 SETB ;启动定时器T0 MOV A,#01H LOOP: MOV P1,A RL A CJNE R0,#0,$ MOV R0,#05H SJMP LOOP TIMER0: DEC R0 MOV TH0,# H ;重装初值 MOV TL0,# H ;重装初值 RETI END 将以上程序补充完整,流水时间间隔为250ms。 3.将.HEX文件导入仿真图,运行并观察结果; 4.利用Keil软件将程序下载至实验箱,进行硬件仿真,观察实验结果。 五、实验数据分析、误差分析、现象分析 现象:实现流水灯,时间间隔250ms,由定时器实现定时250ms。 六、回答思考题 1.定时器由几种工作模式,各种模式的最大定时时间是多少? 2.各种模式下初值怎么计算?

单片机实验 中断、定时器

大连理工大学实验报告(模板) 实验时间:年月日星期时间::~ : 实验室(房间号):实验台号码:班级:姓名: 指导教师签字:成绩: 实验三外部中断/INT0实验 一、实验目的和要求 学习、掌握单片机的中断原理。正确理解中断矢量入口、中断调用和中断返回的概念及物理过程。学习编写“软件防抖”程序,了解“软件防抖”原理。 对/int0、/int1两个外部中断进行编程,其中: ●主程序的功能:LDE灯“全亮”、“全灭”交替进行 --------(状态2); ●Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0); ●Int1中断服务程序功能:1个LED灯被点亮且循环右移 ---(状态1);【注意】:实验仪上的LED灯物理位置最左侧为d0;最右侧为d7。 二、实验算法 1 在主程序中利用CPL P3.3的指令驱动其电平不断地转换(由逻辑笔电路做程序状态监视)。 2 在中断服务程序中将P3.3置位(P3.3=1),实现对计数器“加1”并(通过P1口)显示的功能。 3 中断结束后回到主程序,程序继续对P3.3的电平不断取反。 三、实验电路图

四、实验流程图 主程序入口INT0入口 设置中断允许P3.2置1 设置中断优先级调用延时子程序 设TCON 计数器加一并显示 CLR A开中断 (P0)—(A) P3.2=0? 调用延时子程序调用延时子程序 (A)—(A) RETI INT1同理 五、程序清单 ORG 0000H LJMP START ORG 0003H LJMP INT_0 ORG 0013H LJMP INT_1 ORG 0100H ;主程序 START: MOV SP,#60H MOV IE,#85H

单片机中断实验报告

人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想 ------- 屠呦呦 实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1;

void timer1_init() { TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int sbit D1=P2^0; //将D1位定义为P2.0引脚 uint counter=0; unsigned int unit=0,decade=0,avs=0;//time=0;

555定时器实验报告

一、实验目的 二、实验原理 555 定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。555 定时器的内部电路框图和外引脚排列图分别如图 2.9.1 和图2.9.2 所示。它内部包括两个电压比较器,三个等值串联电阻,一个 RS 触发器,一个放电管T 及功率输出级。它提供两个基准电压VCC /3 和 2VCC /3 555 定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS 触发器和放电管的状态。在电源与地之间加上电压,当 5 脚悬空时,则电压比较器 C1 的同相输入端的电压为2VCC /3,C2 的反相输入端的电压为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为0,可使RS 触发器置1,使输出端OUT=1。如果阈值输入端 TH 的电压大于2VCC/3,同时 TR 端的电压大于VCC /3,则C1 的输出为 0,C2 的输出为1,可将RS 触发器置 0,使输出为 0 电平。 它的各个引脚功能如下: 1脚:外接电源负端VSS或接地,一般情况下接地。

8脚:外接电源VCC,双极型时基电路VCC的范围是4.5 ~ 16V,CMOS 型时基电路VCC的范围为3 ~ 18V。一般用5V。 3脚:输出端Vo 2脚:低触发端 6脚:TH高触发端 4脚:是直接清零端。当端接低电平,则时基电路不工作,此时不论、TH处于何电平,时基电路输出为“0”,该端不用时应接高电平。 5脚:VC为控制电压端。若此端外接电压,则可改变内部两个比较器的基准电压,当该端不用时,应将该端串入一只0.01μF电容接地,以防引入干扰。 7脚:放电端。该端与放电管集电极相连,用做定时器时电容的放电。 在1脚接地,5脚未外接电压,两个比较器A1、A2基准电压分别为的情况下,555时基电路的功能表如表6—1示。 三、实验内容 四、思考题

C51单片机定时器及数码管控制实验报告

昆明理工大学信息工程与自动化学院学生实验报告 ( 201 —201学年第1 学期) 课程名称:单片机技术 开课实验室: 年月日

一、实验目的 1. 掌握定时器 T0、T1 的方式选择与编程方法,了解中断服务程序的设计方法, 学会实时程序的调试技巧。 2. 掌握 LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别就是外部中断请求 0、外部中断请求 1、定时器/计数器 0 溢出中断请求、定时器/计数器 0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器 TCON 与 SCON 中。当中断源请求中断时,相应标志分别由 TCON 与SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器 IE、IP、TCON (用六位)与 SCON(用二位), 分别用于控制中断的类型、中断的开/关与各种中断源的优先级别。中断程序由中断控制程序(主程序)与中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过 interrupt m 进行修饰。在 C51 程序设计中,当函数定义时用了 interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段与尾段,并按 MCS-51 系统中断的处理方式自动把它安排在 程序存储器中的相应位置。 在该修饰符中,m 的取值为 0~31,对应的中断情况如下: 0——外部中断 0 1——定时/计数器 T0 2——外部中断 1 3——定时/计数器 T1 4——串行口中断 5——定时/计数器 T2 其它值预留。 89C51 单片机内设置了两个可编程的 16 位定时器 T0 与 T1,通过编程,可以设定为定时器与外部计数方式。T1 还可以作为其串行口的波特率发生器。 2. 定时器 T0 由特殊功能寄存器 TL0 与 TH0 构成,定时器 T1 由 TH1 与TL1 构成, 特殊功能寄存器 TMOD 控制定时器的工作方式,TCON 控制其运行。定时器的中断由中断允许寄存器 IE,中断优先权寄存器 IP 中的相应位进行控制。定时器 T0 的中断入口地址为 000BH,T1 的中断入口地址为 001BH。 定时器的编程包括: 1) 置工作方式。 2) 置计数初值。

555定时器电路数电实验报告

实验报告 课程名称:数字电子技术实验姓名: 学号: 专业: 开课学期: 指导教师:

实验课安全知识须知 1.须知1:规范着装。为保证实验操作过程安全、避免实验过程中意外发生,学生禁止穿拖 鞋进入实验室,女生尽量避免穿裙子参加实验。 2.须知2:实验前必须熟悉实验设备参数、掌握设备的技术性能以及操作规程。 3.须知3:实验时人体不可接触带电线路,接线或拆线都必须在切断电源的情况下进行。 4.须知4:学生独立完成接线或改接线路后必须经指导教师检查和允许,并使组内其他同学 引起注意后方可接通电源。实验中如设备发生故障,应立即切断电源,经查清问题和妥善处理故障后,才能继续进行实验。 5.须知5:接通电源前应先检查功率表及电流表的电流量程是否符合要求,有否短路回路存 在,以免损坏仪表或电源。 特别提醒:实验过程中违反以上任一须知,需再次进行预习后方可再来参加实验;课程中违反三次及以上,直接重修。 实验报告撰写要求 1.要求1:预习报告部分列出该次实验使用组件名称或者设备额定参数;绘制实验线路图, 并注明仪表量程、电阻器阻值、电源端编号等。绘制数据记录表格,并注明相关的实验环境参数与要求。 2.要求2:分析报告部分一方面参考思考题要求,对实验数据进行分析和整理,说明实验结 果与理论是否符合;另一方面根据实测数据和在实验中观察和发现的问题,经过自己研究或分析讨论后写出的心得体会。 3.要求3:在数据处理中,曲线的绘制必须用坐标纸画出曲线,曲线要用曲线尺或曲线板连 成光滑曲线,不在曲线上的点仍按实际数据标出其具体坐标。 4.要求4:本课程实验结束后,将各次的实验报告按要求装订,并在首页写上序号(实验课 上签到表对应的序号)。请班长按照序号排序,并在课程结束后按要求上交实验报告。 温馨提示:实验报告撰写过程中如遇预留空白不足,请在该页背面空白接续。

单片机定时器实验报告

XXXX大学信息工程与自动化学院学生实验报告 (2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。

在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

相关文档
最新文档