最佳答案
//搞个外中断,中断来了就计数
void t0(void) interrupt 0
{
T0count++//这是全局变量
}
//T1工作在定时状态下,每定时1秒钟到,刷新T0的计数,
void t1(void) interrupt 1
{
TR0=1//搞个计数器中断
TH0=0x3c//重新初始化
TL0=0xb0//这是12M晶振的
timecount++//中断一次,记个数
if(timecount==20) //一个计数器,一次记不到一秒的,只有记很多次,才能算一秒,这就一秒了
{ frequency=T0count//看看中断多少次,frequency就是你要的频率。
T0count=0//把这个清了,记下一秒的次数。
}
}
main()
{
TMOD = 0x01//选择计数器0的模式
EA=1 // 打开总中断
EX0=1IT0=1//开0外中断
ET0=1TR0=1//开0计时器
这里你加点代码,把frequency显示出来。
}
其他答案共有3条回答
-
落寞的自行车
当然可以,单片机可以实现对方波频率、占空比的检测。做这个东西你得从以下方面入手:
1、首先测出方波的频率(这个跟占空比无关),利用这个计算出周期T;
2、利用一个独立的外部中断,在测量完频率后启动。
(1)先开启中断,并设置为上升边沿触发;
(2)方波从低电平跳变到高电平后,中断触发后,将其设置为下降边沿触发,同时启动定时器;
(3)第二次触发中断后,停止计时,两次中断之间的间隔修正补偿后,就是高电平的持续时间Tu。
占空比可以计算出来,就是q=Tu/T*100%,
然后就显示即可。
-
醉熏的小鸽子
1.方波频率不能过高,理论最大值是单片机周期的1/2,实际达不到
2.方波的电平需要匹配,也就是不能直接与单片机io脚相连,最好做好接口电路
3.方波最好做整形
程序上
方波进入外部中断引脚
记录定时器数值
计算定时器的差值
根据时钟频率折算出时间
频率=1/时间
-
动人的秀发
什么型号单片机,用STM32单片机可以方波开始和结束,因其定时器有脉冲捕获功能,可以进行上升沿和下降沿捕获。上升沿开启定时器,下降沿关闭定时器,可以测脉冲宽度。51单片机可以用外部中断功能,但只能下降沿触发,因此只能测两个下降沿之间的时间,即周期。
热门文章
- 南昌绿地主管岗待遇怎么样
- 放弃华尔街高薪回国守门,她的背后原来藏着一个神秘家族
- 橡胶英才网上有哪些江苏橡胶公司在招聘
- 主题酒店加盟哪个好
- 融资租赁租金及利息计算
- 果果的鞋加盟费多少钱
- 诗和远方一一一中建五局南康家居小镇城市客厅项目建设心语
- 怎么打开微信
- 肯德基的经营模式
- 广东诚泰交通科技发展有限公司怎么样
- 酸菜太酸了,怎么可以去酸
- 美味又下饭的酸菜粉丝,如何才能烹饪出一流的味道
- 炖豆腐的家常做法是怎样的
- 炖猪脚怎么做好吃
- 瘦肉汤怎么做有哪些
- 瘦肉汤的做法,瘦肉汤怎么做好吃,瘦肉汤的家常做法
- 炖肉怎么做好吃又烂
- 冬瓜炖肉怎么炒最好吃
- 炖肉的家常做法
- 怎么炖肉好吃又烂
- 胆机怎么使用
- 功放没声音怎么修
- ads1293怎么用
- 信捷的PLC和keyence基恩士的PLC哪个好啊
- 健伍汽车cd怎么进入调eq功能
- 西门子S7-200 smart PLC用PLS命令控制步进电机的简单程序中的ENI是什么意思
- 大众波罗音响怎么解码
- vk3234 怎么样
- 西门子PLC的ATCH中断指令使用
- 单片机怎么设置otp位