記錄一些關于本人實驗課的總結,由于本人是新手小白,許多程式和電路圖較為粗略。
同樣是提前預習了一下接下來的實驗,接下來是軌道電路實驗,由于種種原因還未開學隻能借助protues電腦仿真。
實驗要求
擷取軌道電路是否為車輛所占用的實際狀态,并通過發光二極管顯示出來。
目的主要是為看看軌道上有沒有列車占用
用51單片機,LED,ULN2003,按鍵等在protues軟體仿真
原理
原理是通過按鍵按下來虛拟列車在軌道上,控制51單片機輸出高電平再使用ULN2003反相原理驅動繼電器控制LED變為紅色。
畫一個草圖用于觀察原理
具體實作
按照正常套路,還是先上搜尋引擎搜尋繼電器的驅動電路
上面的電路圖和蜂鳴器類似,繼電器需要一個大電流來驅動是以使用三極管。
想想如果還是用三極管驅動就前面撞車了,是以開始看看有沒有另外的方法。
在Bilbil裡找到一個簡單快速的驅動電路
放上連結: Protues 仿真ArduinoUNO繼電器控制執行個體.
使用ULN2003晶片驅動,開始以為這晶片就是一個非門,上網搜尋晶片資料後發現是兩個三極管組成的達林管(雖然這裡就是使用了非門原理)
放上連結 ULN2003引腳功能介紹.
開始探索達林頓管的工作原理:
達林頓管就是兩個三極管接在一起,極性隻認前面的三極管。
模電中學過複合管,達林頓管應該就是和複合管的一種
以兩個相同極性的三極管為例,前面三極管集電極跟後面三極管集電極相接,前面三極管發射極跟後面三極管基極相接,前面三極管功率一般比後面三極管小,前面三極管基極為達林頓管基極,後面三極管發射極為達林頓管發射極,用法跟三極管一樣,放大倍數是兩個三極管放大倍數的乘積。
晶片内部構造圖在連結中可以看到
搞完這些那就開始畫仿真圖了
放上簡單的程式
#include "reg52.h"
sbit KEY0=P1^0;
sbit TEXT=P2^0;
void delay(unsigned int n);
void key();
int main()
{
while(1)
{
key();
}
}
void key()
{
if(KEY0==0)
{
delay(5);
TEXT=1;
}
if(KEY0==1)
{
TEXT=0;
}
}
void delay(unsigned int n)
{
unsigned int i=0,j=0;//定義無符号int變量
for(i=0;i<n;i++)
{
for(j=0;j<120;j++);
}
}
結語
本次實驗學習了ULN2003晶片,回憶起模電對三極管、複合管的計算及其工作原理,完成仿真任務