藍(lán)橋杯大賽的專用實(shí)驗(yàn)板是國信長天公司的CT107D單片機(jī)板子,這個(gè)板子用起來太多不順手,相信使用過的同學(xué)也深有體會(huì)。不人性的一面體現(xiàn)在板子擴(kuò)展的四片74HC573鎖存器,這對新手來說打擊可不小。
好,首先來看看這坑人的573鎖存器。上圖。

四片573由上到下分別連接8位LED,數(shù)碼管段選,數(shù)碼管位選,ULN2003驅(qū)動(dòng)芯片。如果想用單片機(jī)控制上述硬件,就要選通其中對應(yīng)的鎖存器。那要怎樣選通這些鎖存器呢。仔細(xì)看電路圖就會(huì)知道,573輸入端都由P0口控制,為了不使其沖突,增加了138譯碼器來擴(kuò)展端口。也就是138譯碼器決定選通哪個(gè)573,要想控制對應(yīng)的硬件工作,就要先通過138譯碼器選擇對應(yīng)的573芯片,然后再設(shè)置P0口電平。下圖就是138譯碼器的電路原理圖。

具體的編程思路是這樣的:初始化P2口,選擇對應(yīng)的碼位,設(shè)置P0口。
舉個(gè)例子,我要控制數(shù)碼管第一位顯示數(shù)字0,就要選通位選和段選的鎖存器然后P0設(shè)置。
代碼如下:
P2 &= 0x1f; //初始化P2^5,6,7口
P2 |= 0xc0; //選通Y6C鎖存器
P0 = 0x80; //設(shè)置數(shù)碼管第一位
P2 &= 0x1f;
P2 |= 0xe0;//選通Y7C鎖存器
P0 = 0xc0; //共陽極數(shù)碼管段選0
以上程序在C51環(huán)境下可以輕松實(shí)現(xiàn)數(shù)碼管顯示。
同理,LED、蜂鳴器、繼電器、電機(jī)等控制也是相同。
設(shè)置代碼如下:
LED
P2 &= 0x1f;
P2 |= 0x80;//選擇Y5C鎖存器
P0 = 0;//點(diǎn)亮全部
蜂鳴器
P2 &= 0x1f;
P2 |= 0xa0;//選通Y5C鎖存器
P0 = 0x80;//鳴響蜂鳴器
繼電器
P2 &= 0x1f;
P2 |= 0x20;//選通Y5C
P0 = 0x20;//吸合繼電器
我們再來看一下,隨板子自帶的STC轉(zhuǎn)接板。

小板上的主核是STC公司最新的IAP15系列1T單片機(jī),轉(zhuǎn)接后可以用作C52和STC12功能的單片機(jī)。其實(shí)我試過IAP15的部分功能,轉(zhuǎn)接后雖然44個(gè)引腳沒有全部引出,但還是可以使用普通的功能,比如定時(shí)器的1T時(shí)鐘模式。當(dāng)轉(zhuǎn)接為40腳的C52時(shí),需要注意個(gè)別引腳的變化。

由于IAP15集成復(fù)位電路和高精度R/C時(shí)鐘,不需要外部晶振,XTAL1和XTAL2是空的,傳統(tǒng)的WR、RD換成了4.2,4.4,在用到上述引腳的時(shí)候要特別注意。
看到這里可能有人會(huì)問,什么是IAP單片機(jī)。這里簡單的來說就是可以在線真機(jī)調(diào)試的單片機(jī)。普通的C51單片機(jī)只能冷啟動(dòng)下載,不能軟件直接調(diào)試的。大賽選用此機(jī)型,也是方便了選手調(diào)試程序的過程。