计算机硬件技术基础设计报告
交通021 谷建玲 学号021169
低频脉冲信号脉宽计
1. 设计思路
门控制位GATE1可使定时器/计数器T1的启动计数受INT1的控制.当GATE1=1,TR1为1时,只有INT1引脚输入高电平时,T1才被允许计数。利用GATE1的这个功能,可测量INT1引脚上正脉冲的宽度。(机器周期数)
MCS-51单片机内部有2个定时/计数器,当工作在定时器模式时,可以对时钟的12分频计数,实现准确定时;工作在计数模式,可以对P3.4或P3.5引脚的脉冲计数。利用定时器T1的周期中断和T0计数器配合,就可以测量P3.4上脉冲频率。
P3.2引脚是外部中断0的中断输入引脚,同时也可以控制T0的计数。在GATE=1,TR0=1时,T0的计数取决于P3.2的状态。当P3.2=1时,T0被允许计数。在外部中断0的中断服务程序中读取并清零T0计数值,脉宽可以由
公式
小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载
1计算:
脉宽=T0计数值×计数脉冲周期 公式1
在程序执行过程中,读取开关设置或键盘设置,根据设置改变脉宽测量范围;
编写数码管显示程序,完成频率显示。
2. 硬件电路图
x10----------高触发电平
3.设计原理图
T1从0开始计数
INT1(P3.3引脚) 测量脉冲宽度
对T1初始化 0 TR1,停止T1计数
90H TMOD 读出T1的值,送显示器显示
GATE1=1
利用GATE位测量正脉冲的宽度
4.程序清单
org 0000h
ajmp main
org 001bh
ajmp ts
main:
mov sp,#6fh
mov tmod,#90h
mov th1,#9eh
mov tl1,#58h
;T/C1定时50ms,产生脉冲
mov ie,#88h
mov r3,#00h
loop:
jb p3.3,loop
;1时等待
setb tr1
loop1:
jnb p3.3,loop1
;0时等待
loop2:
jb p3.3,loop2
;1时等待
clr tr1
mov a,r3
mov b,#20
div ab
mov r3,a
hbcd:
mov a,r3
mov b,#100
div ab
mov r3,a
mov a,#10
xch a,b
div ab
swap a
orl a,b
mov r2,a
mov r1,b
mov 79h,r1
mov 7ah,r2
mov 7bh,r3
;16进制转化BCD码
disp:
mov a,#03h
mov dptr,#0ff20h
movx @dptr,a
disp4:
mov r5,#01h
mov r0,#79h
mov a,r5
ld0:
mov dptr,#0ff21h
movx @dptr,a
mov dptr,#0ff22h
mov a,@r0
add a,#0eh
movc a,@a+pc
movx @dptr,a
acall dlay
inc r0
mov a,r5
jb acc.5,ld1
rl a
mov r5,a
ajmp ld0
ld1:
sjmp disp4
db 0c0h,0f9h,0a4h,0b0h,99h,92h
db 82h,0f8h,80h,90h,88h,83h,0c6h
db 0a1h,86h,8eh,0ffh,0ch,89h
db 0c8h,0c1h,7fh,0bfh
dlay:
mov r7,#02h
dl1:
mov r6,#0ffh
dl2:
djnz r6,dl2
djnz r7,dl1
ret
;LED显示
ts:
mov th1,#9eh
mov tl1,58h
inc r3
reti
end
5.程序创新
加个外部中断程序,采集脉冲
6.心得体会
通过这次硬件实习,亲手编制调试程序,我对单片机的机理有了更进一步的理解,印象也更加深刻。同时我也学到了许多课本上学不到的东西。自己动手编程的能力有了进一步的提高。但是由于知识有限难免有错误和疏忽之处,希望老师能给与批评和指正,我会虚心接受并加以完善。感谢学校和老师给我们这样一次机会,我希望以后能有更多这样的实习机会。总之,这次实习对我以后的学习和工作都有极大的促进作用,会使我受益终生。