?? io_port.c
字號:
#include "..\inc\44b.h"
#include "io_port.h"
#define BIT_IOLED 0x1
void IO_PortInit()
{
///****PortA 使用默認(rèn)值****/ 10-bit output
//*********斷口 PortB配置********/ 11-bit output
// 引腳 功能 配置值
// PortB.10 nGCS5 1
// PortB.09 nGCS4 1
// PortB.08 nGCS3 1
// PortB.07 nGCS2 1
// PortB.06 nGCS1 1
// PortB.05 OUTPUT 0
// PortB.04 OUTPUT 0
// PortB.03 nSRAS 1
// PortB.02 nSCAS 1
// PortB.01 SCLK 1
// PortB.00 SCKE 1
rPCONB = 0x000007CF;
rPDATB = 0x07EF;
//*********斷口 PortC配置********/ 16-bit input/output
// 引腳 功能 配置值
// PortC.15 Input 00
// PortC.14 Input 00
// PortC.13 RxD1 11
// PortC.12 TxD1 11
// PortC.11 Output 01
// PortC.10 Output 01
// PortC.09 Output 01
// PortC.08 OutPut 01
// PortC.07 VD4 11
// PortC.06 VD5 11
// PortC.05 VD6 11
// PortC.04 VD7 11
// PortC.03 IISCLK 11
// PortC.02 IISDI 11
// PortC.01 IISDO 11
// PortC.00 IISRLCK 11
rPCONC = 0x0F55FFFF;
rPDATC = 0xFFFF;
rPUPE |= 0xC000;
//*********斷口 PortD配置********/ 8-bit input/output
// 引腳 功能 配置值
// PortD.07 VFRAME 10
// PortD.06 VM 10
// PortD.05 VLINE 10
// PortD.04 VCLK 10
// PortD.03 VD3 10
// PortD.02 VD2 10
// PortD.01 VD1 10
// PortD.00 VD0 10
rPCOND = 0x0000AAAA;
rPDATD = 0xFF;
//*********斷口 PortE配置********/ 9-bit input/output
// 引腳 功能 配置值
// PortE.08 CODECLK 10
// PortE.07 OutPut 01 D5
// PortE.06 OutPut 01 D4
// PortE.05 OutPut 01 D3
// PortE.04 OutPut 01 D2
// PortE.03 OutPut 01 D1
// PortE.02 RxD0 10
// PortE.01 TxD0 10
// PortE.00 OutPut 00
rPCONE = 0x00025568;
rPDATE = 0x1FF;
rPUPE |= 0x0FF06;
//*********斷口 PortF配置********/ 9-bit input/output
// 引腳 功能 配置值
// PortF.08 SIOCLK 011
// PortF.07 SIORxD 011
// PortF.06 SIORDY 011 001 OUTPUT
// PortF.05 SIOTXD 011
// PortF.04 nXDREQ0 11
// PortF.03 nXDACK0 11
// PortF.02 nWAIT 10
// PortF.01 IICSDA 10
// PortF.00 IICSCL 10
//rPCONF = 0x001B2FEA;
rPCONF = 0x000827EA;
rPDATF = 0x1FF;
rPUPF |= 0x3; //SDA,SCL 接上拉電阻
//*********斷口 PortG配置********/ 8-bit input/output
// 引腳 功能 配置值
// PortF.07 InPut 00
// PortF.06 EINT6 11
// PortF.05 EINT5 11
// PortF.04 EINT4 11
// PortF.03 EINT3 11
// PortF.02 EINT2 11
// PortF.01 EINT1 11
// PortF.00 EINT0 11
rPCONG = 0x00003FFF;
rPDATG = 0xFF;
/***** 外部中斷觸發(fā)模式配置 *****/
// 中斷 信號 配置值
// EINT7 下降緣觸發(fā) 011
// EINT6 下降緣觸發(fā) 011
// EINT5 下降緣觸發(fā) 011
// EINT4 下降緣觸發(fā) 011
// EINT3 下降緣觸發(fā) 011
// EINT2 下降緣觸發(fā) 011
// EINT1 高電平觸發(fā) 001
// EINT0 下降緣觸發(fā) 011
rEXTINT = 0x33333313;
}
//PortE FOR LED
void IO_PortSetLed(unsigned char OnOff)
{
if( OnOff == LEDOFF ) rPDATE = rPDATE | 0xf8;
if( OnOff == LEDON) rPDATE = rPDATE & 0x07;
}
/****************************************************************************
【功能說明】四個(gè)LED 點(diǎn)亮/熄滅狀態(tài)設(shè)置(LedStatus低四位電平高低對應(yīng)著四個(gè)LED亮/熄)
****************************************************************************/
void Led_Set(int LedStatus)
{
if((LedStatus&0x01)==0x01) //PE7狀態(tài)設(shè)置
rPDATE=rPDATE&0x17f;
else
rPDATE=rPDATE|0x80;
if((LedStatus&0x02)==0x02) //PE6狀態(tài)設(shè)置
rPDATE=rPDATE&0x1bf;
else
rPDATE=rPDATE|0x40;
if((LedStatus&0x04)==0x04) //PE5狀態(tài)設(shè)置
rPDATE=rPDATE&0x1df;
else
rPDATE=rPDATE|0x20;
if((LedStatus&0x08)==0x08) //PE4狀態(tài)設(shè)置
rPDATE=rPDATE&0x1ef;
else
rPDATE=rPDATE|0x10;
}
/****************************************************************************
【功能說明】LED來回閃爍顯示
****************************************************************************/
void Led_Disp(void)
{
Led_Set(0x08); //LED點(diǎn)亮/熄滅狀態(tài)設(shè)置
Delay(500); //延時(shí)若干個(gè)100us
Led_Set(0x04); //LED點(diǎn)亮/熄滅狀態(tài)設(shè)置
Delay(500); //延時(shí)若干個(gè)100us
Led_Set(0x02); //LED點(diǎn)亮/熄滅狀態(tài)設(shè)置
Delay(500); //延時(shí)若干個(gè)100us
Led_Set(0x01); //LED點(diǎn)亮/熄滅狀態(tài)設(shè)置
Delay(500); //延時(shí)若干個(gè)100us
Led_Set(0x02); //LED點(diǎn)亮/熄滅狀態(tài)設(shè)置
Delay(500); //延時(shí)若干個(gè)100us
Led_Set(0x04); //LED點(diǎn)亮/熄滅狀態(tài)設(shè)置
Delay(500); //延時(shí)若干個(gè)100us
Led_Set(0x08); //LED點(diǎn)亮/熄滅狀態(tài)設(shè)置
Delay(500); //延時(shí)若干個(gè)100us
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -