基于ARM的串行通信系統(tǒng)設計_第1頁
基于ARM的串行通信系統(tǒng)設計_第2頁
基于ARM的串行通信系統(tǒng)設計_第3頁
基于ARM的串行通信系統(tǒng)設計_第4頁
基于ARM的串行通信系統(tǒng)設計_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄1 引言(或緒論) . 12 系統(tǒng)的主要功能 . 13 硬件電路設計及描述 . 23.1 S3C2410與串口通信概述 . 23.1.1 S3C2410處理器概述 . 23.2 方案設計 . 63.3 電路設計 . 73.3.1 電源設計 . 73.3.2晶振電路 . 83.3.3 復位電路 . 83.3.4 JTAG接口 . 93.3.5 存儲器設計 . 93.3.6串口電路 . 114 軟件設計流程及描述 . 125 實驗步驟 . 146 源程序代碼 . 157 課程設計體會 . 368 參考文獻 . 36一 引言(或緒論)本課題以嵌入式系統(tǒng)設計原理和實際應用為核心,從理論上和技術方法

2、上開展了一系列研究。主要工作有:1、全面系統(tǒng)地概述了嵌入式系統(tǒng)的發(fā)展過程和分類,及其在各個領域內的應用,以及嵌入式系統(tǒng)的發(fā)展方向;2、基于嵌入式系統(tǒng)設計原理的嵌入式開發(fā)平臺的設計的總體方案,從硬件和軟件兩個方面講述了嵌入式系統(tǒng)的設計思想和方法,及其可行性的論證;3、嵌入式系統(tǒng)硬件平臺的設計與調試,著重敘述了硬件平臺的整體設計方案,包括模塊的選型與接口電路的設計;總之,本文完成了嵌入式系統(tǒng)的硬件平臺構架、實時嵌入式操作系統(tǒng)的移植,為今后嵌入式系統(tǒng)的后繼開發(fā)提供了一個嵌入式平臺?;谇度胧较到y(tǒng)設計原理的嵌入式開發(fā)平臺的設計的總體方案,從硬件和軟件兩個方面講述了嵌入式系統(tǒng)的設計思想和方法,及其可行性

3、的論證。嵌入式系統(tǒng)硬件平臺的設計與調試,著重敘述了硬件平臺的整體設計方案,包括各個設計模塊的選型與接口電路的設計。隨著世界科技水平的發(fā)展,嵌入式系統(tǒng)以其小型、專用、易攜帶、可靠性高的特點,已經在各個領域得到了廣泛的應用,如軍事國防、消費電子、通信設備、工業(yè)控制等。隨著嵌入式系統(tǒng)軟硬件技術的飛速發(fā)展,其應用領域必將更為廣闊,嵌入式系統(tǒng)的研究將會有非常廣泛的前景。本課題既可以使電子專業(yè)學生對ARM920T的嵌入式串口通信系統(tǒng)的實際應用有深入的了解,更重要的是培養(yǎng)了學生的軟硬件動手能力,是對學生所學專業(yè)知識、理論、技能和培養(yǎng)學生獨立完成基本科研任務能力的一個綜合檢驗,具有一定的效果和意義。二 系統(tǒng)的

4、主要功能2.1串行數據的輸入和輸出、顯示、存儲;2.2顯示當前時間日期、輸入和輸出數據的顯示和存儲、串行傳輸;2.3參數設置:傳輸字符長度、存儲位置;2.4菜單功能:如開始、結束、暫停、設置環(huán)境參數等;2.5 文件操作:讀文件、寫文件等1實驗周說明書三 硬件電路設計及描述3.1 S3C2410與串口通信概述3.1.1 S3C2410處理器概述ARM微處理器結構1)RISC體系結構RISC結構優(yōu)先選取使用頻率最高的簡單指令,避免復雜指令;將指令長度固定,指令格式和尋址方式種類減少;以控制邏輯為主,不用或少用微碼控制等措施來達到上述目的。到目前為止,RISC體系結構也還沒有嚴格的定義,一般認為,R

5、ISC體系結構應具采用固定長度的指令格式,指令歸整、簡單、基本尋址方式有23種; 使用單周期指令,便于流水線操作執(zhí)行;大量使用寄存器,數據處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率等特點。2)ARM微處理器的寄存器結構ARM處理器共有37個寄存器,被分為若干個組(BANK), 同時,ARM處理器又有7種不同的處理器模式,如下表22在每一種處理器模式下均有一組相應的寄存器與之對應。表1 ARM處理器的7種處理器模式3)ARM微處理器的指令結構ARM微處理器的在較新的體系結構中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位的長度,T

