求大神帮忙写个51单片机的接收脉冲程序。

程序要求是:在一定时间内(例如2ms)接收到的脉冲数。(如果以上升沿为例就是看在2ms内接收到多少个上升沿)... 程序要求是:在一定时间内(例如2ms)接收到的脉冲数。(如果以上升沿为例就是看在2ms内接收到多少个上升沿) 展开
 我来答
hpj4525
2012-05-25 · TA获得超过331个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:336万
展开全部
用计数器T1的中断控制蜂鸣器发出1KHz音频
#include<reg51.h> // 包含51单片机寄存器定义的头文件
sbit sound=P3^7; //将sound位定义为P3.7引脚
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
EA=1; //开总中断
ET1=1; //定时器T1中断允许
TMOD=0x10; //TMOD=0001 000B,使用定时器T1的模式1
TH1=(65536-921)/256; //定时器T1的高8位赋初值
TL1=(65536-921)%256; //定时器T1的高8位赋初值
TR1=1; //启动定时器T1
while(1)//无限循环等待中断
;
}
/**************************************************************
函数功能:定时器T1的中断服务程序
**************************************************************/
void Time1(void) interrupt 3 using 0 //“interrupt”声明函数为中断服务函数
{
sound=~sound;
TH1=(65536-921)/256; //定时器T1的高8位重新赋初值
TL1=(65536-921)%256; //定时器T1的高8位重新赋初值
}
改改 就成了你的
张他城
2012-06-02
知道答主
回答量:17
采纳率:0%
帮助的人:19.8万
展开全部
CT DATA 30H ;CT为配合T1定时用的计数变量
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV TMOD, #15H ;T1在方式1下定时;T0在方式1下计数
MOV TH0, #00H
MOV TL0, #00H ;装载T0初值0
MOV TH1, #4CH
MOV TL1, #00H ;对应定时50ms设定T1初值
MOV CT, #20 ;设定T1循环定时次数
SETB TR1
SETB TR0 ;启动T0和T1
BACK1: JNB TF1, BACK1 ;等待定时器50ms到
CLR TF1 ;清除T1溢出标志,以便执行下次定时查询
MOV TH1, #4CH
MOV TL1, #00H ;T1重新装入初值
DEC CT ;循环次数减1
MOV A, CT
JNZ BACK1 ;A=0则定时达到1s,否则继续
CLR TR0 ;1s到,T0停止计数
MOV 40H, TL0
MOV 41H, TH0 ;结果存放在内存的通用RAM区
END

这个是一个数字频率计,输入口在P3.4。单片机的时钟频率是11.0592MHz。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式