找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1902|回復: 4
收起左側

單片機輸出一個閃爍燈電路,為什么程序編的是反的?

[復制鏈接]
ID:969272 發(fā)表于 2021-10-21 18:18 | 顯示全部樓層 |閱讀模式
本帖最后由 sh1900 于 2021-10-22 18:01 編輯

輸出一個閃爍燈電路,為什么編的是反的,即原本S1低電平時,3腳也為低,現(xiàn)在的是S1為低,則3腳為高,S1為高,則3腳為低,反過來了。剛學單片機不懂,哪里的毛。

2021-10-21_181436.jpg
2021-10-22_180112.jpg


++++++++++++++++++++++++++++++++++++

/*1個定時器,定時100毫秒,,計數(shù)4次就是400毫秒,P3.4翻轉一次狀態(tài),500次*100毫秒,就是50秒*/

#include <STC15F104E.H>

sbit KEY=P3^3;
sbit T04=P3^4;
sbit T50=P3^5;
unsigned int x,y;
void Timer0Init(void)                //100毫秒@6.000MHz
{
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TL0 = 0xB0;                  //設置定時初始值
        TH0 = 0x3C;                  //設置定時初始值
        TF0 = 0;                     //清除TF0標志
        TR0 = 1;                    //定時器0開始計時
        ET0 = 1;                    //使能定時器0中斷
}

void main()
{
        P3M1 = 0x00;
        P3M0 = 0x30;
        Timer0Init();
        EA=1;
        KEY=1;
        while(1);
        }
void time0() interrupt 1
{
        x++;y++;
        if(x>=4)  {T04=~T04;x=0;}
        if(KEY)
        {
        if(y<500)  {T50=0;}
        if(y>=500) {T50=1;}
        if(y>=600)  y=0;
  }
        else
        {
          T50=0;
          y=0;
        }
}


回復

使用道具 舉報

ID:963956 發(fā)表于 2021-10-21 19:30 | 顯示全部樓層
你太粗心了引起的
回復

使用道具 舉報

ID:969272 發(fā)表于 2021-10-22 08:48 | 顯示全部樓層

好歹給個提示,剛學根本不懂,這程序也不是我編的
回復

使用道具 舉報

ID:161164 發(fā)表于 2021-10-22 09:33 | 顯示全部樓層
sh1900 發(fā)表于 2021-10-22 08:48
好歹給個提示,剛學根本不懂,這程序也不是我編的

1. 截圖的時候要留意截出來的圖清不清晰,有沒有被遮擋,Part U?的提示窗把主線路都擋住了
2. 問問題的時候盡可能把背景資料,發(fā)現(xiàn)的問題,都說出來,如:這程序也不是我編的
3. if(KEY)什么時候為真,為真時又會發(fā)生什么事,不為真時又會發(fā)生什么事
回復

使用道具 舉報

ID:969272 發(fā)表于 2021-10-22 18:02 | 顯示全部樓層
lkc8210 發(fā)表于 2021-10-22 09:33
1. 截圖的時候要留意截出來的圖清不清晰,有沒有被遮擋,Part U?的提示窗把主線路都擋住了
2. 問問題的 ...

原理圖線路太簡單了,就這幾條線,已更新。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表