盛群?jiǎn)纹瑱C(jī)學(xué)習(xí)心得_第1頁
盛群?jiǎn)纹瑱C(jī)學(xué)習(xí)心得_第2頁
盛群?jiǎn)纹瑱C(jī)學(xué)習(xí)心得_第3頁
盛群?jiǎn)纹瑱C(jī)學(xué)習(xí)心得_第4頁
盛群?jiǎn)纹瑱C(jī)學(xué)習(xí)心得_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計(jì)算機(jī)的CPU 、RAM 、 ROM 、定時(shí)/數(shù)器和多種I/O接口集成在一片芯片上,形成芯片級(jí)的計(jì)算機(jī),因此單片機(jī)早期的含義稱為單片微型計(jì)算機(jī),直譯為單片機(jī) 。 單片機(jī)是微型計(jì)算機(jī)應(yīng)用技術(shù)的一個(gè)重要分支,近年來在工業(yè)智能儀器儀表、光機(jī)電設(shè)備、自動(dòng)檢測(cè)、信息處理、家電等的得到廣泛應(yīng)用和迅速發(fā)展。單片機(jī)是自動(dòng)地進(jìn)行運(yùn)算和控制,把實(shí)現(xiàn)計(jì)算和控制的步驟一步步地用命令的形式,即一條條指令預(yù)先存入到存貯器中,單片機(jī)在CPU的控制下,將指令一條條地取出來,并加以翻譯和執(zhí)行,得到你要的東西。這學(xué)期在老師的帶領(lǐng)下,我從對(duì)單片機(jī)一無所知的到現(xiàn)在終于有點(diǎn)了解,這期間雖然沒有在這方

2、面下很大的功夫,但是也學(xué)到了一點(diǎn)知識(shí),從點(diǎn)亮一個(gè)燈,到流水燈再到數(shù)碼管的顯示以及后面獨(dú)立按鍵。這都是我以前無法想象的。單片機(jī)這門課是一科非常重視動(dòng)手實(shí)踐的科目,不能總是看書,但是也不能完全不看書。單片機(jī)并不象傳統(tǒng)的數(shù)字電路或模擬電路那樣比較直觀,原因是除了“硬件”之外還存在一個(gè)“軟件”的因素。正是這個(gè)“軟件”的原因使得許多初學(xué)者怎么也弄不懂單片機(jī)的工作過程,怎么也不明白為什么將幾個(gè)數(shù)送來送去就能讓數(shù)碼管顯示一串字符或控制一個(gè)電機(jī)的變速。對(duì)初學(xué)單片機(jī)的人來說,需要從書中大概了解一下單片機(jī)的各個(gè)功能寄存器,如果看的多了反而容易搞亂,現(xiàn)在市場(chǎng)上大多數(shù)講單片機(jī)的書一開始就講解較復(fù)雜的內(nèi)存、地址、存儲(chǔ)器

3、什么的,更讓初學(xué)者感到不知所云、難以入門。如果按教科書式的學(xué)法,上來就是一大堆指令、名詞,學(xué)了半天還搞不清這些指令起什么作用,能夠產(chǎn)生什么實(shí)際效果,那么也許用不了幾天就會(huì)覺得枯燥乏味而半途而廢。簡(jiǎn)單的說,使用單片機(jī)實(shí)際上就是用我們自己編寫的軟件去控制單片機(jī)的各個(gè)功能寄存器。再簡(jiǎn)單些,就是控制單片機(jī)哪些引腳的電平什么時(shí)候輸出高電平,什么時(shí)候輸出低電平。由這些高低變化的電平來控制外圍電路,實(shí)現(xiàn)我們需要的各個(gè)功能。學(xué)習(xí)單片機(jī)首先用到c語言,提到C語言源文件,大家都不會(huì)陌生。因?yàn)槲覀兤匠懙某绦虼a幾乎都在這個(gè)XX.C文件里面。編譯器也是以此文件來進(jìn)行編譯并生成相應(yīng)的目標(biāo)文件。作為模塊化編程的組成基礎(chǔ)

