搜档网
当前位置:搜档网 › 单片机定时器实验

单片机定时器实验

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

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

实验目的

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

实验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即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。

实验三++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

实验三 8253定时器

实验三8253定时器/计数器实验 姓名:张朗学号:11121535 一、实验目的 1. 学会8255芯片与微机接口的原理和方法。 2. 掌握8255定时器/计数器的工作原理和编程方法。 二、实验内容 编写程序,将8253的计数器0设置为方式2(频率发生器),计数器1设置为方式3(方波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。 1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。 2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。 3.上面计数方式选用的是16进制,现若改用BCD码,试修改程序中的二个计数初值,使LED的闪亮频率仍为1Hz。 三、实验区域电路连接图

CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1; GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;(单脉冲与时钟单元) 四、程序框图 五、编程

1.T=1.48s CODE SEGMENT ASSUME CS:CODE ORG 1200H START: CLI MOV DX, 0043H MOV AL, 34H OUT DX, AL MOV DX, 0040H MOV AL, 0EEH OUT DX, AL MOV AL, 02H OUT DX, AL MOV DX, 0043H MOV AL, 76H ;01110110设置计数器1,方式3,16位二进制计数OUT DX, AL MOV DX, 0041H MOV AL, 0E8H OUT DX, AL MOV AL, 03H OUT DX, AL JMP $ ;8253自行控制led灯 CODE ENDS END START

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.各种模式下初值怎么计算?

单片机定时器实验报告

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

单片机实验 中断、定时器

大连理工大学实验报告(模板) 实验时间:年月日星期时间::~ : 实验室(房间号):实验台号码:班级:姓名: 指导教师签字:成绩: 实验三外部中断/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

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:本课程实验结束后,将各次的实验报告按要求装订,并在首页写上序号(实验课 上签到表对应的序号)。请班长按照序号排序,并在课程结束后按要求上交实验报告。 温馨提示:实验报告撰写过程中如遇预留空白不足,请在该页背面空白接续。

实验3 定时器0

实验3 定时器0和定时器1 一、实验目的 1、学会用C语言进行定时器应用程序的设计。 二、实验内容 1、在同一个程序中实现:用定时器0的方式1实现第一个LED灯以1000ms间隔闪烁,用定时器1的方式1实现数码管前两位59秒循环计时。 三、实验步骤 1、硬件连接 (1)使用MicroUSB数据线,将实验开发板与微型计算 机连接起来; (2)在实验开发板上,用数据线将相应接口连接起来; 2、程序烧入软件的使用 使用普中ISP软件将HEX文件下载至单片机芯片内。 查看结果是否正确。 四、实验结果——源代码 #include typedef unsigned int u16; typedef unsigned char u8; sbit led = P2^0; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; u16 t1; u16 t2; u8 sec; u8 DisplayData[2]; u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void Time0Init() { TMOD |= 0x01; TH0=0xFc; TL0=0x18; EA=1; ET0=1; TR0=1; } void Time1Init() { TMOD |= 0x10; TH1=0Xd8; TL1=0Xf0; EA=1; ET1=1; TR1=1; } void delay(u16 i) { while(i--); } void datapros() { DisplayData[0]=smgduan[sec%10]; DisplayData[1]=smgduan[sec/10]; } void DigDisplay() { u8 i;

单片机实验三 定时器实验

实验三:定时器实验 一、实验要求 实验目的:了解MCS-51单片机中定时器/计数器的基本结构、工作原理和工作方式,掌握工作在定时器模式下的编程方法。 实验内容:设单片机的晶振频率f=12Mhz,使用T0定时100ms,在p1.2引脚产生周期为200ms的方波信号,并通过示波器观察P1.2的输出波形。 二、实验原理 定时器和外部计数方式选择位C/T C/T=0为定时器方式,采用晶振频率的1/12作为计数器的计数脉冲,几对及其周期进行计数。若选择12MHz晶振,则定时器的计数频率为1MHz。 C/T=1为计数方式,采用外部引脚的输入脉冲作为计数脉冲。当T0或T1输入发生由高到低的负跳变时,计数器加1,其最高计数频率为晶振频率的1/24。 工作方式2 当TMOD的M1、M0未为10是,计时器/计数器工作在工作方式2.当方式0、方式1用于循环重复定时计数时,计数器全部为0,下一次计数还得重新装入计数初值,这样编程麻烦,而且影响定时时间的精度。方式2是能自动重新装入计数初值的8位计数器,可以解决这个问题。 方式2把16位计数器分成两个8为的计数器,低8为作为计数器使用,高8位用以保存计数初值,当低8位计数产生溢出是,将TF0或TF1置1,同时又将保存在高8位的计数初值重新自动装入低8位计数器汇总,又继续计数,循环重复。 计数初值X=2^8-t*f osc/12;其中t为定时时间。 初试化编程是,TH0和TL0(或TH1和TL1)都装入次X值。方式2适用于作较为精确的脉冲信号发生器,尤其适用于串口波特率发生器。 三、程序设计 1、程序流程图

图 1 定时器实验流程图 2、程序代码 ORG 0100H MAIN: MOV A, 0H MOV TMOD, #61H ;外部引脚脉冲计数,工作方式2 MOV TL1, #0FFH MOV TH1, #0FFH ;计数1次,以CP1.0为脉冲连接计数器 CPL P1.0 SETB TR1; LP1: CPL P1.2 LP2: MOV TL0, #0B0H MOV TH0, #3CH ;一次计数50ms,P1.0的脉冲周期为100ms SETB TR0 LP3: JBC TF0, LP4 SJMP LP3 LP4: CPL P1.0 JBC TF1, LP1 SJMP LP2 END 四、程序验证 1、在Proteus中连接电路图如下:

单片机实验报告——定时器

实验四定时器实验 自动化121班1202100236 张礼 一.实验目的 掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。 二.实验仪器 单片机开发板一套,计算机一台。 三.实验任务 编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。 开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。而U2的锁存使能端LE由P2.1控制,所

以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。 汇编语言程序流程如图4-2: 四.实验步骤: 1.数码管的0~9的字型码表如下: 2.参考图4-2所给的程序流程图编写实验程序。(注:以下程序为两位60秒计数程序) #include sbit wei=P2^0; sbit duan=P2^1; char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

单片机实验3 中断、定时器计数器实验

西南科技大学实验报告 课程名称:单片机原理及应用A 实验名称:中断、定时器/计数器实验姓名: 学号: 班级:生医1401 指导教师:雷华军 西南科技大学信息工程学院制

实验题目 数码管动态扫描显示驱动、键盘动态扫描驱动 一、实验目的 1、熟练巩固单片机开发环境KEIL界面的相关操作和PROTUES仿真软件的操 作,会使用HEX文件进行单片机的仿真。 2、了解定时器的原理和四种工作方式的使用方法,学习定时器的相关应用,包括产生信号和 计数,利用定时器进行延时等。 3、进一步掌握熟练单个数码管以及多位数码管的显示原理,学会将0~1000的数字进行显示。 4、掌握利用单片机产生矩形方脉冲的相关原理。 二、实验原理 1、定时器结构和原理 图① 上图①为定时器T0、T1的结构,其中振荡器经12分频后作为定时器的时钟脉冲,T为外部计数脉冲输入端,通过开关K1选择。反相器,或门,与门共同构成启/停控制信号。TH 和TL为加1计数器,TF为中断标志。每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON。 2、定时器工作方式 定时器共有四种工作方式分别为方式0——方式3。 方式0:13位计数器,最大计数值为213个脉冲。 方式1:16位计数器,最大计数值为216个脉冲。 方式2:8位自动重装计数器。该方式下,TL进行计数工作,TH用于存放计数初值,当产生溢出中断请求时会自动将TH中的初值重新装入TL,以使计数器继续工作。 方式3:仅限于T0计数器,在方式3下,T0计数器被分成两个独立的8为计数器TL0和TH0。

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

实验三 定时器实验 ——循环彩灯实验 1、 实验目的 1. 学习8051内部计数器的使用和编程方法。 2. 进一步掌握中断处理程序的编写方法。 2、 实验原理 1. 定时常数的确定 定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的 1/12。比如实验中时钟频率为12MHZ,现要采用中断方法来实现 0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒 产生一次中断,CPU响应中断后将RO中计数值减一,令RO=0AH,即 可实现0.5秒延时。 初值=65536-50000 2. 初始化程序 包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送 入定时器中。 3. 设计中断服务程序和主程序 中断服务程序除了要完成计数减一工作外,还要将时间常数重新 送入定时器中,为下一次中断做准备。主程序则用来控制发光二 极管按要求顺序燃灭。 3、 实验要求 由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发 光二极管的L1~L8。要求编写程序模拟一循环彩灯。彩灯变化 花样可自行设计。建议变化花样为:L1、L2、…L8依次点亮; L1、L2、…L8依次熄灭;L1、L2、…L8全亮、全灭。各时序间 隔为0.5秒。让发光二极管按以上规律循环显示下去。 4、 实验连线 P1.0~P1.7分别接发光二极管L1~L8即可。 5、 程序 org 0000h Ljmp main org 000Bh Ljmp INTT org 0100h

main: mov sp,#60h /*设置堆栈指针 mov TMOD,#01h /*设置TMOD,仅由TRx控制中断,定时器 模式,工作方式1 mov TH0,#3CH MOV TL0,#0B0H /*设置初值x=65536-50000 (12M晶振) SETB EA /*开中断 SETB ET0 /*开定时器中断T0 SETB TR0 /*启动定时器 MOV R1,#8 /*中断子程序工作方式1的工作次数 MOV R2,#8 /*中断子程序工作方式2的工作次数 MOV R3,#1 /*中断子程序工作方式3的工作次数 MOV R0,#0AH /*延时次数(产生中断的次数) MOV A,#0FFH WAIT1:AJMP WAIT1 INTT: MOV TH0,#3CH MOV TL0,#0B0H /*计数器赋初值 DJNZ R0,RETT /*R0减1后判断延时的次数是否足够,足够顺序执 行,不足够跳中断返回 CJNE R1,#0,INTT1 /*判断彩灯工作方式1工作是否完毕,完毕顺序执行 下一种方式,未完毕跳转继续执行此种方式 CJNE R2,#0,INTT2 /*判断彩灯工作方式2工作是否完毕,完毕顺序执行 下一种方式,未完毕跳转继续执行此种方式 CJNE R3,#0,INTT3 /*判断彩灯工作方式3工作是否完毕,完毕顺序执行 下一种方式,未完毕跳转继续执行此种方式 JMP INTT4 /*跳转执行第4种方式 INTT1:MOV R0,#0AH /*重新向延时次数计数器赋初值 CLR C /*C清零 RLC A /*带进位左循环移位,低位移入0,即LED 相继点亮(低电平亮) DEC R1 /*工作次数减1 JMP RETT /*跳中断返回 INTT2:MOV R0,#0AH SETB C /*C置1 RRC A /*带进位右循环移位,高位移入1,即LED

相关主题