第7章 通用端口_第1頁
第7章 通用端口_第2頁
第7章 通用端口_第3頁
第7章 通用端口_第4頁
第7章 通用端口_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)7.1 I/O口工作原理及其控制寄存器口工作原理及其控制寄存器一、一、 I/O口簡(jiǎn)介口簡(jiǎn)介 S3C2410A共有共有117個(gè)多功能復(fù)用個(gè)多功能復(fù)用I/O口,分為口,分為8組:組: PORT APORT H。 PORT A可做作為功能口,輸出口使用;可做作為功能口,輸出口使用; PORT BPORT H作輸入輸出口,功能口使用。作輸入輸出口,功能口使用。 8組組I/O口按照其位數(shù)的不同,可分為口按照其位數(shù)的不同,可分為23位,位,11位,位,16位,位,8位:位: 1個(gè)個(gè)23位的輸出口(位的輸出口(PORT A)

2、2個(gè)個(gè)11位的位的I/O口(口(PORT B 和和PORT H) 4個(gè)個(gè)16位的位的I/O口(口(PORT C、PORT D、PORT E、PORT G) 1個(gè)個(gè)8位的位的I/O口(口(PORT F)2第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì) 配置配置I/O口功能,需要通過設(shè)置一系列寄存器來實(shí)現(xiàn),寄存器口功能,需要通過設(shè)置一系列寄存器來實(shí)現(xiàn),寄存器包括:包括:1、端口控制寄存器(、端口控制寄存器(GPACONGPHCON) 功能:用于定義每個(gè)引腳的功能功能:用于定義每個(gè)引腳的功能 說明:說明:PORTA與與PORTBPORTH在功能選擇方面有所不同在功能

3、選擇方面有所不同 GPACON每一位對(duì)應(yīng)一根引腳(每一位對(duì)應(yīng)一根引腳(23根)根) 0 :輸出引腳:輸出引腳 1:功能引腳,主要是用地址線:功能引腳,主要是用地址線 A端口主要用于功能口,作為地址線使用端口主要用于功能口,作為地址線使用 GPBCONGPHCON:每?jī)晌豢刂埔桓_每?jī)晌豢刂埔桓_ “00”:輸入,:輸入,“01”:輸出,:輸出,“10”:功能引腳功能引腳,”11”保留保留3第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)例例1:引腳端口作輸入,如圖所示:引腳端口作輸入,如圖所示:則則GPBCON寄存器的值(寄存器的值(32位)為:位)為:xx

4、xx xxxx xxxx xxxx xxxx 0000 0000 xxxx按鍵的輸入值在按鍵的輸入值在GPBDAT寄存器的第寄存器的第2,3,4,5位上,對(duì)應(yīng)外部的輸入值位上,對(duì)應(yīng)外部的輸入值4第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)2、端口數(shù)據(jù)寄存器(、端口數(shù)據(jù)寄存器(GPADATGPHDAT) 功能:存放讀寫引腳的數(shù)據(jù)功能:存放讀寫引腳的數(shù)據(jù)說明:每一個(gè)引腳對(duì)應(yīng)寄存器中的一位說明:每一個(gè)引腳對(duì)應(yīng)寄存器中的一位 當(dāng)引腳設(shè)為輸入,讀此寄存器可知相應(yīng)當(dāng)引腳設(shè)為輸入,讀此寄存器可知相應(yīng)引腳的電平狀態(tài),當(dāng)引腳設(shè)為輸出時(shí),寫引腳的電平狀態(tài),當(dāng)引腳設(shè)為輸出時(shí),寫此

5、寄存器的相應(yīng)位即可令引腳輸出相應(yīng)位。此寄存器的相應(yīng)位即可令引腳輸出相應(yīng)位。 5第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)3、端口上拉寄存器、端口上拉寄存器(GPBUPGPHUP)功能:用于控制每組端口的上拉電阻。功能:用于控制每組端口的上拉電阻。 1:相應(yīng)引腳無上拉電阻:相應(yīng)引腳無上拉電阻 0:相應(yīng)引腳使用內(nèi)部上拉電阻相應(yīng)引腳使用內(nèi)部上拉電阻 GPIOxVcc說明:上拉電阻的作用,當(dāng)說明:上拉電阻的作用,當(dāng)GPIOGPIO引腳處于第三態(tài)時(shí),引腳處于第三態(tài)時(shí),引腳的狀態(tài)由上拉電阻決定。引腳的狀態(tài)由上拉電阻決定。6第第5 5章章 基于基于S3C2410S3C2

6、410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)7第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)1、端口程序設(shè)計(jì)、端口程序設(shè)計(jì) 主要是實(shí)現(xiàn)對(duì)端口特殊寄存器的訪問主要是實(shí)現(xiàn)對(duì)端口特殊寄存器的訪問例:如想設(shè)置例:如想設(shè)置GPGCON寄存器值為寄存器值為0 x55555555匯編語言實(shí)現(xiàn):匯編語言實(shí)現(xiàn): GPGCON寄存器地址為:寄存器地址為:0 x56000060 程序:程序: ldr r0,=0 x55555555 ldr r1,=0 x56000060 str r0,r1或者:或者: GPGCON equ 0 x56000060 ldr r0,=0 x55555555 ld

7、r r1,= GPGCON str r0,r1C語言如何實(shí)現(xiàn)對(duì)特殊寄存器的訪問?語言如何實(shí)現(xiàn)對(duì)特殊寄存器的訪問? 8第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)2、c語言中訪問寄存器語言中訪問寄存器 主要使用主要使用volatile volatile關(guān)鍵字是嵌入式系統(tǒng)開發(fā)的一個(gè)重要特點(diǎn)。關(guān)鍵字是嵌入式系統(tǒng)開發(fā)的一個(gè)重要特點(diǎn)。volatile(可變的)(可變的)這個(gè)關(guān)鍵字說明這變量可能會(huì)被意想不到地改變,這樣編譯這個(gè)關(guān)鍵字說明這變量可能會(huì)被意想不到地改變,這樣編譯器就不會(huì)去假設(shè)這個(gè)變量的值了。這種器就不會(huì)去假設(shè)這個(gè)變量的值了。這種“意想不到地改變意想不到地改變

8、”,不是由程序去,不是由程序去改變,而是由改變,而是由硬件硬件去改變。去改變。例如要訪問例如要訪問0 x56000060地址地址(1)轉(zhuǎn)換為地址類型)轉(zhuǎn)換為地址類型 (volatile unsigned *) 0 x56000060 把把0 x56000060強(qiáng)制轉(zhuǎn)換成強(qiáng)制轉(zhuǎn)換成volatile unsigned long類型的地址類型的地址p. 即地址的操作的范圍是從即地址的操作的范圍是從0 x56000060開始的開始的4個(gè)字節(jié)個(gè)字節(jié)(long型型).暫記為暫記為p。 (2)定義指針)定義指針 #define A *p 即即A為為P指針指向位置的內(nèi)容了。這里就是通過內(nèi)存尋址訪問到寄存器指針

9、指向位置的內(nèi)容了。這里就是通過內(nèi)存尋址訪問到寄存器A,可以讀可以讀/寫操作寫操作 寫操作:寫操作:A=0X11223344 讀操作:讀操作:tmp=A9第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)上例:設(shè)置上例:設(shè)置GPGCON寄存器值為寄存器值為0 x55555555 ( c語言)語言)#define rGPGCON (*(volatile unsigned *)0 x56000060)rGPGCON= 0 x55555555;10第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)C程序:程序:#define rGPBCON

10、(*(volatile unsigned *)0 x56000010)#define rGPBDAT (*(volatile unsigned *)0 x56000014) int data; rGPBCON= rGPBCON &0 xFFFFF00F; /設(shè)定設(shè)定PORTB為輸入方式為輸入方式 data= rGPGDAT; /data存放按鍵的鍵值存放按鍵的鍵值 例例1:引腳端口作輸入,如圖所示:引腳端口作輸入,如圖所示:則則GPBCON寄存器的值(寄存器的值(32位)為:位)為:xxxx xxxx xxxx xxxx xxxx 0000 0000 xxxx11第第5 5章章 基于基

11、于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)例例2:端口作為輸出:端口作為輸出,點(diǎn)亮點(diǎn)亮led1和和led2兩盞燈。兩盞燈。#define rGPGCON (*(volatile unsigned *)0 x56000060)#define rGPGDAT (*(volatile unsigned *)0 x56000064)(1)rGPGCON寄存器值為:寄存器值為:Xxxx xxxx xxxx 0101xxxx xxxx xxxx xxxxrGPGCON=rGPGCON&0XFFF0FFFF|0X00050000;(或者是(或者是 rGPGCON=rGPGCON&am

12、p; (0X016)|(0X516); )(2)點(diǎn)亮)點(diǎn)亮LED1, LED2滅滅rGPGDAT寄存器值為:寄存器值為:xxxx xxxx xxxx xxxx xxxx xx10 xxxx xxxxrGPGDAT=rGPGDAT& (08)|(19); /LED1亮亮,LED2滅滅 (3)點(diǎn)亮)點(diǎn)亮LED2,LED1滅滅rGPGDAT=rGPGDAT |(18)& (09); /LED2亮,亮,LED1滅滅12第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)輪流點(diǎn)亮輪流點(diǎn)亮led1和和led2完整程序:完整程序:#define rGPGCON (

13、*(volatile unsigned *)0 x56000060)#define rGPGDAT (*(volatile unsigned *)0 x56000064)Void main(void)int i; for(;)rGPGCON=rGPGCON& (0X016)|(0X516); For(i=0;i100000;i+);rGPGDAT=rGPGDAT& (08)|(19); /LED1亮亮,LED2滅滅For(i=0;i100000;i+);rGPGDAT=rGPGDAT |(18)& (09); /LED2亮,亮,LED1滅滅13第第5 5章章 基于基于S

14、3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)#define rGPGCON (*(volatile unsigned *)0 x56000060)#define rGPGDAT (*(volatile unsigned *)0 x56000064)void main(void) int flag,i; for(;) if (flag=0)rGPGCON=rGPGCON&(0XF16)|(0X516); rGPGDAT=rGPGDAT&(18)|(19); /LED1亮亮,LED2滅滅for(i=0;i100000;i+);flag=1;elserGPGCON=rGPGCON&(0XF16)|(0X516);rGPGDAT=rGPGDAT |(18)&(19); /LED2亮,亮,LED1滅滅for(i=0;i100000;i+); flag=0; 14第第5 5章章 基于基于S3C2410S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì)測(cè)驗(yàn):測(cè)驗(yàn):1、2410系統(tǒng)的系統(tǒng)的IO端口的數(shù)量是多少?共分為多少組?控端口的數(shù)量是多少?共分為多少組?控制制IO

溫馨提示

  • 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)論