河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)
课程设计任务书
土木022班王磊磊学号:021278
一、题目:低频脉冲信号脉宽计
二、目的与要求:
①要求用单片机实验开发系统来完成设计。
②要求在设计中要使用定时器、外部中断、数码管显示、P1口或键盘等。
③完成的设计量程可调、功能完善。
三、问题描述:
MCS-51单片机内部有2个定时/计数器,当工作在定时器模式时,可以对时钟的12分频计数,实现准确定时;工作在计数模式,。利用定时器T1的周期中断和T0计数器配合,。
在程序执行过程中,读取开关或键盘状态,根据状态值改变定时器T1的定时周期,把T1的定时输出作为T0的计数脉冲输入,就可以实现改变脉宽测量范围。
编写一个通用的数码管显示驱动程序,在每一次定时器中断中显示一位数码,6个定时器中断周期完成扫描,只要保证扫描周期<20ms,就可以稳定显示。
问题解决方案:
①,同时也可以控制T0的计数。在GATE=1,TR0=1时,。=1时,T0被允许计数。在外部中断0的中断服务程序中读取并清零T0计数值,脉宽可以由公式1计算:
脉宽=T0计数值×计数脉冲周期公式1
②在程序执行过程中,读取开关设置或键盘设置,根据设置改变脉宽测量范围;
③编写数码管显示程序,完成频率显示。
基本设计思路:
开始
NO
P =1
对T/C1初始化
清零T0的计数值
T/C1 开始计数
设置T/C0 中断
中断子程序
置字位初值
查字码字型表
延时
中断
显示计数周期
四、硬件电路图:
假设 INT1=
连线:(INT1) X10接高低触发电平
五、程序清单:
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 ,loop ;1时等待
setb tr1
loop1: jnb ,loop1 ;0时等待
loop2: jb ,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:
02题低频脉冲信号脉宽计123 来自淘豆网m.daumloan.com转载请标明出处.