4、,我們所要實(shí)現(xiàn)的所有功能的源代碼均在這個(gè)文件里。理想的模塊化應(yīng)該可以看成是一個(gè)黑盒子。即我們只關(guān)心模塊提供的功能,而不管模塊內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。在大規(guī)模程序開發(fā)中,一個(gè)程序由很多個(gè)模塊組成,很可能,這些模塊的編寫任務(wù)被分配到不同的人。而你在編寫這個(gè)模塊的時(shí)候很可能就需要利用到別人寫好的模塊的借口,這個(gè)時(shí)候我們關(guān)心的是,它的模塊實(shí)現(xiàn)了什么樣的接口,我該如何去調(diào)用,至于模塊內(nèi)部是如何組織的,對(duì)于我而言,無需過多關(guān)注。而追求接口的單一性,把不需要的細(xì)節(jié)盡可能對(duì)外部屏蔽起來,正是我們所需要注意的地方。 談及到模塊化編程,必然會(huì)涉及到多文件編譯,也就是工程編譯。在這樣的一個(gè)系統(tǒng)中,往往會(huì)有多個(gè)C文件,而且每

5、個(gè)C文件的作用不盡相同。在我們的C文件中,由于需要對(duì)外提供接口,因此必須有一些函數(shù)或者是變量提供給外部其它文件進(jìn)行調(diào)用。 假設(shè)我們有一個(gè)LCD.C文件,其提供最基本的LCD的驅(qū)動(dòng)函數(shù) 。在當(dāng)前位置輸出一個(gè)字符 而在我們的另外一個(gè)文件中需要調(diào)用此函數(shù),那么我們?cè)撊绾巫瞿兀?頭文件的作用正是在此??梢苑Q其為一份接口描述文件。其文件內(nèi)部不應(yīng)該包含任何實(shí)質(zhì)性的函數(shù)代碼。我們可以把這個(gè)頭文件理解成為一份說明書,說明的內(nèi)容就是我們的模塊對(duì)外提供的接口函數(shù)或者是接口變量。同時(shí)該文件也包含了一些很重要的宏定義以及一些結(jié)構(gòu)體的信息,離開了這些信息,很可能就無法正常使用接口函數(shù)或者是接口變量。但是總的原則是:不該

6、讓外界知道的信息就不應(yīng)該出現(xiàn)在頭文件里,而外界調(diào)用模塊內(nèi)接口函數(shù)或者是接口變量所必須的信息就一定要出現(xiàn)在頭文件里,否則,外界就無法正確的調(diào)用我們提供的接口功能。因而為了讓外部函數(shù)或者文件調(diào)用我們提供的接口功能,就必須包含我們提供的這個(gè)接口描述文件-即頭文件。同時(shí),我們自身模塊也需要包含這份模塊頭文件(因?yàn)槠浒四K源文件中所需要的宏定義或者是結(jié)構(gòu)體,好比我們平常所用的文件都是一式三份一樣,模塊本身也需要包含這個(gè)頭文件。接著我學(xué)習(xí)到了中斷系統(tǒng)。中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。中斷即單片機(jī)在執(zhí)行某一段程序的過程中,由于單片機(jī)系統(tǒng)內(nèi)部或者外部的某種原因,有必要中止原程序的執(zhí)行,而去執(zhí)行相應(yīng)的

7、處理程序,待處理結(jié)束后,再返回來繼續(xù)執(zhí)行原程序的過程。中斷處理過程分為中斷請(qǐng)求、中斷響應(yīng)、中斷處理和中斷返回。中斷使單片機(jī)對(duì)外部或內(nèi)部隨機(jī)發(fā)生的事件具有實(shí)時(shí)處理的能力。大多數(shù)中斷系統(tǒng)都具有如下幾方面的操作,這些操作是按照中斷的執(zhí)行先后次序排列的。接收中斷請(qǐng)求。查看本級(jí)中斷屏蔽位,若該位為1則本級(jí)中斷源參加優(yōu)先權(quán)排隊(duì)。中斷優(yōu)先權(quán)選擇。處理機(jī)執(zhí)行完一條指令后或者這條指令已無法執(zhí)行完,則立即中止現(xiàn)行程序。接著,中斷部件根據(jù)中斷級(jí)去指定相應(yīng)的主存單元,并把被中斷的指令地址和處理機(jī)當(dāng)前的主要狀態(tài)信息存放在此單元中。中斷部件根據(jù)中斷級(jí)又指定另外的主存單元,從這些單元中取出處理機(jī)新的狀態(tài)信息和該級(jí)中斷控制程

