基於 C8051F020 的示波器監控程序設計
發布時間:2016-03-16 責任編輯:wenwei
【導讀】設計采用高性能單片機C8051F020為控製芯片,監控示波器麵板上40個按鍵、3個編碼開關及4個電位器的狀態。分別介紹了鍵盤、編(bian)碼(ma)開(kai)關(guan)和(he)電(dian)位(wei)器(qi)的(de)工(gong)作(zuo)原(yuan)理(li),以(yi)及(ji)其(qi)與(yu)單(dan)片(pian)機(ji)連(lian)接(jie)的(de)硬(ying)件(jian)電(dian)路(lu)及(ji)軟(ruan)件(jian)編(bian)程(cheng)的(de)實(shi)現(xian)。按(an)鍵(jian)部(bu)分(fen)采(cai)用(yong)一(yi)鍵(jian)多(duo)義(yi)的(de)鍵(jian)盤(pan)程(cheng)序(xu)設(she)計(ji)方(fang)法(fa),給(gei)出(chu)了(le)鍵(jian)碼(ma)匹(pi)配(pei)子(zi)程(cheng)序(xu)流(liu)程(cheng)圖(tu)。
監控程序負責係統中全部硬件和軟件資源的分配、調度工作,它提供用戶接口,使用戶獲得友好的工作環境,是係統設計中一個重要組成部分。
1 C8051F020單片機概述
bansuizhedianzijishukuaisudefazhan,yuelaiyueduoderenjiarudianzikaifadedajun。zaixuexidianzijishuheyanfaxiangmudeguochengzhong,bimianbuleyaoshiyongyixieyiqi,liruwanyongbiao、示波器等等,然而對於一些非專業的愛好者,擁有一台數字示波器是比較“奢侈”的。本設計C8051F020單片機,因其具有成本低、製作簡單、測量精度高等優勢,恰恰滿足了這一部分人的需求。
C8051F020單片機是高度集成的片上係統。在芯片內集成了2個多通道ADC子係統(每個子係統包括1個可編程增益放大器和1個模擬多路選擇器)、2 個電壓輸出DAC、2個電壓比較器、電壓基準、SMBus/I2C總線接口、UART、SPI總線接口、5個通用的16位定時器、1個具有5個捕捉/比較模塊的可編程計數器/定時器陣列(PCA)、內部振蕩器、8個8位通用數字I/0端口和64 KBFLASH程序存儲器,以及8051兼容的高速微控製器內核。
C8051F020單片機是所有模擬和數字外設均可由用戶固件使能/禁止和配置。Flash 存儲器還具有在係統重新編程能力,可用於非易失性數據存儲,並允許現場更新8051 固件。片內JTAG 調試電路允許使用安裝在最終應用係統上的產品MCU 進行非侵入式(不占用片內資源)、全速、在係統調試。該調試係統支持觀察和修改存儲器和寄存器,支持斷點、觀察點、單步及運行和停機命令。在使用JTAG 調試時,所有的模擬和數字外設都可全功能運行。
Cygnal出的一種混合信號係統級單片機。片內含CIP-51的CPU內核,它的指令係統與MCS-51完全兼容。其中的C8051F020單片機含有64kB片內Flash程序存儲器,4352B的RAM、8個I/O端口共64根I/O口線、一個12位A/D轉換器和一個8位A/D轉換器以及一個雙12位D/A轉換器、2個比較器、5個16位通用定時器、5個捕捉/比較模塊的可編程計數/定時器陣列、看門狗定時器、VDD監視器和溫度傳感器等部分。C8051F020單片機支持雙時鍾,其工作電壓範圍為2.7~3.6V(端口I/O,RST和JTAG引腳的耐壓為5V)。與以前的51係列單片機相比,C8051F020增添了許多功能,同時其可靠性和速度也有了很大提高。
2 一鍵多義鍵盤工作原理
一台完善的智能儀表功能往往很多,設定的量程、參(can)數(shu)也(ye)很(hen)多(duo)。如(ru)果(guo)還(hai)是(shi)用(yong)一(yi)鍵(jian)一(yi)個(ge)功(gong)能(neng),勢(shi)必(bi)要(yao)有(you)一(yi)個(ge)很(hen)大(da)的(de)鍵(jian)盤(pan),麵(mian)板(ban)相(xiang)應(ying)擴(kuo)大(da),不(bu)美(mei)觀(guan),而(er)且(qie)成(cheng)本(ben)增(zeng)加(jia)。因(yin)此(ci)在(zai)這(zhe)類(lei)儀(yi)表(biao)中(zhong),鍵(jian)盤(pan)設(she)計(ji)成(cheng)一(yi)鍵(jian)多(duo)義(yi),一(yi)個(ge)鍵(jian)有(you)多(duo)種(zhong)功(gong)能(neng)。
在(zai)一(yi)鍵(jian)多(duo)義(yi)的(de)情(qing)況(kuang)下(xia),一(yi)個(ge)命(ming)令(ling)不(bu)是(shi)由(you)一(yi)次(ci)按(an)鍵(jian)組(zu)成(cheng),而(er)是(shi)由(you)一(yi)個(ge)按(an)鍵(jian)序(xu)列(lie)組(zu)成(cheng)。也(ye)就(jiu)是(shi)說(shuo),對(dui)一(yi)個(ge)按(an)鍵(jian)含(han)義(yi)的(de)解(jie)釋(shi),不(bu)僅(jin)取(qu)決(jue)於(yu)本(ben)次(ci)按(an)鍵(jian),還(hai)取(qu)決(jue)於(yu)以(yi)前(qian)按(an)了(le)些(xie)什(shen)麼(me)鍵(jian)。因(yin)此(ci),對(dui)於(yu)一(yi)鍵(jian)多(duo)義(yi)的(de)監(jian)控(kong)程(cheng)序(xu),首(shou)先(xian)要(yao)判(pan)斷(duan)一(yi)個(ge)按(an)鍵(jian)序(xu)列(lie)(而不是一次按鍵)shifouyigouchengyigehefamingling。ruoyigouchenghefamingling,zezhixingmingling,fouzedengdaixinanjianshuru。yijianduoyijianpanguanlichengxu,zhuyaojiejuejianpananjianxuliedeshibieheruhegenjujianpandeanjianxuliequzhaoxiangyingdecaozuochengxuzhelianggewenti。
上述問題可用“一圖三表”的方法來解決。即,建立一張鍵圖,依靠分析程序狀態表,分析程序入口表和動作例行子程序表來完成。其中分析程序狀態表總共分為4欄,分別為現狀態PSTi、鍵碼、下一狀態、動作例行子程序編號。
3 編碼開關工作原理
編碼開關有3個引腳和5個引腳的,其中2個引腳是按下功能,另外3個引腳控製編碼開關的左旋和右旋功能,與引腳1、2相連的是兩個長短不一的金屬靜片,與引腳3相連的是一周有12或24個齒的金屬動片。當脈衝電位器旋轉時可出現4種狀態:引腳3與引腳1相連,引腳3與引腳2及引腳1全相連,引腳3與引腳2 相連,引腳3與引腳2及引腳1全斷開。
在實際使用中,一般將引腳3接地作為數據輸入端。而引腳1、2作為數據輸出端與單片機I/0口相連。本設計中用到3個編碼開關,其中一個將引腳1與單片機的P4.0相連,引腳2與單片機的P4.1相連。當脈衝電位器左旋或右旋時,P4.0和P4.1就會周期性地產生圖1所示的波形。如果是12點的脈衝電位器旋轉一圈就會產生12組這樣的波形,24點的脈衝電位器就會產生24組這樣的波形。一組波形(或一個周期)包含了4個工作狀態。因此隻要檢測出P4.O 和P4.1的波形,就能識別脈衝電位器是否旋轉,是左旋還是右旋。

