知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
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)案例查看更多
相關(guān)閱讀
- 小程序生成海報
- 云南網(wǎng)站建設(shè)首選公司
- 云南網(wǎng)站建設(shè)優(yōu)化
- 云南網(wǎng)絡(luò)推廣
- 江蘇小程序開發(fā)
- 小程序密鑰
- 汽車報廢回收管理軟件
- 云南網(wǎng)站建設(shè)公司哪家好
- 公眾號模板消息
- 麗江小程序開發(fā)
- 小程序用戶登錄
- 百度排名
- 做網(wǎng)站
- 快排推廣
- web開發(fā)
- 小程序開發(fā)平臺前十名
- 云南網(wǎng)絡(luò)營銷顧問
- 國內(nèi)知名網(wǎng)站建設(shè)公司排名
- 網(wǎng)絡(luò)公司
- 云南省建設(shè)廳網(wǎng)站官網(wǎng)
- 小程序制作
- 微分銷
- 云南網(wǎng)站建設(shè)選
- 網(wǎng)絡(luò)公司聯(lián)系方式
- 北京小程序制作
- 小程序技術(shù)
- 開發(fā)制作小程序
- 網(wǎng)站建設(shè)方法
- 小程序定制開發(fā)
- 報廢車管理