久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1964|回復: 17
打印 上一主題 下一主題
收起左側

單片機控制led只有取反才亮,給1和給0都不亮?

  [復制鏈接]
跳轉到指定樓層
樓主
是不是少了什么初始化,我看網上的例程好像都沒有

單片機源程序如下
#include <STC15.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

        sbit s1 = P3^3;
        sbit k1 = P3^2;        sbit k2 = P3^1;
        sbit k3 = P3^0;
        sbit led = P3^5;
        void main()
        {
                IT1 = 1;
                EX1 = 1;
                EA = 1;
           
                while(1)
                {
                         led        = !led;         //把這句改成led=1和led=0都不能點亮
                   }
       }
原理圖如下

后面加了推挽輸出確實可以了,只是一開始的話要先置0,不然按鍵按下會不起作用,感謝各位
P3M0 = 0x20;
P3M1 = 0x00;
led = 0;


                                       


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:192020 發表于 2024-5-16 15:06 | 只看該作者
還有這等子事?是不是中斷里有控制LED的?把中斷關了試試看?
回復

使用道具 舉報

板凳
ID:23640 發表于 2024-5-16 15:28 | 只看該作者
取反是如何亮的,看你程序死循環又沒有延時,取反的話應該是出現的脈沖電壓,微亮吧
回復

使用道具 舉報

地板
ID:1076567 發表于 2024-5-16 15:35 | 只看該作者
yaosongjin 發表于 2024-5-16 15:28
取反是如何亮的,看你程序死循環又沒有延時,取反的話應該是出現的脈沖電壓,微亮吧

確實是微亮,那我把死循環去掉再加個延時試試嗎
回復

使用道具 舉報

5#
ID:1076567 發表于 2024-5-16 15:36 | 只看該作者
qq475878026 發表于 2024-5-16 15:06
還有這等子事?是不是中斷里有控制LED的?把中斷關了試試看?

中斷關了也不行
回復

使用道具 舉報

6#
ID:857072 發表于 2024-5-16 15:46 來自手機 | 只看該作者
15是需要設置IO模式的
回復

使用道具 舉報

7#
ID:466997 發表于 2024-5-16 16:26 | 只看該作者
先將IO模式設置成推挽輸出,再將中斷關掉,最后在WHILE循環中添加延時。
回復

使用道具 舉報

8#
ID:1109793 發表于 2024-5-16 18:37 | 只看該作者
看下那個MOS,5V能打開不。
回復

使用道具 舉報

9#
ID:796531 發表于 2024-5-16 19:12 | 只看該作者
把Q1源漏極短接一下看看你led串聯后驅動電壓夠不夠
回復

使用道具 舉報

10#
ID:69038 發表于 2024-5-16 21:45 | 只看該作者
Q1什么型號?P3.5輸出的電壓,經電阻分壓后的Vgs電壓能讓它完全導通嗎?
VCC多少V?6串LED,2V(RLED)/3.3V(GLED/BLED),能驅得動嗎?
回復

使用道具 舉報

11#
ID:1117058 發表于 2024-5-17 00:24 | 只看該作者
設置輸出模式為推挽輸出
回復

使用道具 舉報

12#
ID:1076567 發表于 2024-5-17 10:17 | 只看該作者
j1ason 發表于 2024-5-16 16:26
先將IO模式設置成推挽輸出,再將中斷關掉,最后在WHILE循環中添加延時。

推挽輸出是這樣設嗎,改了還是不行
#include <STC15.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

        sbit s1 = P3^3;
        sbit k1 = P3^2;
        sbit k2 = P3^1;
        sbit k3 = P3^0;
        sbit led = P3^5;


        void Delay1s(int t)
                {
                        uint i;
                        i=1000*t;
                        while(1)
                        {
                                i--;  
                                if(i==0)
                                {return;}
                        }
                }
        void main()
        {
                P3M0 |= 0x00;
                P3M1 |= 0x08;       
                          
                while(1)
                {
                        Delay1s(10);
                        led = 1;
                }
      }
回復

使用道具 舉報

13#
ID:161164 發表于 2024-5-17 10:38 | 只看該作者
R8/R9阻值是多少?分壓了吧?
把R8去掉試試
回復

使用道具 舉報

14#
ID:69038 發表于 2024-5-18 17:40 | 只看該作者
Dokkis 發表于 2024-5-17 10:17
推挽輸出是這樣設嗎,改了還是不行
#include
#include

