藍橋杯大賽的專用實驗板是國信長天公司的CT107D單片機板子,這個板子用起來太多不順手,相信使用過的同學也深有體會。不人性的一面體現在板子擴展的四片74HC573鎖存器,這對新手來說打擊可不小。
好,首先來看看這坑人的573鎖存器。上圖。
四片573由上到下分別連接8位LED,數碼管段選,數碼管位選,ULN2003驅動芯片。如果想用單片機控制上述硬件,就要選通其中對應的鎖存器。那要怎樣選通這些鎖存器呢。仔細看電路圖就會知道,573輸入端都由P0口控制,為了不使其沖突,增加了138譯碼器來擴展端口。也就是138譯碼器決定選通哪個573,要想控制對應的硬件工作,就要先通過138譯碼器選擇對應的573芯片,然后再設置P0口電平。下圖就是138譯碼器的電路原理圖。
具體的編程思路是這樣的:初始化P2口,選擇對應的碼位,設置P0口。
舉個例子,我要控制數碼管第一位顯示數字0,就要選通位選和段選的鎖存器然后P0設置。
代碼如下:
P2 &= 0x1f; //初始化P2^5,6,7口
P2 |= 0xc0; //選通Y6C鎖存器
P0 = 0x80; //設置數碼管第一位
P2 &= 0x1f;
P2 |= 0xe0;//選通Y7C鎖存器
P0 = 0xc0; //共陽極數碼管段選0
以上程序在C51環境下可以輕松實現數碼管顯示。
同理,LED、蜂鳴器、繼電器、電機等控制也是相同。
設置代碼如下:
LED
P2 &= 0x1f;
P2 |= 0x80;//選擇Y5C鎖存器
P0 = 0;//點亮全部
蜂鳴器
P2 &= 0x1f;
P2 |= 0xa0;//選通Y5C鎖存器
P0 = 0x80;//鳴響蜂鳴器
繼電器
P2 &= 0x1f;
P2 |= 0x20;//選通Y5C
P0 = 0x20;//吸合繼電器
我們再來看一下,隨板子自帶的STC轉接板。
小板上的主核是STC公司最新的IAP15系列1T單片機,轉接后可以用作C52和STC12功能的單片機。其實我試過IAP15的部分功能,轉接后雖然44個引腳沒有全部引出,但還是可以使用普通的功能,比如定時器的1T時鐘模式。當轉接為40腳的C52時,需要注意個別引腳的變化。
由于IAP15集成復位電路和高精度R/C時鐘,不需要外部晶振,XTAL1和XTAL2是空的,傳統的WR、RD換成了4.2,4.4,在用到上述引腳的時候要特別注意。
看到這里可能有人會問,什么是IAP單片機。這里簡單的來說就是可以在線真機調試的單片機。普通的C51單片機只能冷啟動下載,不能軟件直接調試的。大賽選用此機型,也是方便了選手調試程序的過程。