8、序的起始地址。執(zhí)行中斷控制程序和相應(yīng)的中斷服務(wù)程序。執(zhí)行完中斷服務(wù)程序后,利用專用指令使處理機(jī)返回被中斷的程序或轉(zhuǎn)向其他程序。接著又了解了定時(shí)器。定時(shí)/計(jì)數(shù)器是單片機(jī)的一個(gè)重要組成部分,為設(shè)計(jì)者提供了與時(shí)間有關(guān)的功能的實(shí)現(xiàn)方法。定時(shí)、計(jì)數(shù)是同一個(gè)部件不同功能的體現(xiàn):定時(shí),是對(duì)單片機(jī)內(nèi)部系統(tǒng)時(shí)鐘作用下產(chǎn)生的固定時(shí)間間隔的脈沖進(jìn)行計(jì)數(shù)來實(shí)現(xiàn)定時(shí);計(jì)數(shù),是對(duì)單片機(jī)外部引腳上觸發(fā)的脈沖進(jìn)行計(jì)數(shù)。HT46R232 有兩個(gè)定時(shí)/計(jì)數(shù)器(TMR0,TMR1)。定時(shí)/計(jì)數(shù)器0 是16 位向上計(jì)數(shù)的,其時(shí)鐘來源可以是外部信號(hào)輸入或內(nèi)部時(shí)鐘,內(nèi)部時(shí)鐘為fSYS。定時(shí)/計(jì)數(shù)器1 是16 位向上計(jì)數(shù)的,其時(shí)鐘來源可以

9、是外部信號(hào)輸入或內(nèi)部時(shí)鐘,內(nèi)部時(shí)鐘為fSYS/4。定時(shí)器有幾種工作模式。1、定時(shí)模式(即普通的定時(shí)器)用來定時(shí)固定的時(shí)間間隔,當(dāng)定時(shí)器溢出時(shí),產(chǎn)生一個(gè)內(nèi)部中斷信號(hào)。寫入TMR0L(TMR1L)只能將數(shù)據(jù)寫到低字節(jié)緩沖器(8 位) ,而寫入TMR0H(TMR1H)會(huì)把指定數(shù)據(jù)和低字節(jié)緩沖器的數(shù)據(jù)分別寫到TMR0H(TMR1H)和TMR0L(TMR1L)預(yù)置寄存器中,定時(shí)/計(jì)數(shù)器0/1 預(yù)置寄存器的內(nèi)容只有在寫入TMR0H(TMR1H)時(shí)才會(huì)被改變。讀取TMR0H(TMR1H)會(huì)把TMR0H(TMR1)的內(nèi)容送至目標(biāo)單元,而TMR0L(TMR1L)的值被送至低字節(jié)緩沖器中;讀TMR0L(TMR1L

10、)將讀取低字節(jié)緩沖器的值。無論是定時(shí)模式還是外部事件計(jì)數(shù)模式,一旦開始計(jì)數(shù),定時(shí)/計(jì)數(shù)器會(huì)從寄存器當(dāng)前值向上計(jì)到0FFFFH。一旦發(fā)生溢出,定時(shí)/計(jì)數(shù)器會(huì)從預(yù)置寄存器中重新加載初值,并開始計(jì)數(shù);同時(shí)置位中斷請(qǐng)求標(biāo)志。T0ON/T1ON只能用指令清除。在定時(shí)/計(jì)數(shù)器停止計(jì)數(shù)時(shí),寫數(shù)據(jù)到定時(shí)/計(jì)數(shù)器的預(yù)置寄存器中,同時(shí)會(huì)將該數(shù)據(jù)寫入到定時(shí)/計(jì)數(shù)器。但如果在定時(shí)/計(jì)數(shù)器運(yùn)行時(shí)這么做,數(shù)據(jù)只能寫入到預(yù)置寄存器中,直到發(fā)生溢出時(shí)才會(huì)將數(shù)據(jù)從預(yù)置寄存器加載到定時(shí)/計(jì)數(shù)器寄存器。讀取定時(shí)/計(jì)數(shù)器時(shí),計(jì)數(shù)會(huì)被停止,以避免發(fā)生錯(cuò)誤;計(jì)數(shù)停止會(huì)導(dǎo)致計(jì)數(shù)錯(cuò)誤。2、外部事件計(jì)數(shù)模式,測(cè)量外部引腳的邏輯電平改變的次數(shù)。