4 C8051F020單片機ADC0
C8051F020的ADC0子係統包括:一個9通道的可配置模擬多路開關(AMUX0)、一個可編程增益放大器(PGA0)和一個100 ksps的12位分辨率的逐次逼近寄存器型ADC。ADC中集成了跟蹤保持電路和可編程窗口檢測器。AMUX0、PGA0、數據轉換方式及窗口檢測器都可用軟件通過特殊功能寄存器來配置。隻有當ADC0控製寄存器(ADCOCN)中的ADOEN位被置1時,ADC子係統才被允許工作。當ADOEN位為0 時,ADC子係統處於低功耗關斷方式。
ADC0端口的每一對均可用編程設置成為單端輸入或差分輸入。差分輸入時的端口配對為(0,1)、(2,3)、(4,5)、(6,7),此設置由通道選擇寄存器AMUXOSL的低4位和通道配置寄存器AMUXOCF的低4位確定。在AMXOCF中,位3~O各對應2個引腳通道。位值=0,表示是獨立的單端輸入(複位值均為單端輸入);位值=1,表示是差分輸入對。
C8051F係列單片機中ADC的速率都是可編程設置的,但最少要用16個係統時鍾。一般在轉換之前還自動加上3個係統時鍾的跟蹤/保持捕獲時間 (>1.5μs)。設置F020內ADC速率的方法是通過配置寄存器ADCOCF的位7~3來進行的,其複位值為11111(位 7~3=SYSCLK/CLK(SAR)-1)。
一般在啟動ADC之前都要處於跟蹤方式,控製寄存器ADCOCN的位6如果為“O”,則一直處於跟蹤方式(此時啟動4種啟動方式都可比跟蹤啟動快3個係統時鍾);如為“1”,則有4種跟蹤啟動方式可選擇,即對ADCOCN中的位3~2賦值:00為向ADBUSY寫1時跟蹤(軟件命令),01為定時器3溢出跟蹤,1O為CNVSTR上升沿跟蹤(外部信號),11為定時器2溢出跟蹤。
5 係統硬件電路設計
鍵盤部分采用6×6矩陣鍵盤,P7.O~P7.5為行線,P3.0~P3.5為列線。P3.0與P7.O交叉處為一鍵,P7口接10 kΩ的上拉電阻至3.3 V。3個編碼開關的1、2腳直接與單片機的I/0引腳相連,這裏選擇P4.O~P4.5,3腳接地,4、5腳用作按鍵使用。僅以接P4.O和P4.1引腳的編碼開關為例,電路圖如圖2所示。模數轉換部分使用內部電壓基準,故將VREF引腳與VREF0引腳相連即可。采用電位器調節模擬量的輸入,單端輸入,電位器阻值為10 kΩ,基準電壓典型值為2.43 V,電源電壓采用3.3 V供電。為使基準電壓達到最大,需要一個阻值約為3.58 kΩ的電阻與電位器串聯接到模擬端口,硬件電路如圖3所示,電位器的4、5腳也用作按鍵使用。


