欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

GPIO的配置及使用(MC9S08AW60) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

GPIO的配置及使用(MC9S08AW60)

發(fā)表時間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):131

基礎(chǔ)必備知識
AW60有7個GPIO接口,分別是A、B、C、D、E、F、G。每個接口最多對應(yīng)8個GPIO引腳,但對每個GPIO接口編程時,寄存器設(shè)置都要是8位,只是沒有引腳的位無效。用8位二進(jìn)制數(shù)表示寄存器的值,8位二進(jìn)制數(shù)從右向左依次表示為GPIO 0~7個 引腳。以0b開頭的數(shù)是二進(jìn)制,0x開頭的數(shù)是十六進(jìn)制(0b00001111=0x0f,0b11110000=0xf0,就是把二進(jìn)制傳化為十六進(jìn)制)。用單片機(jī)實(shí)現(xiàn)什么功能其實(shí)就是對寄存器進(jìn)行操作。

每個I/O(GPIO)管腳(引腳)的功能受5個寄存器的控制:

一、數(shù)據(jù)寄存器
(1)命名規(guī)則:PT+該端口(接口)的名稱+D
如:PTAD、PTBD、PTCD等
(2)設(shè)置每個引腳的輸出電平:1為高電平,0為低電平
如:PTAD=0b11111111 等價于 PTAD=0xff
(3)單獨(dú)對每一個引腳配置數(shù)據(jù)寄存器:PTxDn(x:接口;n:引腳)
如:PTAD0=1(設(shè)置A接口的0號引腳為高電平);PTBD3=0(設(shè)置B接口的3號引腳為低電平)
二、方向寄存器
(1)命名規(guī)則:PT+該端口(接口)的名稱+DD
如:PTADD、PTBDD、PTCDD等
(2)設(shè)置每個引腳是輸入還是輸出:1為輸出,0為輸入
如:PTADD=0b11111111 等價于 PTADD=0xff :設(shè)置A接口的8個引腳都是輸出;PTBDD=0b00001111(0x0f):設(shè)置B接口的0 ~ 3個引腳為輸出,4 ~ 7個引腳為輸入。
(3)單獨(dú)對每一個引腳配置方向寄存器:PTxDDn(x:接口;n:引腳)
如:PTADD0=1(設(shè)置A接口的0號引腳為輸出);PTBDD3=0(設(shè)置B接口的3號引腳為輸入)
三、輸出驅(qū)動能力(電流的高低)寄存器
(1)命名規(guī)則:PT+該端口(接口)的名稱+DS
如:PTADS、PTBDS、PTCDS等
(2)設(shè)置每個引腳的驅(qū)動能力:1為高驅(qū)動(接LED),0為低驅(qū)動(接IC)
如:PTADS=0b11111111 等價于 PTADS=0xff:設(shè)置A接口的8個引腳都是高驅(qū)動 ;PTBDS=0b00001111(0x0f):設(shè)置B接口的0 ~ 3個引腳為高驅(qū)動,4 ~ 7個引腳為低驅(qū)動。
(3)單獨(dú)對每一個引腳配置輸出驅(qū)動能力寄存器:PTxDSn(x:接口;n:引腳)
如:PTADS0=1(設(shè)置A接口的0號引腳為高驅(qū)動);PTBDS3=0(設(shè)置B接口的3號引腳為低驅(qū)動)
四、設(shè)置單片機(jī)內(nèi)部輸入上拉寄存器
(1)命名規(guī)則:PT+該端口(接口)的名稱+PE
如:PTAPE、PTBPE、PTCPE等
(2)設(shè)置每個引腳為上拉輸入:1為允許內(nèi)部輸入上拉,0為禁止內(nèi)部輸入上拉(該引腳不設(shè)置為上拉輸入)
如:PTAPE=0b11111111 等價于 PTAPE=0xff:設(shè)置A接口的8個引腳都是上拉輸入 ;PTBPE=0b00001111(0x0f):設(shè)置B接口的0 ~ 3個引腳為上拉輸入,4 ~ 7個引腳不設(shè)置為上拉輸入。
(3)單獨(dú)對每一個引腳配置內(nèi)部輸入上拉寄存器:PTxPEn(x:接口;n:引腳)
如:PTAPE0=1(設(shè)置A接口的0號引腳為上拉輸入);PTBPE3=0(不設(shè)置B接口的3號引腳為上拉輸入)
五、輸出擺率控制寄存器
(1)命名規(guī)則:PT+該端口(接口)的名稱+SE
如:PTASE、PTBSE、PTCSE等
(2)設(shè)置每個引腳為輸出擺率控制:1為允許輸出擺率控制,0為禁止輸出擺率控制(該引腳不設(shè)置為輸出擺率控制)
如:PTASE=0b11111111 等價于 PTASE=0xff:設(shè)置A接口的8個引腳為輸出擺率控制 ;PTBSE=0b00001111(0x0f):設(shè)置B接口的0 ~ 3個引腳為輸出擺率控制,4 ~ 7個引腳不設(shè)置為輸出擺率控制。
(3)單獨(dú)對每一個引腳配置輸出擺率控制寄存器:PTxSEn(x:接口;n:引腳)
如:PTASE0=1(設(shè)置A接口的0號引腳為輸出擺率控制);PTBSE3=0(不設(shè)置B接口的3號引腳為輸出擺率控制)

控制LED時只需要配置:數(shù)據(jù)寄存器、方向寄存器、輸出驅(qū)動能力(電流的高低)寄存器
用開關(guān)時只需要配置:方向寄存器、內(nèi)部輸入上拉寄存器(外部有接上拉電阻時這個寄存器也不用配置);讀取開關(guān)狀態(tài)時用數(shù)據(jù)寄存器讀取

key = PTBD3   //讀取B接口3號引腳的值(1或0)

PS:用AW60點(diǎn)亮一個LED(LED其中一端接低電平,用B接口的5號引腳控制)
代碼如下

#include <hidef.h>          //調(diào)用頭文件
#include "derivative.h"

void GPIO_init(void);  //子函數(shù)聲明

void main(void)    //主函數(shù)
{
	DisableInterrupts; //關(guān)閉中斷,本程序未用到中斷
	SOPT_COPE=0;       //關(guān)閉看門狗復(fù)位功能,避免程序復(fù)位
	GPIO_init();       //引腳初始化
	for(;;)            //主程序主循環(huán)
	{
		PTBD=0x20;     //其中PTB5號引腳輸出高電平,燈亮
	}
}
void GPIO_init(void)    //子函數(shù)定義
{
	PTBDD=0xff;     //PTD設(shè)置為輸出
	PTBDS=0x20;     //初始化PTB5號引腳為高驅(qū)動
	PTBD=0x00;       //初始狀態(tài)PTB輸出低電平,燈滅
}

練習(xí)題:用一個開關(guān)控制一個LED的亮滅
1、開關(guān)按下LED亮
2、開關(guān)用上拉輸入接在C接口的6號引腳
3、LED其中一端接低電平,用A接口的4號引腳輸出高低電平控制LED

如果對你有用的話,可不可以點(diǎn)個贊呢

相關(guān)案例查看更多