基於 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。
zaiyijianduoyideqingkuangxia,yigeminglingbushiyouyicianjianzucheng,ershiyouyigeanjianxuliezucheng。yejiushishuo,duiyigeanjianhanyidejieshi,bujinqujueyubencianjian,haiqujueyuyiqiananlexieshenmejian。yinci,duiyuyijianduoyidejiankongchengxu,shouxianyaopanduanyigeanjianxulie(而不是一次按鍵)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 一鍵多義鍵盤程序設計
在zai鍵jian盤pan分fen析xi中zhong,運yun用yong一yi個ge工gong作zuo狀zhuang態tai寄ji存cun器qi保bao存cun鍵jian盤pan的de現xian狀zhuang態tai,當dang鍵jian盤pan掃sao描miao到dao一yi個ge按an鍵jian時shi,根gen據ju現xian狀zhuang態tai的de值zhi從cong分fen析xi程cheng序xu入ru口kou表biao中zhong找zhao到dao分fen析xi程cheng序xu狀zhuang態tai表biao地di址zhi,從cong該gai地di址zhi處chu進jin入ru分fen析xi程cheng序xu狀zhuang態tai表biao,找zhao到dao相xiang匹pi配pei的de值zhi,把ba下xia一yi狀zhuang態tai送song到dao現xian狀zhuang態tai單dan元yuan裏li,取qu出chu動dong作zuo號hao,根gen據ju動dong作zuo號hao計ji算suan出chu動dong作zuo子zi程cheng序xu入ru口kou地di址zhi,再zai執zhi行xing相xiang應ying子zi程cheng序xu。圖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可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



