仪器网(yiqi.com)欢迎您!

| 注册 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-直播- 视频

问答社区

单片机做频率计数码管的显示C语言程序

大可爱211 2010-06-19 23:43:52 466  浏览
  • #include float time=0; float freq=0; unsigned char dsh=0; unsigned char dsz=0; unsigned char dsl=0; main() {EA=1; ET0=1; ET1=1; TMOD=0x061; TH0=-1000/256; TL0=-1000%256; TH1=0xfb; TL1=0xfb; TR0=1; TR1=1; while...

参与评论

全部评论(2条)

获取验证码
我已经阅读并接受《仪器网服务协议》

热门问答

单片机做频率计数码管的显示C语言程序
#include float time=0; float freq=0; unsigned char dsh=0; unsigned char dsz=0; unsigned char dsl=0; main() {EA=1; ET0=1; ET1=1; TMOD=0x061; TH0=-1000/256; TL0=-1000%256; TH1=0xfb; TL1=0xfb; TR0=1; TR1=1; while...
2010-06-19 23:43:52 466 2
跪求单片机at89c52频率计c语言程序
还有跪求那个方波的名字叫神马~~~
2015-04-23 09:42:30 295 1
怎样用单片机做0-10mhz的频率计,C语言
 
2016-11-07 03:16:59 505 3
51单片机C语言编写自行车测速仪用数码管显示速度和路程
 