6、humb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節(jié)省3040以上的存儲空間,同時具備32位代碼的所2實驗周說明書有優(yōu)點。S3C2410是Samsung公司基于A RM 920T內核的嵌入式微處理器.本文以S3C2410為核心,配置了最基本外圍電路構成了最小的嵌入式系統(tǒng),并在ADS上開發(fā)了啟動程序,完成硬件初始化,配置運行環(huán)境,串日調試功能。Samsung 公司推出的16/32位RISC處理器S3C2410A,為手持設備和一般類型應用提 供了低價格、低功耗、高性能小型微控制器的解決方案。為了降低整個系統(tǒng)的成本, S3C2410A提供了以下豐富的內

7、部設備:分開的16KB的指令Cache和16KB數據Cache, MMU虛擬存儲器管理,LCD控制器(支持STN&TFT),支持NAND Flash系統(tǒng)引導,系統(tǒng) 管理器(片選邏輯和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定時器,I/O 端口,RTC,8通道10位ADC和觸摸屏接口,IIC-BUS接口,IIC-BUS接口,USB主機,USB 設備,SD主卡&MMC卡接口,2通道的SPI以及內部PLL時鐘倍頻器。S3C2410A采用了ARM920T內核,0.18um工藝的CMOS標準宏單元和存儲器單元。 它的低功耗、精簡和出色的全靜態(tài)設計特別適用于對成本和功

8、耗敏感的應用。同樣它還采用 一種叫做Advanced Microcontroller Bus Architecture(AMBA)新型總線結構。S3C2410A的顯著特性是它的CPU核心,是一個由Advanced RISC Machines(ARM) 有限公司設計的16/32位ARM920T RISC處理器。ARM920T實現了MMU,AMBA BUS和 Harvard高速緩沖體系結構。這一結構具有獨立的16KB指令Cache和16KB數據Cache,每 個都是由8字長的行(line)構成。3.1.2串口通信串口通信的概念,即串口按位(bit)發(fā)送和接收字節(jié)通信協議是指通信雙方按照約定的數據格

9、式、同步方式、傳送速度、傳送步驟等規(guī)程來進行數據傳輸本次采用異步通信 ,其特點是通信雙方以一個字符(包括特定附加位)作為數據傳輸單位,且發(fā)送方傳送字符的間隔時間是不定的。在傳輸一個字符時總是從起始位開始,以停止位結束。如圖1所示:3實驗周說明書圖1.1 串行數據幀格式S3C2410的UART提供3個獨立的異步串行通信端口,每個端口可以基于中斷或者DMA進行操作。換句話說,UART控制器可以在CPU和UART之間產生一個中斷或者DMA請求來傳輸數據。UART在系統(tǒng)時鐘下運行可支持高達230.4K的波特率,如果使用外部設備提供的UEXTCLK,UART的速度還可以更高。每個UART通道各含有兩個1

10、6位的接收和發(fā)送FIFO。S3C2410的UART包括可編程的波特率,紅外 接收/發(fā)送,一個或兩個停止位插入,5-8位數據寬度和奇偶校驗。每個UART包括一個波特率發(fā)生器、一個發(fā)送器、一個接收器和一個控制單元,如圖11-1所示。波特率發(fā)生器的輸入可以是PCLK或者UEXTCLK。發(fā)送器和接收器包含16位的FIFO和移位寄存器,數據被送入FIFO,然后被復制到發(fā)送移位寄存器準備發(fā)送,然后數據按位從發(fā)送數據引腳TxDn輸出。同時,接收數據從接收數據引腳RxDn按位移入接收移位寄存器,并復制到FIFO。特性 RxD0, TxD0, RxD1, TxD1, RxD2, 和TxD2基于中斷或者DMA操作

11、 UART Ch 0, 1, 和 2 具有 IrDA 1.0 & 16 字節(jié) FIFO UART Ch 0 和 1 具有 nRTS0, nCTS0, nRTS1, 和 nCTS1 支持發(fā)生/接收握手2串行接口的物理層標準4實驗周說明書1)EIA RS232C它在一種25針插件(DB25)上定義了串行通信的有關信號。在實際異步串行通信中,并不要求用全部的RS-232C信號,許多PC/XT兼容機僅用15針接插件(DB-15)來引出其異步串行I/O信號,而PC中更是大量采用9針接插件(DB-9)來擔當此任。圖1.3 DB-25和DB-9引腳定義表2 引腳說明2)信號電平規(guī)定RS-232C規(guī)定

12、了雙極性的信號邏輯電平,它是一套負邏輯定義:-3V到-25V之間的電平表示邏輯“1”。+3V到+25V之間的電平表示邏輯“0”。以上標準稱為EIA電平。PC/XT系列使用的信號電平是-12V和+12V,符合EIA標準,但在計算機內部流動的信號都是TTL電平,因此這中間需要用電平轉換電路。常用專門的RS-232接口芯片,如SP3232、SP3220等,在TTL電平和EIA電平之間實現相互轉換。PC/XT系列以這種方式進行串行通信時,在波特率5實驗周說明書不高于9600bps的情況下,理論上通信線的長度限制為15米。3S3C2410串行口控制器S3C2410自帶3個異步串行口控制器,每個控制器有1

13、6字節(jié)的FIFO(先入先出寄存器),最大波特率115.2Kbps。每個UART有7種狀態(tài):溢出錯誤,校驗錯誤,幀錯誤,暫停態(tài),接收緩沖區(qū)準備好,發(fā)送緩沖區(qū)空,發(fā)送移位緩沖器空,這些狀態(tài)可以由相應的UTRSTATn或UERSTATn寄存器表示,并且與發(fā)送接收緩沖區(qū)相對應的有錯誤緩沖區(qū)。串行接口:波特率的大小由一個專用的UART波特率分頻寄存器(UBRDIVn)控制,計算公式如下:UBRDIVn =(int)MCLK/(bps×16)-1其中:MCLK是系統(tǒng)時鐘,UBRDIVn的值必須在1(216-1)之間.例如:在40MHz的情況下,當波特率取115200時,UBRDIVn = (in

14、t)40000000/(115200×16) -1= (int)(21.7)-1= 21 -1 = 203.2 方案設計本系統(tǒng)是以嵌入式芯片S3C2410為核心的最小嵌入式系統(tǒng)構建方法,給出了S3C2410的復位電路、調試接口、電源電路、存儲器電路和串口電路等硬件組成。6實驗周說明書圖1.5 通信系統(tǒng)的組成框圖3.3 電路設計3.3.1 電源設計S3C2410工作時內核需要1. 8 V電壓,I/ O端口和外設需要3. 3 V電壓. VDDi/VDDiarm引腳口是供S3C2410內核的1. 8 V電壓;VDDalive引腳是功能復位和端口狀態(tài)寄存器電壓. M12引腳RTCVDD是RT

15、 C模塊的1. 8 V電壓,用電池供電保證系統(tǒng)的掉電后保持實時時鐘.VDDOP引腳是I/ O端口3. 3V電壓;V DDM OP引腳是存儲器I/ O端口電壓;還有一系列VSS引腳需要接到電源地上.3. 3 V電壓從SV用A M S 1117- 3. 3轉換;1.8V從3. 3 V通過MIC5207-1. 8轉換得到。7實驗周說明書圖1.6 電源電路3.3.2晶振電路S3C2410內部有時鐘管理模塊,有2個鎖相環(huán),其中M PLL能夠產生CPU卞頻FCLK,AHB總線外設時鐘HCLK和APB總線外設時鐘PCLK; UPLL產生USB模塊的時鐘。OM3,OM2都接地時,主時鐘源和U SB模塊時鐘源都

16、由外接晶振產生。在XTIpll和XTOpll之間連接主晶振,可以選擇12 MHz品振,通過內部寄存器的設置產生不同頻率的FOLK, H CLK和PCLK;在XT Irtc和XTOrtc上需要接32.768 kHz的晶振供RTC模塊使用.同時在MPLLCAP和UPLLCAP上也要外接5pF的環(huán)路濾波電容。圖 1.7 晶振電路8實驗周說明書3.3.3 復位電路S3C2410的J12引腳為nRESET復位引腳,nRESET上給4個FOLK時間的低電平后就可以復位.可以設計如圖5所小的復位電路,其中上電復位是靠RC電路特性完成,開關二極管1N4148在手動復位時對電容起快速放電的作用,因此可以把復位電

17、平快速拉到OV。反響門74H C 14可以起到延時作用,保證有足夠的復位時間。圖1.8 復位電路3.3.4 JTAG接口S3C2410有標準的JTAG接口,TCI(H6)為測試時鐘輸入;TDI(J1)為測試數據輸入;TDO(JS)為測試數據輸出;TMS(J3)為測試模式選擇,TMS用來設置JTA G接日處于某種特定的測試式;nTRST ( H 5)為測試復位,輸入引腳,低電平有效。其nTRST,TMS,TCK,TDI需要接10K的上拉電阻。通過,JTAG日可以完成芯片測試或在線編程。3.3.5 存儲器設計S3C2410有32根數據線和27根地址線,因此地址線的尋址范圍為128 M;但是S3C2

18、4109實驗周說明書還有8根存儲器芯片片選信號線nGCSO- nGCS7,因此總的尋址空間為128M * 8= 1G。Nand Flash啟動模式下復位時S3C2410的存儲器映射。如當訪問物理地址Ox08000000- 0x10000000內的地址則nGCSl自動為低電平,以此類推??芍猄DRAM只能連接在nGCS6和nGCS7片選引腳上。S3C2410提供了SDRAM的接口,其中包括nSRAS:行信號鎖存;nSCAS:列信號鎖存;nSCS(就是nGCS 6 ):片選信號;表 3DQM3:0:數據屏蔽 ; SCLI 1: 0;時鐘;SCKE:時鐘有效;nBE 3: 0:高/低字節(jié)有效;nWB

19、E 3:0:寫有效。MT48LC16M16A2P是4塊16位32M的SDRAM存儲器。MT48LC16M16A2P的行地址13位為A 0-A 12,列地址9位為CAO- CA8,行和列地址是復用的。MT48LC16M16A2P包括4個塊,通過BA0,BA1的組合選擇塊。MT48LC16M16A2P是16位存儲器,因此數據線為 DQO-DQ15,還有CS片選,CLK時鐘,CKE時鐘使能,RAS行鎖存,CAS列鎖存,WE寫使能等引腳.MT48LC16M16A2P和S3C2410的連接方法,其中BA0, BA1需要連接ADD24和 A DDR25,通過S3C2410的說明可知,因為內存總大小是64M

20、因此塊選擇信號必須使用A DDR24和ADDR25。S3C2410內部有NAND Flash控制器,支持從NADN Flash啟動.K9F1208 64M Flash芯片和S3C2410的連接方式.S3C2410采用一組內部寄存器來完成NAND Flash的操作.10實驗周說明書圖 1.9 存儲器連接電路3.3.6串口電路S3C2410的DART提供了二個同步串行IO日,COMO的連接方式。串口數據的收發(fā)有查詢方式、中斷方式和DMA方式等,這些可以在UCONO寄存器中設置。UTXH0把要發(fā)送的數據寫入此寄存器。URXH0讀此寄存器獲得串日接收的數據。串日一般可以用程序運行信息的輸出和程序調試。

21、圖 1.10 串口連接電路11實驗周說明書四 軟件設計流程及描述串口在嵌入式系統(tǒng)中是一個重要的資源,常用來做輸入輸出設備,在后續(xù)的實驗中也將使用串口的功能。串口的基本操作有三個:串口初始化、發(fā)送數據和接收數據,這些操作都是通過訪問上節(jié)中描述的串口控制寄存器進行,下面將分別說明:1)串口初始化程序MMU_Init(); /初始化內存管理單元/設置系統(tǒng)時鐘ChangeClockDivider(1,1); / 1:2:4ChangeMPllValue(0xa1,0x3,0x1); / FCLK=202.8MHzPort_Init(); /初始化I/O口Uart_Init(0,115200); /初始

22、化串口Uart_Select(0); /選擇串口02)發(fā)送數據while(!(rUTRSTAT0&0x2); /等待發(fā)送緩沖空rUTXH0=data; /將數據寫到數據端口3)接收數據while(rUTRSTAT0&0x1=0x0); /等待數據data=rURXH0; /讀取數據(三)設計步驟硬件連接;2 新建工程UART.mcp,編輯并添加以下三類文件:1).s文件:2410init . s,2410slib . s;2).h文件:def. h,option.h,2410addr.h,2410lib.h,2410slib.h, mmu.h;3).c(C)文件:2410lib

