<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      小燈部分總分析

      點亮小燈

      硬件分析

      圖3-17 LED小燈整體電路圖
      該節(jié)內(nèi)容以LED2為例

      分析LED部分:
      欲點亮LED2,則LED2需導(dǎo)通狀態(tài)
      Q16導(dǎo)通,DB0低電平時,此時LED2有壓降,則LED2可導(dǎo)通

      分析74HC245芯片:
      72HC245
      19號OE號腳,為使能引腳,該引腳接地,所以是低電平,該引腳低電平有效,故74HC245芯片可作用
      1號腳是方向引腳,接VCC,故是高電平,所以是A編號引腳控制B編號引腳
      A1號腳低電平則B1號腳低電平,即DB_0低電平則DB0低電平 ^DBX-0

      分析74HC138芯片:
      74HC138
      4號腳E1為低電平有效,5號腳E2低電平有效,E3高電平有效
      欲達(dá)到上述效果,則
      ENLED低電平,此時E1和E2均為低電平
      ADDR3高電平,此時E3高電平
      此時,該芯片可正常使用

      欲使Q16導(dǎo)通,則LEDS6需要為低電平,此時Q16才有壓降,才可以導(dǎo)通
      欲使LEDS6低電平,查真值表后,需要3號腳A2為高電平,2號腳A1為高電平,1號腳A0為低電平
      欲達(dá)到以上效果,則
      ADDR0為低電平,則A0為低電平
      ADDR1為高電平,則A1為高電平
      ADDR2為高電平,則A2為高電平 ^Q16-1

      分析跳線部分:
      圖3-18 顯示譯碼器欲步進電機的選擇跳線
      欲時ADDR0低電平,則P1.0需要低電平
      欲使ADDR1高電平,則P1.1需要高電平
      欲使ADDR2高電平,則P1.2需要高電平
      欲使ADDR3高電平,則P1.3需要高電平

      圖 單片機電路
      欲使DB_0低電平,則P0.0需要低電平
      欲使ENLED低電平,則P1.4需要低電平

      綜上:
      欲電亮小燈,
      P0.0低電平,等效于DB_0低電平
      P1.0低電平,等效于ADDR0低電平
      P1.1高電平,等效于ADDR1高電平
      P1.2高電平,等效于ADDR2高電平
      P1.3高電平,等效于ADDR3高電平
      P1.4低電平,等效于ENLED低電平

      代碼

      倉庫

      倉庫地址:https://gitee.com/EricsT/51_microcontrollers/tree/master/LED

      點亮 LED2

      #include<reg52.h>
      
      sbit LED = P0 ^ 0;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      點亮LED3

      #include<reg52.h>
      
      sbit LED = P0 ^ 1;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      點亮LED4

      #include<reg52.h>
      
      sbit LED = P0 ^ 2;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      點亮LED5

      #include<reg52.h>
      
      sbit LED = P0 ^ 3;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      點亮LED6

      #include<reg52.h>
      
      sbit LED = P0 ^ 4;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      點亮LED7

      #include<reg52.h>
      
      sbit LED = P0 ^ 5;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      點亮LED8

      #include<reg52.h>
      
      sbit LED = P0 ^ 6;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      點亮LED9

      #include<reg52.h>
      
      sbit LED = P0 ^ 7;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
          LED = 0;//燈亮
          while (1);
      }
      

      小燈閃爍

      LED2閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 0;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      LED3閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 1;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      LED4閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 2;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      LED5閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 3;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      LED6閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 4;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      LED7閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 5;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      LED8閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 6;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      LED9閃爍

      #include <reg52.h>
      
      sbit LED   = P0 ^ 7;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              LED = 0;//燈亮
              for (i = 0; i < 30000; ++i);//非精確延時
              LED = 1;//燈滅
      		for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      流水燈

      右向左

      #include <reg52.h>
      
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      	char cnt = 0;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{		  
      		if (8 == cnt)//到最左邊,需要進行復(fù)位,點亮最右邊
      			cnt = 0;
      		P0 = ~(1 << cnt);
      		cnt++;
              for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      左向右

      #include <reg52.h>
      
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
      	char cnt = 7;
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{		  
      		if (-1 == cnt)//到最右邊,需要進行復(fù)位,點亮最左邊
      			cnt = 7;
      		P0 = ~(1 << cnt);
      		cnt--;
              for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      由右開始循環(huán)

      #include <reg52.h>
      
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
          char cnt = 0;
          char isLeft = 1;//自右向左標(biāo)志位
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              if (isLeft)
      		{
                  if (8 == cnt)//到最左邊,需要回到左邊起第二位,同時改變方向
      			{
      				cnt = 6;
      				isLeft = 0;
      			} 
              }
      		else
      		{
      			if (-1 == cnt)//到最右邊,需要回到右邊起第二位,同時改變方向
      			{
      				cnt = 1;
      				isLeft = 1;
      			}
      				
      		}
      
              P0 = ~(1 << cnt);
      
              if (isLeft)
                  cnt++;
      		else
      			cnt--;
      
              for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      由左開始循環(huán)

      #include <reg52.h>
      
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
          char cnt = 7;
          char isLeft = 0;//自右向左標(biāo)志位
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          while (1) 
      	{
              if (isLeft)
      		{
                  if (8 == cnt)//到最左邊,需要回到左邊起第二位,同時改變方向
      			{
      				cnt = 6;
      				isLeft = 0;
      			} 
              }
      		else
      		{
      			if (-1 == cnt)//到最右邊,需要回到右邊起第二位,同時改變方向
      			{
      				cnt = 1;
      				isLeft = 1;
      			}
      				
      		}
      
              P0 = ~(1 << cnt);
      
              if (isLeft)
                  cnt++;
      		else
      			cnt--;
      
              for (i = 0; i < 30000; ++i);//非精確延時
          }
      }
      

      小燈以1s頻率閃爍

      #include <reg52.h>
      
      sbit LED = P0 ^ 0;
      sbit ADDR0 = P1 ^ 0;
      sbit ADDR1 = P1 ^ 1;
      sbit ADDR2 = P1 ^ 2;
      sbit ADDR3 = P1 ^ 3;
      sbit ENLED = P1 ^ 4;
      
      void main()
      {
          unsigned int i = 0;
          unsigned char cnt = 0;//定時器超時次數(shù)
      
          ENLED = 0;
          ADDR3 = 1;//U3 74HC138芯片使能
          ADDR2 = 1;
          ADDR1 = 1;
          ADDR0 = 0;//三極管導(dǎo)通
      
          TMOD = 0x01;//設(shè)置定時器T0運行模式為模式1
          
          TH0 = 0xB8;
          TL0 = 0x00;//設(shè)置定時器T0的初始值
      
          LED = 0;//燈亮
          TR0 = 1;//定時器T0開始工作
          
          while (1) 
      	{
              if (1 == TF0)//定時器T0溢出,即過了0.02s
              {
                  TF0 = 0;//定時器T0的溢出標(biāo)志復(fù)位
      
                  TH0 = 0xB8;
                  TL0 = 0x00;//設(shè)置定時器T0的初始值
                  cnt++;
                  if (cnt >= 50)//超出50次,即過了1s
                  {//進行一次新的1s
                      LED = ~LED;//燈的狀態(tài)改變
                      cnt = 0;
                  }               
              }
          }
      }
      
      posted @ 2025-07-23 20:08  EricsT  閱讀(289)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 在线高清免费不卡全码| 在国产线视频A在线视频| 日韩一区二区三区东京热| 高清无码在线视频| 亚洲第一精品一二三区| 成人看的污污超级黄网站免费| 国产日韩综合av在线| 全黄h全肉边做边吃奶视频| 日韩精品18禁一区二区| 91色老久久精品偷偷性色 | 老熟妇乱子交视频一区| 日韩亚洲精品中文字幕| 丁香五月婷激情综合第九色| 免费看婬乱a欧美大片| 中文无码妇乱子伦视频| 在线播放深夜精品三级| 国产精品嫩草99av在线| 久久亚洲国产成人亚| 国产成人午夜福利院| 性色av一区二区三区精品| 国产AV无码专区亚洲AV漫画| 亚洲人成人伊人成综合网无码| 亚洲天堂亚洲天堂亚洲色图| 精品一区二区三区在线观看l| 亚洲一区二区精品偷拍| 坐盗市亚洲综合一二三区| 毛片亚洲AV无码精品国产午夜| 国产精品无码专区| 久久亚洲国产五月综合网| 国产精品一码二码三码四码| 亚洲av永久无码精品天堂久久| 亚洲最大日韩精品一区| 非会员区试看120秒6次| 99久久精品久久久久久清纯| 亚洲av成人一区在线| 色综合色狠狠天天综合网| 亚洲国产色一区二区三区| 久久国产免费观看精品3| 免费无码黄十八禁网站| 亚洲av无码专区在线亚| 国日韩精品一区二区三区|