历史上的今天
返回首页

历史上的今天

今天是:2024年11月08日(星期五)

正在发生

2019年11月08日 | 2440裸机编程之三 通用I/O口

2019-11-08 来源:51hei

S3C2440A 具有130 个多功能输入/输出脚,分别包含在如下9 组端口中。
●1 个25 位输出端口(端口A)。
●1 个11 位输出端口(端口B)。
●4 个16 位输入/输出端口(端口C、D、E、G)。
●1 个8 位输入/输出端口(端口F)。
●1 个9 位输入/输出端口(端口H)。
●1 个13 位输入/输出端口(端口J)。


基本上,每个端口有三个寄存器:
GPnCON:端口配置寄存器,多数端口有多种功能,所以需要这个寄存器来使某个端口确定某一功能。

GPnDAT:端口数据寄存器,当端口为输出功能时:写这个寄存器就是使端口引脚输出相应电平;当端口为输入功能时:读这个寄存器就是读端口引脚上的相应电平;

GPnUP:端口上拉寄存器,决定端口是否具有内部上拉功能。


下面做个程序,使GPF4引脚上的LED灯闪烁。

GPF4的设置
GPFCON[9:8] 00 = Input   01 = Output
            10 = EINT[4] 11 = Reserved

GPF4的设置
GPFDAT的相应位分别对应每个引脚

//********************************************************************
void Main(void)
{     
    int i;
    ……硬件初始化……

LED();
while(1);

}

