找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2345|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

單片機+可控硅+兩鍵 控制燈亮滅程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:284522 發(fā)表于 2023-5-17 17:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發(fā)一個單片機控制可控硅導(dǎo)通的程序。可控硅+兩鍵控制燈亮滅
單片機源程序如下:
  1. /***************************************************************
  2. 功  能:按鍵k1按下燈泡由滅逐漸變亮,按鍵k2按下燈泡由亮逐漸變滅
  3. 單片機:STC90C58+
  4. 晶  振:12M
  5. 編  程:hgh
  6. ****************************************************************/

  7. #include<stc90c.h>
  8. #include<intrins.h>

  9. sbit k1=P3^4;
  10. sbit k2=P3^5;
  11. sbit BT=P2^0;

  12. unsigned int t;

  13. void Delay6us()                //@12.000MHz
  14. {
  15.         _nop_();
  16.         _nop_();
  17. }



  18. void INT_1() interrupt 2        //外部中斷1,過零觸發(fā)
  19. {
  20.         if(k1==0)
  21.         {
  22.                 t -= 10;                        //減少觸發(fā)延時時間,燈逐漸亮
  23.                 if(t<=10)
  24.                         {
  25.                                 t=10;
  26.                         }
  27.         }
  28.         if(k2==0)
  29.         {
  30.                 t += 10;                        //增加觸發(fā)延時時間,燈逐漸熄滅
  31.                 if(t>=8000)
  32.                 {
  33.                         t=8000;
  34.                 }
  35.         }
  36.         TH0=(65536-t)/256;
  37.         TL0=(65536-t)%256;
  38.         TR0=1;
  39. }

  40. void T0_time() interrupt 1        //T0定時器,定時觸發(fā)可控硅的脈沖發(fā)出時間
  41. {                                                       
  42.         BT=0;
  43.         TR0=0;
  44.         Delay6us();
  45.         BT=1;
  46. }

  47. void init()
  48. {
  49.         EA=1;
  50.         IT1=1;
  51.         ET0=1;
  52.         EX1=1;
  53.         TMOD=0x01;
  54.         t=1000;                        //經(jīng)測試,過零后8ms可控硅就不能觸發(fā)導(dǎo)通了
  55. }                                        //所以t最大取8000即可

  56. void main()
  57. {
  58.         init();

  59.         while(1);
  60.        
  61. }
復(fù)制代碼


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

使用道具 舉報

沙發(fā)
ID:97678 發(fā)表于 2023-5-18 08:40 | 只看該作者
仿真運行時,沒有反應(yīng)?燈不亮!
回復(fù)

使用道具 舉報

板凳
ID:1006306 發(fā)表于 2023-5-18 13:25 | 只看該作者
輕身經(jīng)歷
void T0_time() interrupt 1        //T0定時器,定時觸發(fā)可控硅的脈沖發(fā)出時間
{                                                      
        BT=0;
        TR0=0;
        Delay6us();
        BT=1;
}
中的Delay6us();很重要,太短了控制不了,太長了最低值過大
回復(fù)

使用道具 舉報

地板
ID:284522 發(fā)表于 2023-5-19 10:06 | 只看該作者
我在實際電路使用可以控制,沒問題。
回復(fù)

使用道具 舉報

5#
ID:284522 發(fā)表于 2023-5-19 10:07 | 只看該作者
文家小阿哥 發(fā)表于 2023-5-18 13:25
輕身經(jīng)歷
void T0_time() interrupt 1        //T0定時器,定時觸發(fā)可控硅的脈沖發(fā)出時間
{              ...

你說的很對,6us是我實驗得出的。
回復(fù)

使用道具 舉報

6#
ID:284522 發(fā)表于 2023-5-19 13:52 | 只看該作者
jovew 發(fā)表于 2023-5-18 08:40
仿真運行時,沒有反應(yīng)?燈不亮!

我在實際電路中使用很正常,可以正?刂瓶煽毓。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表