单片机 89C52 频率计数器入口设置

[复制链接]
查看11 | 回复4 | 2009-7-31 09:55:15 | 显示全部楼层 |阅读模式
你这是对外部脉冲的一个计数事件,看你的要求INTX和定时/计数中断都可以,但是有一点要说明一下,你如果用定时计数的话要考虑你的传感器的频率,不能超过要机器周期的1/24,因为这时外部脉冲负跳变时计数器才会加1,单片机要两个周期才能完成这个工作,第一个周期采样一次,第二周期采样一次,两次如果是一高一低才会计数,所以对你的频率会有要求,这时的设置是这样的。在主程序里: TMOD=0x05;
//选择计数,边沿触发。 TH0=(65536-xxxx)/256;//装初值 TL0=(65536-xxxx)%256;//装初值 TR0=1;//启动T0 EA=1;//开总中断 ET...
回复

使用道具 举报

千问 | 2009-7-31 09:55:15 | 显示全部楼层
我用的STC52做了一个频率计数器的程序,用的是T0口输入的,就是用的计数器做频率计数,后来在单片机开发板上跑一下,感觉还可以,不过我的频率不高,5K!你只要把传感器的频率从T0口接到单片机就行了,但是传感器的频率不能高于1/24的晶振频率~~...
回复

使用道具 举报

千问 | 2009-7-31 09:55:15 | 显示全部楼层
你是想通过外部中断0来实现霍尔传感器的频率计数吧?89C52应该是不需要对P3.2进行端口配置的,它默认就是外部中断0的接口;52单片机的外部中断有两种触发方式可选:电平触发和边沿触发,所以你需要找到那个配置寄存器,并把它配置城电平触发方式,这样当有信号变化时就能进入中断你只需要将信号线接到P3.2上,然后在主程序中开启外部中断0,当P3.2口有...
回复

使用道具 举报

千问 | 2009-7-31 09:55:15 | 显示全部楼层
输入输出不需要设置,直接给端口命令。是输入还是输出,单片机会自己识别!比如你的霍尔传感器,把传感器信号放大后经驱动送给单片机的P3.1口,你就可以直接这样写(端口定义:sbit P3^1 P3_1;):if(P3_1==1){a++;}a是定义的一个计数变量。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行