历史上的今天
返回首页

历史上的今天

今天是:2024年12月30日(星期一)

正在发生

2021年12月30日 | 基于51单片机的程控放大器

2021-12-30 来源:eefocus

仿真图: 基于数码管显示,具有方波 正弦波 三角波 锯齿波放大功能,放大倍数支持1倍20倍30倍50倍放大
在这里插入图片描述
在这里插入图片描述

程序设计

#include

#include

sbit sbF1 = P2 ^ 0;   //不进行放大处理

sbit sbF20 = P2 ^ 1;  //放大20倍

sbit sbF30 = P2 ^ 2;  //放大30倍

sbit sbF50 = P2 ^ 3;  //放大50倍


sbit sbDIN = P3 ^ 0;                        //MAX7219的数据引脚

sbit sbLOAD = P3 ^ 1;                      //MAX7219的控制引脚

sbit sbCLK = P3 ^ 2;                       //MAX7219的时钟引脚


//显示缓冲区定义

unsigned char Disp_Buffer[8]=            //MAX7219的输出缓冲

{

  0,0,0,0,0,0,0,0

};

unsigned char Disp_Buffer1[8]=            //MAX7219的输出缓冲

{

  0,0,0,0,0,0,0,1

};

unsigned char Disp_Buffer20[8]=            //MAX7219的输出缓冲

{

  0,0,0,0,0,0,2,0

};

unsigned char Disp_Buffer30[8]=            //MAX7219的输出缓冲

{

  0,0,0,0,0,0,3,0

};

unsigned char Disp_Buffer50[8]=            //MAX7219的输出缓冲

{

  0,0,0,0,0,0,5,0

};


void DelayMS(unsigned int ms)              //毫秒级延时函数