23、.c,Main.C, mmu.c;* 文件說明:2410init.s初始化cpu、內存等狀態(tài),完成后跳轉到C語言入口;2410swis.s軟中斷處理相關;2410slib.s庫中內存管理等函數的調用;def.h宏定義;option.h定義時鐘、地址、總線寬度等;2410addr.h寄存器地址狀態(tài)定義;12實驗周說明書2410lib.h , 2410lib.c(C語言)前者聲明函數庫變量,后者定義庫中常用函數(如串口函數);2410slib.h , 2410slib.s(匯編語言) 前者聲明函數庫變量,后者定義庫中常用函數(如內存管理等);mmu.h , mmu.c內存管理單元的聲明和函數定義;

24、test.c , Main.c , *.c定義系統(tǒng)運行方式(*.c表示以工程名命名的c文件以及其他可能用到的c文件);*3修改工程設置,如圖1.11、1.12所示:圖1.1113實驗周說明書圖1.124.編譯UART;5運行超級終端,選擇正確的串口號,并將串口設置為:波特率(115200)6運行程序,在超級終端中輸入的數據將回顯到超級終端上。五 實驗步驟1. 本實驗使用實驗教學系統(tǒng)的CPU板,串口。在進行本實驗時,LCD電源開關、音頻的左右聲道開關、AD通道選擇開關、觸摸屏中斷選擇開關等均應處在關閉狀態(tài)。2在PC機并口和實驗箱的CPU板上的JTAG接口之間,連接仿真調試電纜。使用串口線連接PC

25、機串口1和實驗箱CPU板的串口,使用直連線連接底板串口2和PC機上的串口2之間的電纜。3打開超級終端,配置串口的屬性(如COM1),配置波特率為115200,校驗位無,數據位為8,停止位為1,數據控制流為無;檢查連接是否可靠,可靠后,接入電源線,系統(tǒng)上電,同時按住“空格”鍵,進入VIVI狀態(tài)。4打開ADS1.2開發(fā)環(huán)境,從里面打開實驗程序HARDWAREADS實驗八uart.mcp項目文件,進行編譯。5編譯通過后,進入ADS1.2調試界面,加載實驗程序HARDWAREADS實驗八UART_DataDebug中的映象文件程序映像UART.axf。14實驗周說明書6再打開一個超級終端1,進行設置(

26、115200,8位數據,1位停止位,無奇偶校驗);7在ADS調試環(huán)境下,全速運行映象文件。激活超級終端0,敲鍵盤,觀察超級終端0,超級終端1的內容顯示!所敲鍵盤的字符應該在兩個超級終端上顯示出來。實驗的原理就是把鍵盤敲擊的字符通過PC機的串口發(fā)送給實驗箱上的ARM的CPU板的串口0,ARM的CPU板上的串口得到字符后,通過ARM把它送給CPU板上的串口0輸出給PC,以及通過底板上的串口1,送給PC機。這樣,就完成了串口間的收發(fā)數據。六 源程序代碼#include <string.h>#include <math.h>#include <stdarg.h>#i

27、nclude <stdlib.h>#include <stdio.h>#include <ctype.h>/*- 函數名稱 : void MMU_Init(void)- 函數說明 : MMU的初始化- 輸入參數 : 無- 輸出參數 : 無*/void MMU_Init(void)int i,j;MMU_DisableDCache();MMU_DisableICache();/如果使用回寫,則應該清除DCache。for(i=0;i<64;i+)for(j=0;j<8;j+)MMU_CleanInvalidateDCacheIndex(i<&

28、lt;26)|(j<<5);MMU_InvalidateICache();#if 0MMU_EnableICache();#endifMMU_DisableMMU();MMU_InvalidateTLB();MMU_SetMTT(0x00000000,0x07f00000,0x00000000,RW_CNB); / bank0MMU_SetMTT(0x08000000,0x0ff00000,0x08000000,RW_CNB); / bank1MMU_SetMTT(0x10000000,0x17f00000,0x10000000,RW_NCNB); / bank2MMU_SetMT

29、T(0x18000000,0x1ff00000,0x18000000,RW_NCNB); / bank3MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_NCNB); / bank4MMU_SetMTT(0x28000000,0x2ff00000,0x28000000,RW_NCNB); / bank515實驗周說明書MMU_SetMTT(0x30000000,0x30f00000,0x30000000,RW_CB); / bank6-1MMU_SetMTT(0x31000000,0x33e00000,0x31000000,RW_NCNB); / b

