仪器社区
登录
首页
找仪器
社区
百科
新品
供应商
品牌
应用
资料
仪企号
展会
标准
求购
招中标
用51单片机做的简易频率计为什么在高频段数码管就开始闪了
123上映
2013-06-12
采用测频法测外部信号的频率,T1,定时一秒,方式2;T0,计数,方式1,低频段的时候显示正常,高频段数码管就闪,为什么呢 #include
#define uchar unsigned char #define uint unsigned int uchar code t[]={0x3f,0x06,0x5b,0x4f,0x66,0x6...
采用测频法测外部信号的频率,T1,定时一秒,方式2;T0,计数,方式1,低频段的时候显示正常,高频段数码管就闪,为什么呢
#include
#define uchar unsigned char
#define uint unsigned int
uchar code t[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar xianshi[6]; uint n,num; uchar m,w,q,b,s,g; void delay(uint z) { uint i,j; for(i=0;i
T1,定时,方式2;T0,计数,方式1 TH0=0; TL0=0; TH1=6; TL1=6; TR1=1; TR0=1; ET0=1; ET1=1; EA=1; } void display() //显示 { P2=0xfe; P0=xianshi[0]; delay(1); P0=0; P2=0xfd; P0=xianshi[1]; delay(1); P0=0; P2=0xfb; P0=xianshi[2]; delay(1); P0=0; P2=0xf7; P0=xianshi[3]; delay(1); P0=0; P2=0xef; P0=xianshi[4]; delay(1); P0=0; P2=0xdf; P0=xianshi[5]; delay(1); P0=0; } void main() { init(); while(1) { display(); } } void t1(void) interrupt 3 { n++; if(n==4000) //一秒时间到 { n=0; //清零 EA=0; //关中断 num=(long)TH0*256+TL0; //取计数值 TL0=0; //计数清零 TH0=0; //计数清零 m=num/100000; xianshi[0]=m; w=num/10000%10; xianshi[1]=w; q=num/1000%10; xianshi[2]=q; b=num/10; xianshi[3]=b; s=num/10%10; xianshi[4]=s; g=num%10; xianshi[5]=g; EA=1; //重开 } }
评论
全部评论
dogahome
void t1(void) interrupt 3 程序里,到了1s后,你在取模,时间消耗太大,没时间运行display();。导致闪烁
9
0
2013-06-13
0条评论
回复
堀米尚纪
不知道哦 太复杂了
4
0
2013-06-13
0条评论
回复
您可能感兴趣的社区主题
FPGA,
频率计
,
数码管
显示问题!
576
频率计
单片机
做
频率计
数码管
的显示C语言程序
457
频率计
电气的大侠们帮帮忙,数字
频率计
的设计,小弟我感激不敬!
301
频率计
eda实验 6位数字
频率计
tjuxgz@126.com
551
频率计
电气高手们,帮忙设计个数字
频率计
!!!急啊!
299
频率计
加载中...
已显示全部信息
评论
选购仪器 上yiqi.com
仪器网络推广
品牌网上传播
长按识别二维码查看信息详情