6 係統軟件設計
6.1 一鍵多義鍵盤程序設計
zaijianpanfenxizhong,yunyongyigegongzuozhuangtaijicunqibaocunjianpandexianzhuangtai,dangjianpansaomiaodaoyigeanjianshi,genjuxianzhuangtaidezhicongfenxichengxurukoubiaozhongzhaodaofenxichengxuzhuangtaibiaodizhi,conggaidizhichujinrufenxichengxuzhuangtaibiao,zhaodaoxiangpipeidezhi,baxiayizhuangtaisongdaoxianzhuangtaidanyuanli,quchudongzuohao,genjudongzuohaojisuanchudongzuozichengxurukoudizhi,zaizhixingxiangyingzichengxu。tu4為鍵碼匹配子程序的流程圖。
6. 2 編碼開關程序設計
由圖1可以看出,引腳1和引腳2有同時為高電平的情況,之後如果引腳2比引腳1先到達高電平則表示左旋,如果引腳1比引腳2先到達高電平則表示右旋。編程的時候依據這個特點來判斷引腳1、引腳2的狀態即可。以1引腳接P4.0,2引腳接P4.1為例:

6.3 模數轉換軟件設計
通過設置ADCO控製寄存器ADCOCN位3~2(ADOCM1~O)A/D轉換啟動方式選擇位,來啟動A/D轉換:位3~2為00時,向ADOBUSY(ADCOCN位4)寫1啟動A/D轉換;位3~2為01時,定時器3溢出啟動A/D轉換;位3~2為10時,CNVSTR上升沿啟動 A/D轉換;位3~2為11時,定時器2溢出啟動A/D轉換。本設計采用第一種啟動方式。
由於單片機的工作量並不大,所以軟件設計時采用查詢的方式。單片機不斷地查詢鍵盤、編碼開關以及電位器的狀態,如果有變化時,單片機將動作信息傳遞給 ARM主MCU,等待主MCU的(de)處(chu)理(li)。由(you)於(yu)單(dan)片(pian)機(ji)模(mo)數(shu)轉(zhuan)換(huan)的(de)速(su)度(du)非(fei)常(chang)快(kuai),因(yin)此(ci)在(zai)程(cheng)序(xu)中(zhong)加(jia)延(yan)時(shi),以(yi)便(bian)觀(guan)察(cha)到(dao)模(mo)數(shu)轉(zhuan)換(huan)的(de)變(bian)化(hua)量(liang)。另(ling)外(wai),硬(ying)件(jian)設(she)計(ji)時(shi)沒(mei)有(you)考(kao)慮(lv)濾(lv)波(bo),故(gu)用(yong)軟(ruan)件(jian)實(shi)現(xian)濾(lv)波(bo)。一(yi)般(ban)的(de)濾(lv)波(bo)的(de)方(fang)法(fa)有(you)限(xian)幅(fu)濾(lv)波(bo)法(fa)、中位置濾波法、算術平均濾波法等,現在提出一種新的濾波方法。由於使用12位A/D,但隻要8位就可以達到所要的精度,所以可以采用去掉低4位的方法來實現濾波的目的。由於篇幅有限,下麵隻給出程序的一部分,以AIN0為例:

結語
本文介紹的一鍵多義的按鍵管理程序,對多按鍵的智能儀表可以通用。編碼開關的編程方法簡單易懂。在A/D轉換部分,提出的去掉低4位的軟件濾波方法可靠可行,對精度要求不高的場合非常適用。這3部分構成了一個完整的監控程序,當單片機監控到某一部分有變化時,就將其動作信息傳遞給ARM主CPU,主CPU 進行相應的處理。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
按鈕開關
白色家電
保護器件
保險絲管
北鬥定位
北高智
貝能科技
背板連接器
背光器件
編碼器型號
便攜產品
便攜醫療
變容二極管
變壓器
檳城電子
並網
撥動開關
玻璃釉電容
剝線機
薄膜電容
薄膜電阻
薄膜開關
捕魚器
步進電機
測力傳感器
測試測量
測試設備
拆解
場效應管
超霸科技


