历史上的今天
返回首页

历史上的今天

今天是:2025年12月07日(星期日)

正在发生

2022年12月07日 | 零基础入门单片机(3)案例就是一种外存

2022-12-07 来源:zhihu

案例一:LED闪烁

电路:

代码:


#include

sbit LED=P1^0;

void delay(int i)

{

    while(i--);

}

void main(void)

{

  LED = 1;

  while(1)

    {

         delay(1000);

         LED = !LED;

    }

}

案例二:按键控制LED的亮灭

电路:

代码:


#include

sbit K1=P3^0;

sbit L1=P1^0;


void main(void)

{

  while(1)

    {

      if(K1==0)

        {

          L1=0; //灯亮

        }

        else

          {

            L1=1; //灯灭

          }

    }

}

案例三:多按键控制多LED亮灭

电路

代码


#include

unsigned char temp;


void main(void)

{

  while(1)

    {

      temp=P1>>4;

      temp=temp | 0xf0;

      P1=temp;

    }

}

案例四:流水灯

电路

代码


#include

unsigned char i;

unsigned char temp;

unsigned char a,b;


void delay(void)

{

  unsigned char m,n,s;

  for(m=20;m>0;m--)

  for(n=20;n>0;n--)

  for(s=248;s>0;s--);

}

void main(void)

{

  while(1)

    {

      temp=0xfe;

      P1=temp;

      delay();

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

        {

          a=temp<          b=temp>>(8-i);

          P1=a|b;

          delay();

        }

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

        {

          a=temp>>i;

          b=temp<<(8-i);

          P1=a|b;

          delay();

        }

    }

}

案例五:花样灯

电路

代码


#include

unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,

                            0xef,0xdf,0xbf,0x7f,

                            0xfe,0xfd,0xfb,0xf7,

                            0xef,0xdf,0xbf,0x7f,

                            0x7f,0xbf,0xdf,0xef,

                            0xf7,0xfb,0xfd,0xfe,

                            0x7f,0xbf,0xdf,0xef,

                            0xf7,0xfb,0xfd,0xfe,

                            0x00,0xff,0x00,0xff,

                            0x01};

unsigned char i;


void delay(void)

{

  unsigned char m,n,s;

  for(m=20;m>0;m--)

  for(n=20;n>0;n--)

  for(s=248;s>0;s--);

}


void main(void)

{

  while(1)

    {

      if(table[i]!=0x01)

        {

          P1=table[i];

          i++;

          delay();

        }

        else

          {

            i=0;

          }

    }

}

案例六:扬声器发声

电路

代码


#include

#include


bit flag;

sbit P1_7=P1^7;

sbit P1_0=P1^0;


unsigned char count;


void dely500(void)

{

  unsigned char i;

  for(i=250;i>0;i--)

    {

      _nop_();

    }

}


void main(void)

{

  while(1)

    {

      if(P1_7==0)

        {

          for(count=200;count>0;count--)

            {

              P1_0=~P1_0;

              dely500();

            }

          for(count=200;count>0;count--)

            {

              P1_0=~P1_0;

              dely500();

              dely500();

            }

        }

    }

}

案例七:静态数码管循环显示0-9

电路

代码


#include

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,

                            0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char dispcount;


void delay02s(void)

{

  unsigned char i,j,k;

  for(i=20;i>0;i--)

  for(j=20;j>0;j--)

  for(k=248;k>0;k--);

}


void main(void)

{

  while(1)

    {

      for(dispcount=0;dispcount<10;dispcount++)

        {

          P0=table[dispcount];

          delay02s();

        }

    }

}

案例八:键控花样灯(按一下改变一个状态)

电路

代码


#include


sbit P3_7=P3^7;

unsigned char count;


void delay10ms(void)

{

  unsigned char i,j;

  for(i=20;i>0;i--)

  for(j=248;j>0;j--);

}


void main(void)

{

  while(1)

    {

      if(P3_7==0)

        {

          delay10ms();

          if(P3_7==0)

            {

              count++;

              if(count==16)

                {

                  count=0;

                }

              P1=~count;

              while(P3_7==0);

            }

        }

    }

}

案例九:键控花样灯(2)

电路

代码


#include


sbit P1_0=P1^0;

sbit P1_1=P1^1;

sbit P1_2=P1^2;

sbit P1_3=P1^3;

sbit P3_7=P3^7;

unsigned char ID;


void delay10ms(void)

{

  unsigned char i,j;

  for(i=20;i>0;i--)

  for(j=248;j>0;j--);

}


