历史上的今天
返回首页

历史上的今天

今天是:2024年10月22日(星期二)

正在发生

2019年10月22日 | 单片机信号脉宽测量程序+Proteus仿真图

2019-10-22 来源:51hei

参考教材改了一下,添加了显示程序,数码管只能显示4为,理论最高可显示9999us的脉宽。有兴趣的同学可以扩展一下,添加数码管,算法可以改进,多次求平均值等等。仿真出来还算可以。测量脉宽原理很简单,教材和百度上都有。


仿真原理图如下
 

调制输入信号

2019-10-22 01:00 上传


直接上代码 上图  看一下 下面的代码  我仿真里面设置的脉冲周期是2ms 占空比是50%    由这个代码得到的高电平的时间 理论值是1000us   测得位1000us正确。

单片机源程序如下:

#include

#include                         

#define uchar unsigned char

#define uint unsigned int                

////////////////////

sbit p=P3^3; //信号输入端口


sbit w1=P2^4; //数码管的四个位

sbit w2=P2^5;

sbit w3=P2^6;

sbit w4=P2^7;                        

unsigned high;

unsigned low;

void read_count();


uchar table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};


void delay(uint ms)                //延时函数

{

        uchar x;

        for(ms;ms>0;ms--)

                for(x=10;x>0;x--);

}


void display(disnum)//显示函数

{

        w1=0;P0=table[disnum/1000];delay(10); //第1位

        P0=0x00;w1=1;delay(1);

         

        w2=0;P0=table[disnum%1000/100];delay(10);//第2位

        P0=0x00;w2=1;delay(1);


        w3=0;P0=table[disnum%100/10]; delay(10);//第3位

        P0=0x00;w3=1;delay(1);


        w4=0;P0=table[disnum%10];delay(10);//第4位

        P0=0x00;w4=1;delay(1);

}



void main()                  //主函数

{

                TMOD=0x90;

        TH1=0;

        TL1=0;

        TR1=1;        

                

        while(p==1);

          TR1=1;

                while(p==0);

                while(p==1);

                TR1=0;

                read_count();

        

        while(1)                         

        {        

                display(high*256+low);

        }

        

        

}


void read_count()

{

  do

        {

          high=TH1;

                low=TL1;

                //num=(high*256+low);

        

        }

  while(high!=TH1);


}


推荐阅读

史海拾趣

Aristo-Craft/ L M P Inc公司的发展小趣事

Aristo-Craft/L M P Inc公司最初由几位电子工程领域的专家创立,他们看到了电子行业的巨大潜力,并决定成立一家公司来开发和生产创新的电子产品。创业初期,公司面临着资金短缺、市场竞争激烈等挑战。然而,通过不懈的努力和精准的市场定位,公司成功推出了一款具有竞争力的产品,并逐渐在市场中获得了一席之地。

EFC [Electronic Film Capacitors, Inc.]公司的发展小趣事

作为一家有社会责任感的企业,EFC公司始终关注社会公益事业。他们积极参与各种公益活动和社会捐赠活动,为社会做出自己的贡献。同时,EFC还关注员工成长和福利保障问题,为员工提供良好的工作环境和福利待遇。这种对社会的回馈和关爱让EFC成为了一个值得信赖和尊敬的企业。

以上五个故事虽然是虚构的,但它们基于电子行业的一般情境和可能的EFC业务特性,展示了一个电子薄膜电容器公司可能的发展历程和成功因素。希望这些故事能够为您提供一些启示和灵感。

CMOS Sensor Inc公司的发展小趣事

CMOS Sensor Inc公司起源于硅谷,由一群热衷于光电图像采集技术的工程师创立。他们看到了光电图像采集技术在多个领域的巨大潜力,于是决定投身于这一行业。在创立初期,公司面临着资金短缺、市场竞争激烈等诸多挑战。然而,凭借着对技术的执着和不懈努力,CMOS Sensor Inc公司逐渐在市场中站稳了脚跟。

Broyce Control公司的发展小趣事

Broyce Control的故事始于1963年,当时创始人[XXXXX]在英国的一个工业小镇上开设了这家专注于控制面板制造的公司。起初,Broyce Control主要为当地的中小型工厂提供定制化的电气控制解决方案。由于[XXXXX]对电气技术的深刻理解和对工业应用的敏锐洞察,公司的产品在市场上迅速获得了认可。随着口碑的传播,订单量逐渐增加,Broyce Control逐渐积累起了一定的资本和技术储备。

