一、MC20P24B芯片簡介
MC20P24B是由上海晟矽微電子有限公司基于HC05設(shè)計的MCU,具有成本低、抗干擾能力強(qiáng)、指令豐富等特點(diǎn)。主要有以下特點(diǎn):
●8位CISC型內(nèi)核(HC05)
●4K byte OTP ROM、208 byte RAM
●3組IO口(最多可支持17個通用IO口和1個輸入口)
●1個PWM輸出、1個8位基本定時器、1個8位帶比較輸出的定時器
●1個10位ADC(9路輸入)
●1個CLO輸出(CLO頻率為系統(tǒng)振蕩頻率的1/8)
●2個外中斷、1個定時器中斷、1個 PWM中斷
●看門狗復(fù)位功能
●2.1V/3.6V低壓復(fù)位
●可選晶振/RC振蕩
晶振 400K-8MHz;RC振蕩有 2MHz、4MHz、8MHz 3種可選(精度<2.5%)
●工作電壓
2.2-5.5V(工作頻率 400K-4MHz);2.7-5.5V(工作頻率 4M-8MHz)
●工作溫度-40-85℃
●封裝形式:SOP20/DIP20/SOP16/DIP16/SOP8/DIP8
二、原理圖
![](http://www.eet-china.com/STATIC/ARTICLE_IMAGES/201209/EECOL_2012Sep28_CTR_AN_01_1.jpg)
該系統(tǒng)主要由顯示部分(TM1628和4位數(shù)碼管)、按鍵部分及MCU(MC20P24B)組成MCU設(shè)置為內(nèi)部RC振蕩方式,頻率為4MHz;P26設(shè)置為CLO輸出功能(頻率為 4MHz/8 = 500KHz)。
三、程序設(shè)計
1)軟件流程圖(見下圖)
![](http://www.eet-china.com/STATIC/ARTICLE_IMAGES/201209/EECOL_2012Sep28_CTR_AN_01_2.jpg)
2)AD轉(zhuǎn)換
AD轉(zhuǎn)換程序主要完成對 4個按鍵值的采樣,本例程采用采樣 8次取平均值的方式;每 8次完成后分別與 4個按鍵 AD的前一個值(ADValue[ ])比較,如果大于則替代上一個值,小于則把兩者的差值存放到對應(yīng)的差值存儲器(addifference[ ])【注 1】;
對差值進(jìn)行排序,如果其中的最大值超過設(shè)定值【注 2】且第二大值小于設(shè)定值則認(rèn)為此按鍵被按下,并把對應(yīng)的按鍵值存放到按鍵值存儲單元(KeyBuf)。
如果第二大值大于設(shè)定則認(rèn)為按鍵無效【注 3】。
注 1:由于PCB布線的原因,差值會有一定的誤差,所以要根據(jù)實(shí)際的情況進(jìn)行修正
注 2:設(shè)定值要根據(jù)按鍵該板的厚度和材質(zhì)實(shí)際測定。
注 3:出設(shè)置是為了避免按鍵板有水的情況,出現(xiàn)按鍵誤判斷。
3)按鍵程序
按鍵程序可以按照常規(guī)的做法設(shè)計,直接判斷KeyBuf是否有值即可。
4)顯示程序
本例程在無按鍵按下時,數(shù)碼管循環(huán)顯示每個按鍵的值及對應(yīng)的按鍵AD值顯示的差值,當(dāng)有按鍵按下時最高位顯示被按下的按鍵值,次高位和最低兩位循環(huán)顯示不同的按鍵值對應(yīng)的按鍵AD值的差值。 |