void delay02s(void)

{

  unsigned char i;

  for(i=20;i>0;i--)

    {delay10ms();

    }

}


void main(void)

{ while(1)

    { if(P3_7==0)

        {delay10ms();

          if(P3_7==0)

            {

              ID++;

              if(ID==4)

                {

                  ID=0;

                }

              while(P3_7==0);

            }

        }

      switch(ID)

        { case 0:

            P1_0=~P1_0;

            delay02s();

            break;

          case 1:

            P1_1=~P1_1;

            delay02s();

            break;

          case 2:

            P1_2=~P1_2;

            delay02s();

            break;

          case 3:

            P1_3=~P1_3;

            delay02s();

            break;

        }

    }

}

案例十:键控花样灯(3)

电路

代码


#include


sbit P3_7=P3^7;

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,

                            0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char Count;


void delay10ms(void)

{

  unsigned char i,j;

  for(i=20;i>0;i--)

  for(j=248;j>0;j--);

}


void main(void)

{

  Count=0;

  P0=table[Count/10];

  P2=table[Count%10];

  while(1)

    {

      if(P3_7==0)

        {

          delay10ms();

          if(P3_7==0)

            {

              Count++;

              if(Count==100)

                {

                  Count=0;

                }

              P0=table[Count/10];

              P2=table[Count%10];

              while(P3_7==0);

            }

        }

    }

}

案例十一:静态数码管计数(0-99)

电路


代码


#include


unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,

                            0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char Second;


void delay1s(void)

{

  unsigned char i,j,k;

  for(k=100;k>0;k--)

  for(i=20;i>0;i--)

  for(j=248;j>0;j--);

}



void main(void)