2017-02-28 10:40:32 396 3
51单片机温度控制系统的C语言程序
设计基于单片计算机的温度控制器。用于控制电加热炉的温度。具体要求如下1.温度连续可调,范围为30℃~150℃2.超调量σ%≤20%3.温度误差≤±0.5℃4.人-机对话方便5.控制算法采用PID或改... 设计基于单片计算机的温度控制器。用于控制电加热炉的温度。具体要求如下 1. 温度连续可调,范围为30℃~150℃ 2. 超调量σ%≤20% 3. 温度误差≤±0.5℃ 4. 人-机对话方便 5. 控制算法采用PID或改进的PID或其他算法 .请发至3166109374@qq.com 谢谢帮忙 具体见http://wenku.baidu.com/view/e0feacf0f121dd36a22d822c 展开
2015-06-07 00:06:30 421 3
FPGA,频率计,数码管显示问题!
做频率计,到数码管显示,烧入板中,显示乱码,不知道什么问题,也不知道扫描时钟怎么设置,下面程序的CLK,指的是什么??求大神解答! LIBRARY IEEE; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity display is port(in7,in... 做频率计,到数码管显示,烧入板中,显示乱码,不知道什么问题,也不知道扫描时钟怎么设置,下面程序的CLK,指的是什么??求大神解答! LIBRARY IEEE; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity display is port(in7,in6,in5,in4,in3,in2,in1,in0:in std_logic_vector(3 downto 0); lout7:out std_logic_vector(7 downto 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); clk:in std_logic ); end display; architecture phtao of display is signal s:std_logic_vector(2 downto 0); signal lout4:std_logic_vector(3 downto 0); begin process (clk) begin if (clk'event and clk='1')then if (s="111") then s<="000"; else s<=s+1; end if; end if; sel<=s; end process; process (s) begin case s is when "000"=>lout4<=in6; when "001"=>lout4<=in5; when "010"=>lout4<=in4; when "011"=>lout4<="0000"; when "100"=>lout4<=in3; when "101"=>lout4<=in2; when "110"=>lout4<=in1; when "111"=>lout4<="0000"; when others=>lout4<="XXXX"; end case; case lout4 is when "0000"=>lout7<="00111111"; when "0001"=>lout7<="00000110"; when "0010"=>lout7<="01011011"; when "0011"=>lout7<="01001111"; when "0100"=>lout7<="01100110"; when "0101"=>lout7<="01101101"; when "0110"=>lout7<="01111101"; when "0111"=>lout7<="00000111"; when "1000"=>lout7<="01111111"; when "1001"=>lout7<="01100111"; when "1010"=>lout7<="00111111"; when "1111"=>lout7<="01000000"; when others=>lout7<="XXXXXXXX"; end case; end process; end phtao; 展开
2015-07-04 01:06:37 614 2
stc12c5a60s2单片机频率计程序
2017-07-07 00:38:42 357 1
YL-69土壤湿度传感器通过51单片机在数码管上显示的C语言程序。
这个传感器上有DO输出口,只要在数码管上显示就好了。... 这个传感器上有DO输出口,只要在数码管上显示就好了。 展开
2018-01-01 10:22:00 309 2
求单片机用max6921进行数码管动态扫描的c语言程序 类似芯片的也行T,T
电路都组好了挂在串口通讯了求各位给点资料参考万分感谢9位数码管一位是符号位(不用的)所以一共是8位数字已自行解决......... 电路都组好了挂在串口通讯了 求各位给点资料参考 万分感谢 9位数码管 一位是符号位(不用的)所以一共是8位数字 已自行解决...... 展开
2014-08-12 07:15:44 351 2
急求 基于51单片机 yl69土壤湿度传感器 lcd1602显示湿度c语言程序
 
2016-11-10 05:49:23 395 2
数码管显示的频率计拜托了各位 谢谢
数码管显示的频率计,不是毕业论文,是简单的课程设计,从哪可以找到简单点的报告交给老师,急,麻烦解答下
2014-06-21 20:19:05 295 1
怎样用单片机做频率计
 
2011-10-09 00:21:18 299 4
频率计程序 数码管闪烁严重 请教怎么修改 谢谢
//程序说明:这是6位数显频率计,外部方波接到单片机的P3.4(T0),通过数码管显示所测的频率 #include #include #define uchar unsigned char #define unit unsigned int #define ulong unsigned long //uchar code dispbit[]={... //程序说明:这是6位数显频率计,外部方波接到单片机的P3.4(T0),通过数码管显示所测的频率 #include #include #define uchar unsigned char #define unit unsigned int #define ulong unsigned long //uchar code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; // 定义位选 uchar code dispbit[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; // 定义位选 uchar code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x89,0xbf};//定义段码 uchar dispbuf[8]={0,0,0,0,0,0,11,10}; //显示缓冲 uchar temp[8]; uchar dispcount; uchar T0count;//T0计数 uchar timecount;//时间计数 bit flag; ulong x; void main(void) { TMOD=0x15; TH0=0; TL0=0; TH1=(65536-4000)/256; TL1=(65536-4000)%256; TR1=1; TR0=1; ET0=1; ET1=1; EA=1; while(1) { uchar i; if(flag==1) { flag=0; x=T0count*65536+TH0*256+TL0; for(i=0;i<8;i++) { temp[i]=0; } i=0; while(x/10) { temp[i]=x%10; x=x/10; i++; } temp[i]=x; for(i=0;i<6;i++) { dispbuf[i]=temp[i]; } timecount=0; T0count=0; TH0=0; TL0=0; TR0=1; } } } void t0(void) interrupt 1 using 1//T0工作在计数状态下,T0的Z大计数频率为250KHz { T0count++; } void t1(void) interrupt 3 using 2 { TH1=(65536-4000)/256; TL1=(65536-4000)%256; timecount++; if(timecount==250) { TR0=0; timecount=0; flag=1; } P0=dispcode[dispbuf[dispcount]]; P2=dispbit[dispcount]; dispcount++; if(dispcount==8) { dispcount=0; } } 展开
2010-09-15 17:21:40 348 2
单片机频率计的这段程序怎么理解
 
2017-12-05 00:32:59 453 3
利用芯片74138控制的数码管的C程序
voidReadKey(void);//扫描键盘获取键值voidmain(void)//入口函数{while(1){ReadKey();//调用键盘扫描if(l_key!=0xff)//如果有键按下,将其输出P2口LED灯显示,{switch(l_key){case0x7... void ReadKey(void); //扫描键盘 获取键值

void main(void) //入口函数
{
while(1){
ReadKey(); //调用键盘扫描
if(l_key!=0xff) //如果有键按下,将其输出P2口LED灯显示,
{ switch(l_key)
{ case 0x7e:
num=1;
break;
case 0xbe:
num=2;
break;
case 0xde:
num=3;
break;
case 0xee:
num=4;
break;
} P2=table[num] ; } //这里取反是因为LED灯采用共阴接法 } } void ReadKey(void) //读键盘值 { P0=0xfe; //将diyi列拉低,扫描是否有按键按下,diyi列按键包括:0,4,8,C l_key=P0; //读取键值 if(l_key!=0xfe) //如果l_key不等于0xfe,说明有键按下,就返回,否则继续扫描下一列 return; P0=0xfd; //将第二列拉低,扫描是否有按键按下,第二列按键包括:1,5,9,D l_key=P0; //读取键值 if(l_key!=0xfd) //如果l_key不等于0xfd,说明有键按下,就返回,否则继续扫描下一列 return; P0=0xfb; //将第三列拉低,扫描是否有按键按下,第三列按键包括:2,6,A,F l_key=P0; //读取键值 if(l_key!=0xfb) //如果l_key不等于0xfb,说明有键按下,就返回,否则继续扫描下一列 return; P0=0xf7; //将第四列拉低,扫描是否有按键按下,第四列按键包括:3,7,B,F l_key=P0; //读取键值 if(l_key!=0xf7) //如果l_key不等于0xf7,说明有键按下,就返回,否则扫描完毕将l_key=0xff return; l_key=0xff; } void delay() { unsigned int x,y; for(x=100;x>0;x--) for(y=200;y>0;y--); } 这个程序是用来扫描diyi列键盘,diyi个和第二个键按下,数码管会显示1和2,但是第三个键和第四个键按下,就不显示不出来三和四,这是为什么呢? 展开
2008-09-15 15:10:29 428 1
c语言 程序设计 关于程序调试
#include"stdio.h"#include"stdlib.h"#include"time.h"voidmain(){inti,j;statics0,s1;time_tt;srand((unsigned)time(&t));for(i=0;i<1000;i++){j=rand()%2;if(j==1)s0++;else;s1++;}... #include"stdio.h" #include"stdlib.h" #include"time.h" void main() { int i,j; static s0,s1; time_t t; srand((unsigned) time(&t)); for(i=0;i<1000;i++) { j=rand()%2; if(j==1) s0++; else; s1++; } printf("\n s0=%d s1=%d \n ",s0,s1); } 为什么这段程序 不管是在单步调试 还是断点调试 都看不到 s0 和s1 的值呢? 只能看到其他的 i j Loaded 'ntdll.dll', no matching symbolic information found. 这又是什么意思啊? 展开
2011-05-25 02:19:45 399 3
51单片机做频率计,为什么两个数码管一直是00无法检测到频率
#include #define uchar unsigned char #define uint unsigned int uchar f,num,shi,ge; bit flag; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c... #include #define uchar unsigned char #define uint unsigned int uchar f,num,shi,ge; bit flag; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z)//延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(uchar shi,uchar ge) { dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(5); } void main() {f=0;num=0;
IP=0x02; //T0优先级高
TMOD=0x15; //TI定时。T0计数
TH0=0; //T0初值
TL0=0;
TH1=(65535-45872)/256; //T1初值50ms
TL1=(65535-45872)%256;
EA=1; // 开总中断
ET0=1; // 开定时器T0中断
TR0=1; // 开T0自启动方式开关
ET1=1; // 开定时器T0中断
TR1=1;
while(1)
{if(flag==1)
{shi=f/10;
ge=f%10;
flag=0;
f=0;
TH0=0;
TL0=0;
TR1=1;
} display(shi,ge); } } void T0time() interrupt 1 using 0 //T0计数 { f++; } void T1time() interrupt 3 using 1//定时器 { TH1=(65535-45872)/256; // 重装初值 TL1=(65535-45872)%256; num++; //自加一次 50ms if(num==20) // 判断是否为一秒 { num=0; TR1=0; flag=1; } } 展开
2018-11-19 21:55:11 367 0
求一个简易单片机频率计设计程序
频率测量精度为1HZ 误差小于10HZ通过LCD1602显示出来
2010-07-11 07:06:44 473 2
基于单片机AT89C52频率计,求程序,求助
 
2017-06-22 09:26:53 355 1
51单片机频率计的中断程序怎么设计
有一个信号由200hz的NRZ码控制输出两个频率不同的方波(1600,800)。现在要还原,如果检测到1600则p3.5输出高电平,800则输出低电平。我的设想是定时一个5ms的中断,对输入的方波电平0→1进行计数。计数值大于(8+4)/2=6的话输出1,小于输出0。请问这样可以... 有一个信号由200hz的NRZ码控制输出两个频率不同的方波(1600,800)。现在要还原,如果检测到1600则p3.5输出高电平,800则输出低电平。我的设想是定时一个5ms的中断,对输入的方波电平0→1进行计数。计数值大于(8+4)/2=6的话输出1,小于输出0。请问这样可以吗?对于定时器计时器还有中断的使用不大明白,可否简略写下程序。谢谢 展开
2015-05-26 01:56:14 430 1

10月突出贡献榜

推荐主页

最新话题