单片机计数器实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七计数、静态显示、串并转换实验
一、实验目的
学会使用MCS-51系统的定时器/计算器中的计数功能,掌握串行口的同步移位寄存器功能的使用方法以及静态显示程序的编写。
二、实验内容
用MCS-51系统的定时器/计算器0的计数功能,使其工作在方式2下,并把计数结果(范围:00H~FFH)利用串行口通过传入并出芯片74LS164驱动LED数码管显示出来。
三、预备知识
串行口在工作方式0下作为同步移位寄存器使用,RXD(P3.0)用作输入输出端,TXD (P3.1)引脚上输出移位时钟信号,频率固定为fosc/12。在该工作方式下,51系统经常和与74164或CD4094配合(串入并出芯片),可实现并行输出;与74165或CD4014配合(并入串出芯片),可实现并行输入。
该实验是将串行口利用74164改为并行输出口使用。
四、实验线路图
五、实验程序
; ORG 0100H
MAIN:
MOV TMOD,#06H ;C/T=1,M1M0=10即使定时器0工作在计数功能的方式2下,可自动重装初始值。
MOV TH0, #00H
MOV TL0, #00H ;设置初始值
SETB TR0
MOV SCON, #00H ;使串口工作于工作方式0:同步移位寄存器方式。CONT1: MOV R3, TL0 ;暂存计数值,用于显示
LCALL DISPLAY
LJMP CONT1
DISPLAY: MOV A, R3 ;显示子程序,通过查表法得到字符的字形码ANL A, #0FH
LOOKUP: MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV SBUF, A ;将低4位数字的字形码送至串口
MOV R7, #0FH
H55S: DJNZ R7, H55S ;用于延时
MOV A, R3 ;下面开始显示高4位
SW AP A
ANL A, #0FH
MOVC A, @A+DPTR
MOV SBUF,A ;将高4位数字的字形码送至串口
LCALL DELAY
RET
DELAY: MOV R6, #0FFh
DELY2: MOV R7, #0FFh
DELY1: DJNZ R7, DELY1
DJNZ R6, DELY2
RET
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
六、实验步骤
⑴将P3.0(RXD)、P3.1(TXD)分别接至七段数码管显示区的DA TA端和CLK端将P3.4(定时器0的外部计数脉冲输入端T0)接至单脉冲发生器的SP端。
⑵编写程序、保存、联接、调试并运行。
⑶查看结果。
七、思考如何利用中断实现计数值的显示??
八、利用外部中断0来实现计数值的显示,程序如下:
ORG 0100H
MAIN: MOV SP, #53H
MOV TMOD,#06H ;C/T=1,M1M0=10即使定时器0工作在计数功能的方式2下,
;可自动重装初始值。
MOV TH0, #00H
MOV TL0, #00H ;设置计数器初始值
SETB EA
SETB EX0
SETB IT0 ;外部中断初始化
SETB TR0
MOV SCON, #00H ;使串口工作于工作方式0:同步移位寄存器方式。
WAIT:SJMP $
ORG 0003H ;外部中断0入口地址
LJMP CONT1
ORG 0200H
CONT1: MOV R3, TL0 ;暂存计数值,用于显示
LCALL DISPLAY
LJMP CONT1
DISPLAY: MOV A, R3 ;显示子程序,通过查表法得到字符的字形码ANL A, #0FH
LOOKUP: MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV SBUF, A ;将低4位数字的字形码送至串口
MOV R7, #0FH
H55S: DJNZ R7, H55S ;用于延时
MOV A, R3 ;下面开始显示高4位
SW AP A
ANL A, #0FH
MOVC A, @A+DPTR
MOV SBUF,A ;将高4位数字的字形码送至串口
LCALL DELAY
RETI
DELAY: MOV R6, #0FFh
DELY2: MOV R7, #0FFh
DELY1: DJNZ R7, DELY1
DJNZ R6, DELY2
RET
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END