{

  Second=0;

  P0=table[Second/10];

  P2=table[Second%10];

  while(1)

    {

      delay1s();

      Second++;

      if(Second==60)

        {

          Second=0;

        }

      P0=table[Second/10];

      P2=table[Second%10];

推荐阅读

史海拾趣

AEM [ American Electronic Materials]公司的发展小趣事

AEM深知人才是企业发展的核心竞争力。因此,公司一直注重人才培养和团队建设。AEM建立了完善的人才培养和激励机制,吸引和培养了一批高素质、专业化的员工队伍。同时,公司还为员工提供了良好的工作环境和发展空间,鼓励员工不断创新和进取。

在团队建设方面,AEM注重团队合作和沟通协作能力的培养。通过定期的团队建设活动和内部培训,AEM打造了一支团结、高效、富有战斗力的团队,为公司的持续发展提供了有力保障。

这五个故事从不同角度展示了AEM公司在电子行业中的发展历程和取得的成就。通过不断创新、合作与拓展,AEM已经成为电子行业中具有重要影响力的企业之一。未来,随着技术的不断进步和市场的不断变化,AEM将继续保持其领先地位,为电子行业的发展贡献更多力量。

DCX-CHOL Enterprises公司的发展小趣事

随着技术的不断成熟,DCX-CHOL Enterprises的产品逐渐在市场上树立了良好的口碑。公司敏锐地捕捉到智能家居、物联网等新兴领域对电子产品的巨大需求,于是开始将产品线向这些领域拓展。通过与行业领军企业的合作,DCX-CHOL Enterprises成功地将产品打入这些新兴市场,市场份额逐年上升。同时,公司还积极开拓国际市场,将产品出口到多个国家和地区,进一步扩大了公司的知名度和影响力。

CNC Tech公司的发展小趣事

CNC Tech公司深知,在竞争激烈的电子行业中,品质是赢得客户信任和市场口碑的关键。因此,公司始终坚持品质至上的原则,从原材料采购到生产制造的每一个环节都严格把控品质。CNC Tech还建立了完善的品质管理体系,通过严格的质量检测和持续的技术改进,确保每一台出厂的设备都能达到客户的期望和要求。正是凭借这种对品质的执着追求,CNC Tech赢得了广大客户的信赖和好评。

Amphenol Thermometrics公司的发展小趣事

随着科技的不断发展,CNC Tech公司意识到,只有不断创新才能在行业中保持领先地位。因此,公司加大了对研发创新的投入,积极引进和培养高端人才,加强与高校和科研机构的合作。在CNC Tech的努力下,公司成功研发出一系列具有创新性的数控加工技术和产品,不仅提高了生产效率和质量,还降低了生产成本,为客户创造了更大的价值。这些创新成果也引领了行业的技术变革和发展趋势。

Anderson Power公司的发展小趣事

CNC Tech公司深知,在竞争激烈的电子行业中,品质是赢得客户信任和市场口碑的关键。因此,公司始终坚持品质至上的原则,从原材料采购到生产制造的每一个环节都严格把控品质。CNC Tech还建立了完善的品质管理体系,通过严格的质量检测和持续的技术改进,确保每一台出厂的设备都能达到客户的期望和要求。正是凭借这种对品质的执着追求,CNC Tech赢得了广大客户的信赖和好评。

DEVCON公司的发展小趣事

随着DEVCON品牌知名度的提升和产品线的不断丰富,公司开始将目光投向更广阔的市场。通过与国际知名企业的合作和代理,DEVCON的产品逐渐进入全球电子制造和维修领域。同时,公司还积极开拓新兴市场,如汽车电子、安防监控等领域,进一步扩大了市场份额。这种市场扩张的策略不仅带来了丰厚的回报,也为DEVCON公司的长期发展奠定了坚实基础。

问答坊 | AI 解惑

彩色液晶屏的驱动(NXP2138,带照片)

前日偶发一帖,关于点阵液晶的驱动  https://bbs.eeworld.com.cn/thread-59177-1-1.html    响应不大。 今天再发一原创帖,关于液晶的驱动,不用过将先上图,看个效果,关于硬件你们看了程序就知道了连接方法和屏的控制器,源 ...…

查看全部问答>

PCB设计的阻抗控制和阻抗匹配.pdf

PCB设计的阻抗控制和阻抗匹配.pdf…

查看全部问答>

l298直流电机驱动器c程序

l298直流电机驱动器c程序…

查看全部问答>

本人欲兼职电子产品PCBA设计加工,有兴趣的请联系,谢谢!

本人系某世界500强外资企业(>40000人)电子工程师(R&D EE),三年硬件研发工作经验; 担任过许多知名企业如SONY,LG,DELL,LaCie,Seagate的电子硬件设计,并已经量产; 有正规的产品研发流程,严格的质量管控经验; 欢迎联系考察合作, 219er@16 ...…

查看全部问答>

关于KEIL C的调试小问题

     请问为什么我用KEIL C调试的时候,跟踪变量的时候在第一个函数的变量都能在右下角的窗口中显示,但是进入第2个函数后里面的变量就不能在窗口中显示了,窗口是空白的,请问这是为什么啊…

查看全部问答>

ADC驱动初始化s2440ADC->rADCCON导致崩溃

我在写一个2440 ADC的驱动程序,程序已经被windows启动起来了,但是只要一执行到以下初始化红色的地方,程序就在串口输出崩溃信息。我的问题是,是不是触摸屏也在使用这个ADC。而2个驱动程序不能互相竞争这个寄存器? 我感觉不应该这样的,我在初 ...…

查看全部问答>

verilog pli相关,请帮忙,谢~~!

开发环境如下: os:xp sp2 modlesim: modlesim se 6.3f 我写了一个misctf的函数,声明:int clkReactive (int data, int reason), s_tfcell veriusertfs[] = {    {usertask, 0, clkInit, 0, clkGen, clkReactive, \"$clkGen\"}, ...…

查看全部问答>

问一个验证性问题,知道的就可以马上拿分

三星2440A,的ARM9芯片,里面有GSTATUS2和GSTATUS4等寄存器。说明里是说GSTATUS4只会在电源复位的时候才会丢失数据。否者一直保存数据。 下面就是我主要要问的问题了: 使用2440内部看门狗复位,会不会导致GSTATUS4的数据丢失呢? 请验证过的朋 ...…

查看全部问答>

DIY湿度计活动进展报告!(拿到湿度计的朋友,看过来!)

  2010.8.5   板子发送及焊接调试阶段 ,调试问题详见2楼C8051版原理图及PCB: https://bbs.eeworld.com.cn/thread-154053-1-1.htmlC8051版器件清单:C8051F湿度计元器件说明:https://bbs.eeworld.com.cn/thread-154061-1-1.htmlC ...…

查看全部问答>

LED在工程应用中的一些常识

LED照明行业是一个新兴的行业,它以其独特的优点深受人们的青睐。如今在光电工程中,提高光效,节约能源和高可靠性已经成为人们共同追求的目的。我们在讨论和使用LED光源时,都会想到LED的寿命长、节约能源、亮度高等特点。也正是因为如此LED光源才 ...…

查看全部问答>