30、ank6-2MMU_SetMTT(0x33f00000,0x33f00000,0x33f00000,RW_CB); / bank6-3MMU_SetMTT(0x38000000,0x3ff00000,0x38000000,RW_NCNB); / bank7MMU_SetMTT(0x40000000,0x5af00000,0x40000000,RW_NCNB); / SFR+StepSram MMU_SetMTT(0x5b000000,0xfff00000,0x5b000000,RW_FAULT); / not usedMMU_SetTTBase(_MMUTT_STARTADDRESS);MMU

31、_SetDomain(0x55555550|DOMAIN1_ATTR|DOMAIN0_ATTR);MMU_SetProcessId(0x0);MMU_EnableAlignFault();MMU_EnableMMU();MMU_EnableICache();MMU_EnableDCache(); /DCache should be turned on after MMU is turned on. /*- 函數名稱 : void ChangeRomCacheStatus(int attr)- 函數說明 : 改變cache內訪問存儲器的屬性狀態(tài), attr = RW_CB,RW_CNB,RW_N

32、CNB,RW_FAULT- 輸入參數 : int attr- 輸出參數 : 無*/void ChangeRomCacheStatus(int attr)int i,j;MMU_DisableDCache();MMU_DisableICache();/如果使用回寫,則應該清除DCache。for(i=0;i<64;i+)for(j=0;j<8;j+)MMU_CleanInvalidateDCacheIndex(i<<26)|(j<<5);MMU_InvalidateICache();MMU_DisableMMU();MMU_InvalidateTLB();MM

33、U_SetMTT(0x00000000,0x07f00000,0x00000000,attr); /bank0MMU_SetMTT(0x08000000,0x0ff00000,0x08000000,attr); /bank1MMU_EnableMMU();MMU_EnableICache();MMU_EnableDCache();/* - 函數名稱 : void MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr)- 函數說明 : 設定轉換表內虛擬,物理地址,訪問屬性16實驗周說明書- 輸入參數 : int vaddrS

34、tart,int vaddrEnd,int paddrStart,int attr- 輸出參數 : 無*/ void MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr)U32 *pTT;int i,nSec;pTT = (U32 *)_MMUTT_STARTADDRESS+(vaddrStart>>20);nSec = (vaddrEnd>>20)-(vaddrStart>>20);for(i=0;i<=nSec;i+)*pTT+=attr |(paddrStart>&g

35、t;20)+i)<<20);/*- 程序段說明 : 以下函數為各異常模式服務子程序。設成死循環(huán)是為調試用,一旦發(fā)生此類異常,程序便跳入異常模式服務 子程序,終止程序運行。*/void HaltUndef(void)Uart_Printf("Undefined instruction exception.n");while(1);void HaltSwi(void)Uart_Printf("SWI exception.n");while(1);void HaltPabort(void)Uart_Printf("Pabort excep

36、tion.n");while(1);void HaltDabort(void)Uart_Printf("Dabort exception.n");while(1);/*- 程序段說明 : 以下函數均為初始化函數 */static int delayLoopCount = FCLK/10000/10;17實驗周說明書void Delay(int time)/ time=0: adjust the Delay function by WatchDog timer./ time>0: the number of loop time/ resolution of t

37、ime is 100 i,adjust=0;if(time=0)time = 200;adjust = 1;delayLoopCount = 400;/PCLK/1M,Watch-dog disable,1/64,interrupt disable,reset disable rWTCON = (PCLK/1000000-1)<<8)|(2<<3);rWTDAT = 0xffff; /for first updaterWTCNT = 0xffff; /resolution=64us any PCLKrWTCON = (PCLK/1000000-1)<&

38、lt;8)|(2<<3)|(1<<5); /Watch-dog timer start for(;time>0;time-)for(i=0;i<delayLoopCount;i+);if(adjust=1)rWTCON = (PCLK/1000000-1)<<8)|(2<<3); /Watch-dog timer stopi = 0xffff - rWTCNT; /1count->64us, 200*400 cycle runtime = 64*i usdelayLoopCount = 8000000/(i*64); /200*400:64*i=1*x:100 -> x=80000*100/(64*i)/*- 函數名稱 : Port_Init(void)- 函數說明 : 端口初始化- 輸入參數 : 無- 輸出參數 : 無*/void Port_Init(void)rGPACO

溫馨提示

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

評論

0/150

提交評論