文档介绍:Revised by Chen Zhen in 2021
嵌入式系统原理与设计
嵌入式系统原理与设计
第一章 嵌入式处理器
1. 嵌入式系统概念,组成
定义:以应用为主, 以计算机技术为基础, 的引脚是一个)输出引脚
1:地址引脚
→ GPBCON —— GPH/JCON(用法一致,两位设置一个引脚)
00:输入引脚
01:输出引脚
10:特殊引脚
11:保留不用
GPBCON 31 1 0
② GPxDAT 寄存器(数据寄存器)——设置引脚状态及读取引脚状态 若某一位对应的是输出引脚,写此寄存器相应位可令引脚输出高 /低电平。 若某一位对应的是输入引脚,读取此寄存器可知相应引脚电平状态。 GPBDAT
31 1
③ GpxUP ——上拉电阻寄存器
0:相应引脚使用内部上拉电阻 1:相应引脚不适用内部上拉电阻 上拉电阻:加在引脚和高电位间的电阻。 下拉电阻:加在引脚和接地间的电阻。
上拉电阻
Vcc (高电平) 接地端
(S3C2410大部分配有上拉电阻,可使用,也可不使用) ① 例:使 4个 LED 小灯中的 LED1发亮
GPBCON : 31 17 16 15 14 13 12 11 10 … 3 2 1 0
…
GPB8 GPB7 GPB6 GPB5
GPB1
GPB0
GPBDAT : 31 8 7 6 5 … 3 2 1 0
…
GPB8 GPB7 GPB6 GPB5
GPBUP : 不使用上拉电阻 程序:
#define GPBCON(*(Volatile unsigned long *)0x56000010) #define GPBDAT(*(Volatile unsigned long *)0x56000014) #define GPB5_OUT(1<<(5*2)) #define GPB6_OUT(1<<(6*2)) #define GPB7_OUT(1<<(7*2)) #define GPB8_OUT(1<<(8*2))
int main()
{
GPBCON&=~(0x0003FC00) ;
GPBCON|=0x00015400;
GPBDAT&=~(0x000001E0) ;
GPBDAT|=0x000001C0;
return 0;
}
②使用按键控制 LED
K1闭合, GPB11低电平
K1断开, GPB11高电平
GPGDAT11位,当 GPB11为 0时,低电平;当 GPG11为 1时,高电平。 考试肯定考的 20分编程题! ! !
S3C2410
#define GPBCON(*(volatile unsigned long*)0x56000010) #define GPBDAT(*(volatile unsigned long*)0x56000014) #define GPGCON(*(volatile unsigned long*)0x56000050) #define GPGDAT(*(volatile unsigned long*)0x56000054) #define GPFCON(*(volatile unsigned long*)0x56000060) #define GPFDAT(*(volatile unsigned long*)0x56000064) #define GPB5_OUT 1<<(5*2) #define GPB6_OUT 1<<(6*2) #define GPB7_OUT 1<<(7*2) #define GPB8_OUT 1<<(8*2)
K4
#define GPG11_IN ~(3<<(11*2))
#define GPG3_IN ~(3<<(3*2))
#define GPF2_IN ~(3<<(2*2))
#define GPF0_IN ~(3<<(0*2))
int main(){
unsigned long dwDat;
GPBCON&=~(0x0003FC00) ;
GPBCON|=0x00015400;
GPGCON&=~(0x00C000C0) ;
GPGCON|=0x00000000;
GPFCON&=~(0x00000033);
GPFCON|=0x00000000;
while(1){
dwDat=GP