11、3、脈沖寬度測(cè)量模式,一次測(cè)量一個(gè)外部引腳的脈沖寬度。后來還學(xué)習(xí)了A/D轉(zhuǎn)換。即將模擬量轉(zhuǎn)換為數(shù)字量。首先將輸入的模擬電壓信號(hào)按照某一時(shí)間節(jié)拍進(jìn)行采樣,并將采樣結(jié)果進(jìn)行保持,在保持的時(shí)間內(nèi)將采樣的電壓量化為數(shù)字量,并按一定的編碼形式給出轉(zhuǎn)換結(jié)果。HOLTEK MCU的A/D轉(zhuǎn)換器采用的是逐次逼近式A/D轉(zhuǎn)換方式。逐次逼近法的A/D轉(zhuǎn)換器是由一個(gè)比較器、D/A轉(zhuǎn)換器、緩沖寄存器及控制邏輯電路組成?;驹硎菑母呶坏降臀恢鹞辉囂奖容^,好像用天平稱物體,從重到輕逐級(jí)增減砝碼進(jìn)行試探。逐次逼近法轉(zhuǎn)換過程是:初始化時(shí)將逐次逼近寄存器各位清零;轉(zhuǎn)換開始時(shí),先將逐次逼近寄存器最高位置1,送入D/A轉(zhuǎn)換器,經(jīng)

12、D/A轉(zhuǎn)換后生成的模擬量送入比較器,稱為 Vo,與送入比較器的待轉(zhuǎn)換的模擬量Vi進(jìn)行比較,若Vo<Vi,該位1被保留,否則被清除。然后再置逐次逼近寄存器次高位為1,將寄存器中新的數(shù)字量送D/A轉(zhuǎn)換器,輸出的 Vo再與Vi比較,若Vo<Vi,該位1被保留,否則被清除。重復(fù)此過程,直至逼近寄存器最低位。轉(zhuǎn)換結(jié)束后,將逐次逼近寄存器中的數(shù)字量送入緩沖寄存器,得到數(shù)字量的輸出。逐次逼近的操作過程是在一個(gè)控制電路的控制下進(jìn)行的。接著又學(xué)到了PWM輸出,脈寬調(diào)制是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。簡(jiǎn)而言之,PWM

13、是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的的方法。通過高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。PWM的一個(gè)優(yōu)點(diǎn)是從處理器到被控系統(tǒng)信號(hào)都是數(shù)字形式的,無需進(jìn)行數(shù)模轉(zhuǎn)換。讓信號(hào)保持為數(shù)字形式可將噪聲影響降到最小。噪聲只有在強(qiáng)到足以將邏輯1改變?yōu)檫壿?或?qū)⑦壿?改變?yōu)檫?/p>

14、輯1時(shí),也才能對(duì)數(shù)字信號(hào)產(chǎn)生影響。HT46R232(28腳封裝)有2個(gè)通道(6+2)/(7+1)位的PWM輸出(由掩膜選項(xiàng)決定),與PD0/PD1共用引腳。PWM 計(jì)數(shù)器的時(shí)鐘來源為系統(tǒng)時(shí)鐘(fSYS),由數(shù)據(jù)寄存器PWM0(1AH)、PWM1(1BH) 來控制輸出。一旦PD0/PD1選擇為PWM 輸出,并且PD0/PD1為輸出模式(PDC.0/PDC.1=“0”),則向PD0/PD1 寄存器寫“1”能夠產(chǎn)生PWM 輸出,向PD0/PD1 寄存器寫“0”會(huì)使PD0 輸出保持為“0”。通過這一學(xué)期的學(xué)習(xí),從面臨的問題的模糊認(rèn)識(shí)到最后能夠?qū)υ搯栴}有深刻的認(rèn)識(shí),我體會(huì)到實(shí)踐對(duì)于學(xué)習(xí)的重要性,以前只是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論