void  LED(void)
{
int i;
Uart_Printf("nIO LED 实验n");
Uart_Printf("GPF4----LED1闪烁n"); 
rGPFCON = rGPFCON & ~(3<<8) | 1<<8 ;//设置GPF4为输出功能
while(1)
{ for(i=0; i<10000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<4 ;//GPF4电平反转
}
}
//*******************************************************************

结果如下图:



Very good,我们又学会了用一种新的处理器点亮LED。


下面实验一个四个灯的流水灯实验,这四个灯接GPF4-GPF7

//********************************************************************
void Main(void)
{     
    int i;
    ……硬件初始化……

LED();
while(1);

}

void  LED(void)
{
int i;
Uart_Printf("nIO 流水灯 实验n"); 
rGPFCON = rGPFCON & ~(0xff<<8) | 1<<8 | 1<<10 | 1<<12 | 1<<14 ;//设置GPF4、5、6、7为输出功能
rGPFDAT &= ~ ( 1<<4 | 1<<5 | 1<<6 | 1<<7 ) ;//GPF4电平反转
while(1)
{ for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<4 ;//GPF4电平反转
  
  for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<5 ;//GPF5电平反转
  
  for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<6 ;//GPF6电平反转
  
  for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<7 ;//GPF7电平反转
}
}

//*******************************************************************

运行:四个灯轮流亮


推荐阅读

史海拾趣

ACT [Advanced Crystal Technology]公司的发展小趣事

ACT(Advanced Crystal Technology)公司是一家专注于晶体技术的企业。以下是该公司发展的五个相关故事:

  1. 公司成立与起步阶段: ACT公司成立于1984年,总部位于美国加利福尼亚州。创始人致力于研究和开发高性能的晶体材料和晶振产品。公司最初是一家小型的研究型企业,致力于满足军事和航空航天领域对高精度晶振的需求。

  2. 技术创新和产品拓展: 随着市场需求的增长和技术进步,ACT公司不断进行技术创新,并扩展了产品线。公司推出了一系列高精度、高稳定性的晶振产品,覆盖了频率范围广泛的应用,包括通信、医疗、工业控制等领域。

  3. 市场拓展和国际化发展: ACT公司积极开拓国内外市场,并与全球各地的客户建立了合作关系。公司的产品不仅畅销于美国本土市场,还远销至欧洲、亚洲等国家和地区。通过与国际合作伙伴的合作,ACT逐步实现了国际化发展战略。

  4. 质量控制和技术支持: ACT公司注重产品质量和技术支持,建立了严格的质量控制体系和售后服务体系。公司拥有一支专业的研发团队和技术支持团队,为客户提供定制化的解决方案和技术支持,确保产品的稳定性和可靠性。

  5. 未来发展展望: ACT公司将继续致力于晶体技术领域的研发和生产,不断推出更先进、更高性能的晶振产品,以满足客户在不断变化的市场需求。公司将加强与客户的合作,深化技术创新,提升产品品质和服务水平,努力成为行业内的领先企业。

FUJIKURA公司的发展小趣事

FUJIKURA(株式会社藤仓)在电子及光纤通信行业中有着悠久而辉煌的发展历程。以下是五个关于FUJIKURA公司发展起来的相关故事,每个故事均基于事实描述,并尽量保持字数在500字以上:

1. 创立与早期发展

FUJIKURA公司成立于1885年,由藤仓善八先生创立,起初专注于发电机用的绢卷线制造。这一初创阶段为公司奠定了坚实的电线电缆制造基础。随着技术的不断积累,FUJIKURA逐渐扩展到更广泛的电气和电子领域,为公司的长期发展奠定了坚实的基础。

2. 技术创新与行业领导地位

在多年的发展中,FUJIKURA始终致力于技术创新,不断推出具有行业影响力的新产品。特别是在光纤通信领域,FUJIKURA凭借其强大的研发能力和技术实力,成为了全球领先的光纤通信产品研发与生产商。公司不仅在光纤制造方面取得了显著成就,还在光纤熔接、光数据传输等领域拥有多项专利技术,推动了整个行业的发展。

3. 全球化战略与市场拓展

随着全球市场的不断开放和竞争的加剧,FUJIKURA积极实施全球化战略,通过设立海外分支机构、与当地企业合作等方式,不断拓展海外市场。目前,FUJIKURA的商务与服务网络已经覆盖全球多个国家和地区,为全球客户提供优质的产品和服务。这一战略不仅提升了公司的国际影响力,还为公司带来了更多的商业机会和发展空间。

4. 企业文化与团队建设

FUJIKURA注重企业文化的建设和团队精神的培养。公司秉承“向客户提供价值”的企业理念,致力于为员工创造一个积极向上、团结协作的工作环境。通过定期的培训、团队建设活动等方式,FUJIKURA不断提升员工的综合素质和团队协作能力,为公司的持续发展提供了有力的人才保障。

5. 应对挑战与持续发展

面对全球经济大萧条等严峻挑战,FUJIKURA展现出了强大的韧性和适应能力。公司全体员工团结一致,以共享目标和积极态度应对挑战,将危机视为机遇。通过实施“第三次创业”和企业文化改革等措施,FUJIKURA不仅成功度过了难关,还实现了持续稳健的发展。未来,FUJIKURA将继续秉持顾客价值创造的理念,积极应对社会需求,为实现赢得客户信赖的承诺而努力。

Essentra Components公司的发展小趣事

Essentra Components公司一直将客户服务放在首位,通过提供优质的售前咨询、售中支持和售后服务,赢得了客户的广泛赞誉。公司不仅为客户提供了丰富的产品选择,还根据客户的具体需求提供定制化的解决方案。此外,公司还建立了完善的物流配送体系,确保产品能够及时、准确地送达客户手中。这些努力使得Essentra Components在客户中树立了良好的口碑,为公司的发展奠定了坚实的基础。

Federal Custom Cable公司的发展小趣事

Federal Custom Cable公司成立于XXXX年,由几位具有丰富电缆制造经验的工程师创立。公司创立之初,就专注于为客户提供定制化的电缆解决方案。他们深入了解不同行业对电缆的特殊需求,通过技术创新和工艺改进,生产出符合客户要求的电缆产品。这种对定制化需求的精准把握,使Federal Custom Cable在竞争激烈的电缆市场中脱颖而出。

Dialog公司的发展小趣事

Dialog公司一直注重产品的安全性和可靠性。为了确保其产品和解决方案能够满足客户对安全性的要求,Dialog公司积极寻求各种认证和合规性评估。例如,Dialog公司的DA16200 Wi-Fi SoC获得了PSA一级认证,这标志着Dialog公司在芯片层面保护设备方面取得了重要里程碑。PSA Certified认证机制由Arm及其四个全球领先的独立安全评估实验室合作伙伴共同创立,该认证机制以一种方法论的方式来开发安全功能的最佳实践。获得PSA一级认证使Dialog公司能够确保其客户和合作伙伴在从芯片到应用的各个开发阶段都能获得安全性保障。

南京国博公司的发展小趣事

近年来,国博电子凭借其卓越的技术实力和市场表现,荣获了多项荣誉和奖项。包括“2023-2024年度射频芯片市场最佳产品奖”、“2022年度联合创新体最高绩效奖励支持”等。这些荣誉不仅是对公司技术实力和市场地位的认可,也是对公司未来发展潜力的肯定。国博电子将继续秉持“用‘芯’创造未来”的企业文化,致力于成为全球射频电子领域的行业领导者。

问答坊 | AI 解惑

请问下有人用FLASH做过NAND系列的FLASH驱动没呢?很想问个问题~谢谢~

最近在用一个XILINX的FPGA,用Verilog来写,要做一个nand FLASH的驱动,就是读写的控制~ 我刚学不久,所以从读ID开始做起,但是现在读ID总是读不出来,用chipscope抓了数据看都是0,我觉得时序应该没问题啊~ 我看datasheet,在读ID时也要对RB这个 ...…

查看全部问答>

请教:PWM 到底是什么?怎么使用?谢谢!

请教: 是这样的,直接电机的一条线接 VCC (通过改变电流的大小能改变输出力的大小) 假设电机接在 20V 的电压上 现在用 PWM 来改变电流 PWM 由单片机产生 问题1: 我要怎么接线 才能使通过单片机控制电流大小? 2: PWM 到底是控制电流大 ...…

查看全部问答>

在Win CE下访问局域网使用密码的处理

在Win CE 5.0下,首次通过局域网访问另外一台电脑的时候会弹出一个对话框,要求输入对方的用户名、密码和域名。像下图所示的: 我想知道的是,有没有这样一个函数,提供了这几个参数的接口,以便我在写程序时就可以把用户名、密码写进去,而不需 ...…

查看全部问答>

单片机基础问题 关于AT89C52的RAM和SFR寄存器

   学了一段时间单片机,主要是AT89C52   其中遇到了关于AT89C52内部ram和sfr是不是物理相同的部分?或者说地址为80H 到0FFH之间的特殊功能寄存器 和 RAM 中  80H到0FFH中的堆栈或数据存贮器是否相同? 一直没有搞 ...…

查看全部问答>

单片机输出端可以直接接动态数码管吗?

有的地方说驱动电流不够,需要加锁存器进行驱动,是吗?…

查看全部问答>

STM32 TIM1(SPWM) 、TIM2(捕获)、TIM3(PWM)输出异常

小弟最近刚接触STM32  正在学习它的高级定时器跟通用定时器的功能   在网上看了些帖子又小研究了一下手册后,小弟把出SPWM(TIM1)、定时器捕获(TIM2)及出普通PWM(TIM3)的程序做了一下整合   整合前小弟已对他们单独做过测 ...…

查看全部问答>

51单片机

指令求解???????新手上路,请高手多多指教 ANL TMOD ,#0FH ORL TMOD ,#00H MOV TH1,#0CH MOV TL1,#03H MOV IE,#00H SETB TR1 LOOP: JBC TF1,LOOP1 AJMP LOOP LOOP1: MOV TH1,#0FCH MOV TL1,#03H CPL P1.0 : ?新手上路, 请 ...…

查看全部问答>

0.01元拿usbasp下载器

活动规则: https://bbs.eeworld.com.cn/viewthread.php?tid=324257&page=1&extra=page%3D1…

查看全部问答>

MSP430F149 串口1设置问题

***************************************************************************************************/ #include \"io430.h\" #include     //引用本征函数需包含本头文件 #include \"nbc430.h\" #define uchar unsigned ...…

查看全部问答>