{

unsigned int i,j;

for( i=0;i for(j=0;j<1141;j++);

}

//写MAX7219函数,Addr为MAX7219的内部寄存器地址,Dat为待写入的数据

void Write7219(unsigned char Addr,unsigned char Dat)

{

  unsigned char i;

sbLOAD = 0;                                         

for(i=0;i<8;i++)                               //先送出8位地址

{

sbCLK = 0;                                   //时钟拉低

Addr <<= 1;                                  //移位送出地址

sbDIN = CY;                                    //送出数据

sbCLK = 1;                                   //时钟上升沿

_nop_();

_nop_();

sbCLK = 0;                                   

}

for(i=0;i<8;i++)                              //再送出8位数据

{

sbCLK = 0;

Dat <<= 1;                                  //移位送出数据

sbDIN = CY;

sbCLK = 1;

_nop_();

_nop_();

sbCLK = 0;

}

sbLOAD = 1;

}

//MAX7129的初始化函数

void Initialise7219()

{

  Write7219(0x09,0xff);                 //编码模式寄存器

Write7219(0x0a,0x07);                 //显示亮度控制

Write7219(0x0b,0x07);                 //扫描控制

Write7219(0x0c,0x01);                 //关闭模式控制寄存器设置

}


void  Wobbling ()   //延时程序防止按键抖动

{

  unsigned int i;

  for(i=0;i<1000;i++);

}


void main()

{

  unsigned char i;

Initialise7219();                     //首先初始化MAX7129

DelayMS(1);                         //延时1毫秒

  for(i=0;i<8;i++)

{

Write7219(i+1,Disp_Buffer[i]);      //将显示缓冲区内的数据循环送出

  P1 = 0x00;    //初始化端口

  P2 = 0xFF;  

  P1 = 0x11;   //再不按键的情况下默认为不进行放大处理

  while(1)

  {

  if (sbF1 == 0) //判断是否按下按键

  {

    Wobbling();   //时间延时程序,软件防抖动

    if( sbF1 == 0)  //确定按下按键

    {

      P1 = 0x11;   //放大1倍

      for(i=0;i<8;i++)

    {

    Write7219(i+1,Disp_Buffer1[i]);      //显示放大1倍

    }

    }

  }

  if(sbF20 == 0)  //判断是否按下按键         

  {

    Wobbling();   //时间延时程序,软件防抖动 

    if(sbF20 == 0) //确定按下按键 

    {            

      P1 = 0x22;   //放大20倍 

      for(i=0;i<8;i++)

    {

    Write7219(i+1,Disp_Buffer20[i]);      //显示放大20倍

    }

     }             

  }

  if(sbF30 == 0) //判断是否按下按键         

  {

    Wobbling();   //时间延时程序,软件防抖动 

    if(sbF30 == 0) //确定按下按键   

    {          

      P1 = 0x44;   //放大30倍  

      for(i=0;i<8;i++)

    {

    Write7219(i+1,Disp_Buffer30[i]);      //显示放大20倍

    }

     }            

  }


文件仅供参考


链接:https://pan.baidu.com/s/1Ro5Ryg7k_E4AuBsxYmeQdA

提取码:cxa5

推荐阅读

史海拾趣

驰芯微(CHIPWISE)公司的发展小趣事

驰芯微公司自2014年成立以来,就立志于打破国外芯片厂商在车规级芯片领域的垄断。初创时期,公司面临着资金短缺、技术壁垒高和市场竞争激烈的挑战。然而,驰芯微团队凭借对技术的执着追求和对市场的敏锐洞察,成功研发出了一系列车规级智能传感和控制芯片,并逐渐在行业中崭露头角。经过数年的努力,驰芯微已经成为国内车规级芯片领域的领军者,其产品广泛应用于各类前装量产车型。

鑫雁公司的发展小趣事

为了更快地拓展市场,聚洵半导体积极寻求与国内外知名企业的合作。公司与世界领先的芯片制造公司台积电建立了晶圆代工合作关系,并在长电科技和华天科技进行封装测试,确保了产品的一流工艺和品质。此外,聚洵还与国内多家电子元器件电商平台如立创商城、华强芯城等建立了紧密的合作关系,通过线上线下双管齐下的分销渠道,将产品迅速推向市场。这些合作不仅提升了聚洵的品牌知名度,还极大地促进了其市场份额的增长。

Array Microsystems Inc公司的发展小趣事

为了支持公司的快速发展和技术创新,Array Microsystems Inc高度重视人才引进和团队建设。公司积极招聘业内优秀的技术人才和管理人才,为他们提供良好的工作环境和福利待遇。同时,公司还注重员工的培训和晋升机制,鼓励员工不断学习和成长。这些措施使得Array Microsystems Inc拥有了一支高素质、专业化的团队,为公司的发展提供了有力的人才保障。

Amphion Semiconductor Ltd公司的发展小趣事

在追求经济效益的同时,Array Microsystems Inc也积极履行社会责任,关注可持续发展。公司致力于推广环保理念和技术应用,推动电子行业的绿色发展。同时,公司还积极参与公益事业和社会活动,为社会做出积极贡献。这些举措不仅提升了公司的社会形象,也为其长期发展奠定了坚实的基础。

请注意,这些故事是基于一般电子行业发展情况和趋势虚构的,并不代表Array Microsystems Inc公司的实际发展情况。如果您需要了解该公司的真实发展情况,建议您查阅相关资料或咨询专业人士。

Bombardier Inc公司的发展小趣事

随着全球航空市场的不断变化,庞巴迪公司在商用航空领域也取得了显著成就。其生产的CRJ系列区域喷气客机和Q系列涡桨飞机在全球范围内广受欢迎。这些飞机配备了先进的电子设备和系统,提供了更高的安全性和舒适性。庞巴迪还推出了C系列单通道中距客机,该机型以其环保、经济和人性化的设计赢得了市场的广泛认可。

Anaren Ceramics公司的发展小趣事

Anaren Ceramics公司在电子行业中崭露头角,首先得益于其在陶瓷材料技术方面的重大突破。公司研发了一种新型的陶瓷材料,具有优异的绝缘性能和高温稳定性,这为当时的电子行业提供了前所未有的解决方案。随着这种新型陶瓷材料在市场上的广泛应用,Anaren Ceramics公司的知名度逐渐提升,逐渐成为了行业内的佼佼者。

问答坊 | AI 解惑

一种低压程控电源的设计

摘要:随着电力电子技术的发展,将电力电子技术与自动测量技术相结合,便可以使程控电源的设计变得简单可行。介绍了一种用于自动测量的低压程控电源,实现了对电源的实时控制。 关键词:程控电源;单片机   0    引言    ...…

查看全部问答>

RF无线射频电路设计中的常见问题及设计原则

RF无线射频电路设计中的常见问题及设计原则…

查看全部问答>

09控制类的进

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 09国赛 做控制类的进这个群 74779049 我们来讨论今年 出题内容及要素  …

查看全部问答>

请问有4路24位的TTL电平信号的数据采集怎么设计和选型?

模拟信号都好采集,但是有的传感器是BCD码输出的,每个传感器的引脚是24条线输出,有4个,请问怎么设计和选型? 这里面可能要用到数据选择器或者寄存器;还有USB控制器…

查看全部问答>

用PCI芯片开发PCI接口板及相关驱动,

分到一个任务,要用PCI芯片开发PCI接口板及相关驱动, 我会点c/C++,VC++,硬件会的比较少,只会点 数模电及一些基本电路。 有点没有头绪,不知道您不能根据我的情况给我点指点,能给一个能由浅入深,循序渐进的学习过程。 谢谢,祝一切顺利! …

查看全部问答>

spi串行通信

AT89S53增加了SPI接口,对其的串行通信有什么影响, 在与PC机通信时带来了什么? 做毕业设计,我起初是用的AT98C51 先谢谢各位了…

查看全部问答>

怎样将手机的摄像头作为Wince设备的USB设备

我的手机有一个摄像头,而且可以以USB接口连接到桌面计算机上,作为摄像头使用。请问怎样在WinCE设备里也可以这样用呢?需要怎样开发相关驱动?…

查看全部问答>

★★★★★诚聘【MSP430】单片机设计工程师★★★★★

诚聘单片机设计工程师: 1,会msp430,有设计经验 2,有msp430   C语言开发经验 3,懂信号处理,会用matlab 4,最好有工作经验1年以上 电话:010-81504648 公司网站:www.safezx.com 注:工作地点北京…

查看全部问答>

VS2005调试目标机上应用程序时,用TCP/IP方式连接总是“设备未就绪”??

使用VS2005开发win ce的应用程序,在调试的时间用TCP/IP方式连接到开发板,老说“设备未就绪”,该怎么解决啊?…

查看全部问答>

请教高手,如何通过未定义指令陷阱支持协处理器的软件仿真

本人刚刚接触嵌入式开发,遇到一些问题请各位高手赐教: 1.如何通过未定义指令陷阱支持协处理器的软件仿真 2.ARM处理器如何利用未定义指令的中断机制仿真浮点向量运算…

查看全部问答>