一、MC20P24B芯片簡(jiǎn)介
MC20P24B是由上海晟矽微電子有限公司基于HC05設計的MCU,具有成本低、抗干擾能力強、指令豐富等特點(diǎn)。主要有以下特點(diǎn):
●8位CISC型內核(HC05)
●4K byte OTP ROM、208 byte RAM
●3組IO口(最多可支持17個(gè)通用IO口和1個(gè)輸入口)
●1個(gè)PWM輸出、1個(gè)8位基本定時(shí)器、1個(gè)8位帶比較輸出的定時(shí)器
●1個(gè)10位ADC(9路輸入)
●1個(gè)CLO輸出(CLO頻率為系統振蕩頻率的1/8)
●2個(gè)外中斷、1個(gè)定時(shí)器中斷、1個(gè) PWM中斷
●看門(mén)狗復位功能
●2.1V/3.6V低壓復位
●可選晶振/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
二、原理圖

該系統主要由顯示部分(TM1628和4位數碼管)、按鍵部分及MCU(MC20P24B)組成MCU設置為內部RC振蕩方式,頻率為4MHz;P26設置為CLO輸出功能(頻率為 4MHz/8 = 500KHz)。
三、程序設計
1)軟件流程圖(見(jiàn)下圖)

2)AD轉換
AD轉換程序主要完成對 4個(gè)按鍵值的采樣,本例程采用采樣 8次取平均值的方式;每 8次完成后分別與 4個(gè)按鍵 AD的前一個(gè)值(ADValue[ ])比較,如果大于則替代上一個(gè)值,小于則把兩者的差值存放到對應的差值存儲器(addifference[ ])【注 1】;
對差值進(jìn)行排序,如果其中的最大值超過(guò)設定值【注 2】且第二大值小于設定值則認為此按鍵被按下,并把對應的按鍵值存放到按鍵值存儲單元(KeyBuf)。
如果第二大值大于設定則認為按鍵無(wú)效【注 3】。
注 1:由于PCB布線(xiàn)的原因,差值會(huì )有一定的誤差,所以要根據實(shí)際的情況進(jìn)行修正
注 2:設定值要根據按鍵該板的厚度和材質(zhì)實(shí)際測定。
注 3:出設置是為了避免按鍵板有水的情況,出現按鍵誤判斷。
3)按鍵程序
按鍵程序可以按照常規的做法設計,直接判斷KeyBuf是否有值即可。
4)顯示程序
本例程在無(wú)按鍵按下時(shí),數碼管循環(huán)顯示每個(gè)按鍵的值及對應的按鍵AD值顯示的差值,當有按鍵按下時(shí)最高位顯示被按下的按鍵值,次高位和最低兩位循環(huán)顯示不同的按鍵值對應的按鍵AD值的差值。 |