P3.5設成推挽,應該是"P3M0|=0x20"
你核對一下。
STC的ISP軟件本身自帶的工具里邊就有。。。


51hei.jpg (64.77 KB, 下載次數: 31)

51hei.jpg
回復

使用道具 舉報

15#
ID:491923 發表于 2024-5-18 18:54 | 只看該作者
Vcc是多少?
回復

使用道具 舉報

16#
ID:1076567 發表于 2024-5-20 09:41 | 只看該作者
zhuls 發表于 2024-5-18 17:40
P3.5設成推挽,應該是"P3M0|=0x20"
你核對一下。
STC的ISP軟件本身自帶的工具里邊就有。。。

嗷嗷好的 第一次用這個芯片 不太熟悉
回復

使用道具 舉報

17#
ID:1076567 發表于 2024-5-20 09:42 | 只看該作者

vcc是5v
回復

使用道具 舉報

18#
ID:1076567 發表于 2024-5-20 11:56 | 只看該作者
zhuls 發表于 2024-5-18 17:40
P3.5設成推挽,應該是"P3M0|=0x20"
你核對一下。
STC的ISP軟件本身自帶的工具里邊就有。。。

你好 我設置成了推挽輸出,但是它一通電就自己亮了,我寫的程序是按鍵按下才亮,而且中斷對它也沒有反應
#include <STC15.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

        sbit s1 = P3^3;
        sbit k1 = P3^2;
        sbit k2 = P3^1;
        sbit k3 = P3^0;
        sbit led = P3^5;
        bit  seyFlag=0;

  void DELAY_MS (unsigned int t)
         {
     unsigned int a;
     while ( --t != 0 )   
                        {                               
        for (a=0;a<=600;a++);
      }
   }

        void DELAY_1s(int t)
                {
                        unsigned long int a,b,c,d,e,f,g;
                        a=60000*t;
                        b=60000*t;
                        c=60000*t;
                        d=60000*t;
                        e=60000*t;
                        f=60000*t;
                        g=60000*t;
                        while(1)
                        {
                                a--;
        b--;
                                c--;
                                d--;
                                e--;
                                f--;
                                g--;                               
                                if(seyFlag==1||g==0)
                                {
                                        led        = !led;
                                        seyFlag=0;
                                  return;
                                }
                        }
                }

        void Int1_Routine(void) interrupt 2
                        {
                                    //led        = !led;
                        seyFlag=1;
                        }

        void main()
        {
               
                P3M0 = 0x20;
                P3M1 = 0x00;       

                        IT1 = 1;
                        EX1 = 1;
                        EA = 1;
          
                while(1)
                {
                  if(seyFlag        ==        1)
                        {       
                                DELAY_MS(10);
                                led        = 1;
                               
                                if (k1==0)
                           {
                                 if (k2==1)
                                        {
                                                if (k3==1)
                                                 {
                                                         DELAY_1s(5);
                                                        }
                                                 
                                                else if(k3==0)
                                            {
                                                                DELAY_1s(10);
                                                        }
                                       
                                        }
                                }
                        }
                }
        }
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎影院在线观看免费视频 | 欧美 日韩精品 | 中文字幕乱码一区二区三区 | 精品久久99 | 91视频网址 | 精品自拍视频 | 精品乱码一区二区三四区视频 | 亚洲一区二区三区免费在线观看 | 国产精品久久久久婷婷二区次 | 日本一区二区三区免费观看 | 免费看一区二区三区 | 精品久久久久久 | 国产精品夜间视频香蕉 | av在线免费播放 | 噜噜噜噜狠狠狠7777视频 | 一区二区三区四区在线 | 亚洲色在线视频 | 视频在线一区 | 91视频在线 | 91精品导航 | 男人av的天堂 | 91欧美激情一区二区三区成人 | 中文字幕人成乱码在线观看 | 国产精品美女久久久久 | 国产精品久久久免费 | 精品一区二区三区在线观看国产 | 国产精品综合色区在线观看 | 亚洲精品国产电影 | 亚州国产 | 亚洲欧美日韩精品久久亚洲区 | 亚洲aⅴ精品 | 婷婷狠狠 | 亚洲免费一区二区 | 91久久久久久久久久久久久 | 欧美日韩不卡在线 | 午夜欧美 | 久久精品色欧美aⅴ一区二区 | 欧美日韩在线观看视频网站 | 国产成人精品一区二区三 | 天天干亚洲 | 免费一级大片 |