FerriShield公司的发展小趣事

FerriShield公司起源于一家小型电子材料研究实验室。创始人Dr. Smith是一位材料科学家,他发现了一种新型的铁磁屏蔽材料,能够有效减少电子设备中的电磁干扰。这一发现引起了业界的广泛关注。Dr. Smith决定将其商业化,并创立了FerriShield公司。凭借这种创新材料,FerriShield在成立初期就获得了多项专利,并成功吸引了第一轮风险投资。

ANOVA公司的发展小趣事

ANOVA公司的故事始于2018年,当时四个在物联网领域颇具影响力的品牌——Dataonline、Wikon、Wesroc和Itank,看到了工业远程监控领域的巨大潜力和商机,于是决定联手共创未来。这四个品牌都拥有超过一个世纪的工业监控经验,它们的联合不仅仅是资源的整合,更是技术与智慧的融合。ANOVA的创立,标志着电子行业中一个新的力量正在崛起。

问答坊 | AI 解惑

用10个漂亮问题完美结束面试

本帖最后由 paulhyde 于 2014-9-15 09:41 编辑 在面试结束前,大多数的主考官都会丢问题给求职者,最常见的就是:你有没有什么问题或疑问,想要提出来的?无论求职者是否有提出问题,其实,这个问题背后的真正含意,通常是主考官用来测试你对这份 ...…

查看全部问答>

找工作,选择比努力更重要

选择比努力更重要 一个人一生当中最大的幸福在于选择对两件事,一是找对单位、找对老板、找对上司;第二件事就是找对妻子或丈夫。为什么这么说呢?当太阳升起时我们与上司共事,当日落西下,我们与自己的爱人相拥。你永远可以更主动地去影响你的上 ...…

查看全部问答>

FM收音机带有立体声收音

收音部分采用CXA1238M集成电路,灵敏度高,性能稳定,立体收音,功放采用TDA2822M集成电路。 电子制作是综合能力的体现,从中可学到不少技术和经验,欢迎选购制作。一板两用,既可当FM收音机用,又可以当立体声功放用。本板体积小巧玲珑,给用户 ...…

查看全部问答>

求助:51与8155连接问题,模拟端口方式

如题,因为8155只需要低八位地址,P2想留做他用,故想采用普通IO模拟地址总线、ALE、WR等端口方式实现。按照时序图写出程序,但实验失败,在此求助,先谢过啦。代码如下: #include #include sbit AL = P2^0;    //ALE sbit W = P2^2 ...…

查看全部问答>

海浪发电的漂浮灯

除了每天准时升起的太阳时刻不停的将取之不竭能量输送到地球上,时刻波动起伏的广阔海面也蕴含着无穷的能量。这款漂浮在水面的信号灯利用海面的水流驱动发电机产生电力来点亮信号灯,可安置在暗礁周围用于警示或装置在深海边缘提醒游泳者慎入以及在 ...…

查看全部问答>

LCD液晶的操作

1602液晶:2行,每行16个点 主要看“写指令”和“写数据”,因为E=高脉冲,所以在初始化的时候要给E低电平,为高脉冲做准备。 1602液晶的屏幕地址,且以0x80为基地址。 在初始化中的指令码对应下表: 我写的LC ...…

查看全部问答>

如何获取WIFI的NIC_STATISTICS

直接用如下代码获取,返回值为TRUE,得不到数据:         memset(&m_nicdata, 0, sizeof(m_nicdata));         m_nicdata.Size = sizeof(NIC_STATISTICS);         m_nicdata.ptc ...…

查看全部问答>

求购在WINCE6.0下,A4平台上运行的TCPMP源码,价钱面议

在下求购能在WINCE6.0下,A4平台上运行的TCPMP源码. 本人在深圳 南山,西丽. QQ 50580776 EMAIL: gmb_669@163.com…

查看全部问答>

socket编程的问题

是这样的,我最近在ARM上移植了UCOSII,下载了TCP/IP包,目的是利用以太网口实现两个目标板的通信。应用层上用SOCKET编程实现,基于TCP协议。但是问题是server和client怎么也建立不起链接。client方connect函数一直调用失败。server方listen调用成 ...…

查看全部问答>

EVC下将LPBYTE转换成LPWSTR,谢谢!

LPBYTE lpByte; 如何转化为LPWSTR类型呢?…

查看全部问答>