AVR單片機GCC程序設計:第一章 概述1.1 AVR 單片機GCC 開發概述1.2 一個簡單的例子1.3 用MAKEFILE 管理項目1.4 開發環境的配置1.5 實驗板CA-M8第二章 存儲器操作編程2.1 AVR 單片機存儲器組織結構2.2 I/O 寄存器操作2.3 SRAM 內變量的使用2.4 在程序中訪問FLASH 程序存儲器2.5 EEPROM 數據存儲器操作2.6 avr-gcc 段結構與再定位2.7 外部RAM 存儲器操作2.8 堆應用第三章 GCC C 編譯器的使用3.1 編譯基礎3.2 生成靜態連接庫第四章 AVR 功能模塊應用實驗4.1 中斷服務程序4.2 定時器/計數器應用4.3 看門狗應用4.4 UART 應用4.5 PWM 功能編程4.6 模擬比較器4.7 A/D 轉換模塊編程4.8 數碼管顯示程序設計4.9 鍵盤程序設計4.10 蜂鳴器控制第五章 使用C 語言標準I/O 流調試程序5.1 avr-libc 標準I/O 流描述5.2 利用標準I/0 流調試程序5.3 最小化的格式化的打印函數第六章 CA-M8 上實現AT89S52 編程器的實現6.1 編程原理6.2 LuckyProg2004 概述6.3 AT989S52 isp 功能簡介6.4 下位機程序設計第七章 硬件TWI 端口編程7.1 TWI 模塊概述7.2 主控模式操作實時時鐘DS13077.3 兩個Mega8 間的TWI 通信第八章 BootLoader 功能應用8.1 BootLoader 功能介紹8.2 avr-libc 對BootLoader 的支持8.3 BootLoader 應用實例8.4 基于LuckyProg2004 的BootLoader 程序第九章 匯編語言支持9.1 C 代碼中內聯匯編程序9.2 獨立的匯編語言支持9.3 C 與匯編混合編程第十章 C++語言支持附錄 1 avr-gcc 選項附錄 2 Intel HEX 文件格式描述
上傳時間: 2014-04-03
上傳用戶:ligi201200
本章將介紹μ’nSP™系列單片機的應用領域,具體講述SPCE061A單片機在通訊、語音領域里的應用,并詳細給出了有關系統的電路原理圖、程序流程圖以及程序代碼,供讀者參考。 μ’nSP™家族產品具有電源電壓范圍和工作速率范圍較寬、集成度高、性能價格比高以及功耗低等特點,故其有非常廣泛的應用領域。μ’nSP™家族系列產品,涵蓋了非常廣泛的應用。包括:發音與語音識別的微控制器(SPCE系列)、通信來電辯識應用的微控制器(SPT660x系列)、以及通用型微控制器等等,主要體現在以下幾個方面: 用于數字信號處理 用于開發研制便攜式移動終端 用于開發嵌入式計算機應用系統 用于數字信號處理1. 數字濾波器 (Digital Filter)數字濾波器是一種計算處理或算法。借助于此,可以將輸入的一種數字信號或序列變換為另一種序列輸出。數字濾波器已被廣泛地應用于數字語音、數字圖像處理以及模式識別和頻譜分析。數字信號處理器(DSP,Digital Signal Processor)的作用是通過一系列數字來表示信號及其信息,并借助數字計算方法變換和處理這些信號。為了構成DSP,必須有一種部件能夠快速地完成兩個數值的乘法運算并將乘積累加于寄存器。“快速”意味著乘和累加(MAC,Multiply & ACcumulate)較高的運算速度。若以16位數值進行乘和累加,其結果應為32位。顯然,μ’nSP™的硬件結構與其指令系統的結合足以構成DSP應用的硬件MAC單元,因而很適用于一些DSP方面的應用。
上傳時間: 2014-01-26
上傳用戶:qb1993225
設置復位標志位便于區分不同原因引發的復位,作為一種新技術被越來越多的新型單片機所采納。例如Philips公司的P87LPC700和 P89LPC900系列、Freescale公司(原Motorola半導體部)的MC68HC05系列和MC68HC08系列、Sunplus公司的 SPMC65系列、Microchip公司的PIC系列等,內部都設計了專門用于記錄各種復位標志的狀態寄存器。MC68HC08系列有一個復位狀態寄存器,負責記錄6種復位標志位:上電復位、引腳復位、看門狗復位、非法指令復位、非法地址復位和欠壓復位。SPMC65系列有一個系統控制寄存器,負責記錄5種復位標志位:上電復位、外部復位、看門狗復位、非法地址復位和欠壓復位。51兼容的P89LPC900系列有一個復位源寄存器,負責記錄6種復位標志位:欠壓復位、上電復位、外部復位、看門狗復位、軟件復位和UART收到間隔字符復位(主要作為進入ISP監控程序的途徑之一)。就連初學者很常用的 AT89S51/52和P89C52X2,也在其電源控制寄存器PCON中增設了一個上電標志位POF。1、 復位標志位的設置方法傳統的80C51單片機沒有設計復位標志位的記錄功能,這應該說是一種遺憾,那么能否通過一定的技術手段來彌補這個缺憾呢?這里給廣大80C51單片機用戶提供一種啟示和引導。實現復位標志位的記錄肯定需要一定的硬件電路支持,而這種電路的設計不存在固定模式。筆者利用一片MAX813L設計了一種支撐電路,如圖1所示,僅供讀者參考。
上傳時間: 2013-10-21
上傳用戶:lhw888
基于單片機的紅外門進控制系統設計與制作:我們所做的創新實驗項目“基于單片機的紅外門控系統”已基本完成,現將其工作原理簡要說明。該系統主要分為兩大部分:一是紅外傳感器部分。二是單片機計數顯示控制部分。基本電路圖如下:其中紅外傳感器部分我們采用紅外對管實現,紅外對管平行放置,平常處于接收狀態,經比較器輸出低電平,當有人經過時,紅外線被擋住,接收管接收不到紅外線,經比較器輸出高電平。這樣,當有人經過時便會產生一個電平的跳變。單片機控制部分主要是通過外部兩個中斷判斷是否有人經過,如果有人經過,由于電平跳變的產生,進入中斷服務程序,這里我們采用了兩對紅外傳感器接到兩個外部中斷口,中斷0作為入口,實現加1操作,中斷1作為出口,實現減1操作。另外,我們通過P0口控制室內燈的亮暗,當寄存器計數值為0時,熄燈,不為0時,燈亮。顯示部分,采用兩位數碼管動態顯示,如有必要,可以很方便的擴展為四位計數。精益求精!在實驗過程中,我們走了非常多的彎路,做出來的東西根本不是自己想要的,我們本想做成室內只有一個門的進出計數,原理已清楚,即在門的兩邊放置兩對紅外對管,進出時,擋住兩對對管的順序不同,因此,可判斷是進入還是出去,從而實現加減計數,編程時,可分別在兩個中斷服務程序的入口置標志位,根據標志位判斷進出,詳細內容在程序部分。理論如此,但在實際過程中,還是發現實現不了上述功能,我們初步判定認為是程序掌握得不夠好,相信隨著自己對單片機了解的深入,應該會做出更好的 (因為我們是臨時學的單片機),程序的具體內容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化緩存區 MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1NEXT1: ACALL HEXTOBCDD ;調用數制轉換子程序 ACALL DISPLAY ;調用顯示子程序 LJMP NEXT1 ORG 0100H ;中斷0服務程序 LCALL DELY mov 70h,#2 djnz 70h,next JBC F0,NEXT SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , ANEXT: RETI ORG 0150H ;中斷1服務程序 LCALL DELY mov 70h,#2 djnz 70h,next2 JBC F0,NEXT2 SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 CLR C MOV A , R7 SUBB A , #1 MOV R7, A MOV A , R6 SUBB A , #0 MOV R6 , A CJNE R6 , #07H , NEXT2 CLR A MOV R6 , A MOV R7 , ANEXT2: RETI ORG 0200HHEXTOBCDD:MOV A , R6 ;由十六進制轉化為十進制 PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10HHB3: MOV A , R7 ;將十六進制中最高位移入進位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位數加上本身相當于將這個數乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十進制調整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250HDISPLAY: MOV R0 , #30H MOV A , R5 ANL A , #0FH MOV @R0 , A MOV A , R5 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV R0 , #30H MOV R2 , #11111110BAGAIN: MOV A , R2 MOV P2 , A MOV A , @R0 MOV DPTR , #TAB MOVC A , @A+DPTR MOV P1 , A ACALL DELAY INC R0 MOV A , R2 RL A MOV R2 , A JB ACC.4 , AGAIN RETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段碼表DELY: MOV R1,#80D1: MOV R2,#100 DJNZ R2,$ DJNZ R1,D1 RET DELAY: MOV TMOD , #01H ;延時子程序 MOV TL0 , #0FEH MOV TH0 , #0FEH SETB TR0WAIT: JNB TF0 , WAIT CLR TF0 CLR TR0 RETDELY0: MOV R1, #200D3: MOV R2,#250 DJNZ R2,$ DJNZ R1,D3 RET END 該系統實際應用廣泛。可用在生產線上產品數量統計、公交車智能計數問候(需添加語音芯片)、超市內人數統計等公共場合。另外,添加串口通信部分便可實現與PC數據交換的功能。 由于,實驗簡化了,剩下不少零件和資金,所以我們又做了兩項其他的實驗。
上傳時間: 2013-12-22
上傳用戶:tangsiyun
單片機常用芯片和器件手冊:有常用的像寄存器,鎖存器,單片機芯片資料介紹等,非常實用。
上傳時間: 2013-11-22
上傳用戶:zhaoman32
5.1 中斷基本概念5.1.1 中斷基本概念定義:CPU暫停現行程序,轉而處理隨機到來的事件,待處理完后再回到被暫停的程序繼續執行,這個過程就是中斷。中斷過程:中斷處理的隱操作:程序狀態及程序斷點地址的進棧及出棧。 中斷系統其他功能: 支持多中斷源和多種中斷源。 支持中斷屏蔽處理。 支持中斷嵌套處理。 支持中斷優先級修改。 支持中斷結束方式選擇。5.1.2 中斷類型1.外部硬件(如鍵盤、鼠標,串口,并口打印機等)中斷屬性:硬件、可屏蔽、向量。 中斷請求:多個中斷請求的排隊和判優由中斷控制器完成,產生的有無中斷請求的信號送到CPU的INTR引腳。 中斷類型號:通過數據總線送到CPU中。EFLAGS寄存器的IF位影響CPU對中斷請求的響應。處理器在當前指令執行結束的時候啟動中斷識別INTA總線周期。
標簽: 中斷技術
上傳時間: 2013-11-09
上傳用戶:黃婷婷思密達
數據傳送的控制 數據傳送涉及的3個問題1)數據的來源;2)數據的去處;3)數據本身以及如何控制數據的傳送。 DMA方式控制的數據傳送 DMA傳送方式通常用來高速傳送大批量的數據塊。如: 硬盤和軟盤I/O; 快速通信通道I/O; 多處理機和多程序數據塊傳送; 在圖像處理中,對CRT屏幕送數據; 快速數據采集; DRAM的刷新操作。 DMA傳送包括:(1)存儲單元傳送:存儲器→存儲器。(2)DMA讀傳送:存儲器→I/O設備。(3)DMA寫傳送:I/O設備→存儲器。4.1.2 DMA傳送的工作過程 1)I/O設備向DMAC發出DMA請求;2) DMAC向CPU發出總線請求;3)CPU在執行完當前指令的當前的總線周期后,向DMAC發出總線響應信號;4)CPU脫離對系統總線的控制,由DMAC接管對系統總線的控制; 為什么DMA傳送方式能實現高速傳送?DMA傳送的過程是什么樣的?畫出流程。DMA有哪些操作方式?各有什么特點。簡述DMA控制器的兩個工作狀態的特點。試設計一種在8088大模式下與8237連接的基本電路圖。并說明你的設計中8237各個端口的實際地址。DMA控制器的時序包括哪幾個狀態周期?試畫出正常讀傳輸的時序。DMAC的內部地址寄存器是16位的,如何擴展地址來訪問16MB的地址空間?
標簽: DMA
上傳時間: 2013-11-18
上傳用戶:leixinzhuo
第6章 定時與計數技術6.1 概 述1.定時 定義:提供的時間基準。 分類:內部定時、外部定時。2.計數 定時與計數本質上是一致的。 計數的信號隨機,定時的信號具有周期性。3.應用分時系統切換任務的時間基準、測速、計數6.1.2 定時方法1.軟件定時 通過軟件指令周期方法定時,如執行循環程序。 增加CPU負擔,通用性差,一般用于短延時。2.不可編程硬件定時 采用中小規模IC構成。 不增加CPU負擔,成本低,定時值不可改變。3.可編程硬件定時 采用可編程計數器完成,軟件可改變計數值。 可編程定時/計數器:實質上定時和計數本質上都是脈沖計數器,定時計的是內部基準時鐘源產生的脈沖,計數是計外部脈沖。6.1.3 定時/計數器基本原理1.內部邏輯CPU接口: 片選、低端地址線、讀寫控制線、數據線外設接口: 時鐘、控制、輸出內部邏輯: 端口地址譯碼器、各種寄存器2.工作過程 設初值、控制(計數)、輸出
上傳時間: 2013-11-07
上傳用戶:yuzsu
17-1. PWM調速基本原理17-2. P89V51RD2的PWM功能模塊結構與應用17-3. 智能小車電機調速案例分析 17-4. 課后思考和實驗準備PWM脈沖驅動電路直流電機的速度控制中,需要對控制信號進行功率驅動或電氣隔離,以下為典型應用電路(負載為直流電機M1)。 P89V51RD2的幾個重要寄存器CMOD-PCA計數器方式寄存器CCON-PCON計數器控制寄存器CCAPMn-PCA模塊比較/捕獲寄存器(n=1、2、3、4、5)
上傳時間: 2014-01-03
上傳用戶:tianyi996
HI-TECH PICC C 的使用說明. 這里我們只講述了PICC C 與標準C 的不同,它不是一本C 語言的教程, 并且我們假定你有C 語言的基礎. 為了對PIC 單片機有更好的支持,PICC 在標準C 的基礎上作了一些擴充: 定義I/O 函數,以便在你的硬件系統中使用<stdio.h>中定義的函數。 用C 語言編寫中斷服務程序 用C 語言編寫I/O 操作程序 C 語言與匯編語言間的接口1-1 與標準C 的不同PICC 只在一處與標準C 不同:函數的重入。因為PIC 單片機的寄存器及堆棧有限,所以PICC 不支持可重入函數。1-2 支持的PIC 芯片PICC 支持很多PIC 單片機,支持PIC 單片機的類型在LIB 目錄下的picinfo.ini文件中有定義。1-3 PICC 包含一些標準庫1-4 PICC 編譯器可以輸出一些格式的目標文件,缺省設置為輸出Bytecraft 的'COD'格式和 Intel 的'HEX'格式。你可以用表1-1 中的命令來指定輸出格式。
上傳時間: 2013-10-10
上傳用戶:781354052