| 一、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值的差值。  |