arm7单片机编程实例,ARM7之输入-输出端口GPIO编程教程.doc

上传人:白大夫 文档编号:3249670 上传时间:2019-08-06 格式:DOC 页数:5 大小:25.50KB
返回 下载 相关 举报
arm7单片机编程实例,ARM7之输入-输出端口GPIO编程教程.doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《arm7单片机编程实例,ARM7之输入-输出端口GPIO编程教程.doc》由会员分享,可在线阅读,更多相关《arm7单片机编程实例,ARM7之输入-输出端口GPIO编程教程.doc(5页珍藏版)》请在三一文库上搜索。

1、arm7单片机编程实例,ARM7之输入/输出端口GPIO编程教程一、输入/输出端口GPIO编程一(01)、一位数码管静态显示(通过74HC595实现)1、管脚连接模块首先介绍一下LPC2106的相关的管脚特性:可以实现独立的管脚配置应用:管脚连接模块的用途是将管脚配置为需要的功能(这一章节主要就是介绍GPIO功能别的会在接下来的章节中分别予以介绍)描述:管脚连接模块可以使所选管脚具有一个以上的功能。配置寄存器控制多路开关来连接管脚与片内外设。外设在激活和任何相关只读使能之前必须连接到适当的管脚。任何使能的外设功能如果没有映射到相应的管脚,则被认为是无效的。寄存器的描述:管脚连接模块包括两个寄存

2、器:管脚功能寄存器0:(PINSEL0)PINSEL0寄存器按照下表当中的设定来控制管脚的功能。IODIR寄存器中的方向控制位只有在管脚选择为GPIO的功能时才有效(也就是本章要讲述的)。对于其它功能,方向是自动控制的。管脚功能寄存器1:(PINSEL1)PINSEL1寄存器按照下表来设定控制管脚的功能。IODIR寄存器中的方向控制位只有在管脚选择GPIO功能时才有效。对于其它功能,方向是自动控制的。在复位时拉低DBGSEL时,只要管脚P0.17-P0.31的功能控制有效。管脚功能寄存器值:PINSEL寄存器控制器件管脚的功能。如下图。每一对寄存器位对应一个特定的器件管脚。只有当管脚选择为GP

3、IO功能时,IODIR寄存器的方向控制位才有效。其它功能的方向是自动控制的。每个派生期间通常具有不同的管脚分布,因此每个管脚可能有不同的功能。2、GPIO特性:1)单个位的方向控制2)单独控制输出的置位和清零3)所有I/0口在复位后默认为输入应用:1)通用I/0口2)驱动LED或者其他指示器3)驱动片外器件4)检测数字输入管脚描述:寄存器描述:GPIO包含4个寄存器,如下表:GPIO引脚值寄存器IOPIN:GPIO输出置位寄存器IOSET:GPIO输出清零寄存器:GPIO方向寄存器:然后就是今天要做的实验:一位数码管的静态显示用IAR for ARM就是调不好换用了Keil浪费我大把时间了早知

4、道就早用Keil了回头还得再调试一下IAR然后就是程序了MDK1_1.c(先是主程序吗你懂得)/-/LED数码管显示/通过I/O模拟同步串行接口与74HC595进行连接,控制74HC595驱动LED数码管显示/-#includelpc210x.htypedef unsigned long uint32;typedef unsigned char uchar;#define SPI_IO 0x00000150 /SPI接口的I/O设置字uchar const seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0.82,0xf8,0x80,0x90,0x88,0x83,0xc6,

5、0xa1,0x86,0x8e;/-/延时函数void delay(uint32 z)uint32 i;for(;z0;z-)for(i=0;i50000;i+);/-/mainint main()uchar i;PINSEL0=0X00000000;PINSEL1=0X00000000; /设置左右引脚连接GPIOIODIR=SPI_IO; /设置SPI控制口为输出由于这是模拟的,所以需要自己设置方向位while(1)for(i=0;i16;i+)HC595_send_data(segi);delay(1);74HC595.c/-/74HC595模拟SPI通信,便于调用#includelpc2

6、10x.htypedef unsigned long uint32;typedef unsigned char uchar;#define SPI_CS 0x00000100 /P0.8模拟片选#define SPI_DA 0x00000040 /P0.6模拟数据传输口#define SPI_CLK 0x00000010 /P0.4模拟CLK/-/向74HC595发送一个字节函数(发送数据时,高位在前)/还是大概介绍一下74HC595吧:/74HC595是具有8位移位寄存器和一个存储器,三态输出功能。/移位寄存器和存储器是分别的时钟。/数据在SH_CP的上升沿输入到移位寄存器中,在ST_CP的

7、上升沿输入到存储寄存器中去。/如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲(一般不会这么用吧)。/移位寄存器有一个串行移位输入(DS),和一个串行输出(Q7),和一个异步的低电平复位。/存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。void HC595_send_data(uchar dat)uchar i;IOCLR=SPI_CS; /SPI_CS=0for(i=0;i8;i+) /模拟SPIIOCLR=SPI_CLK; /SPI_CLK=0if(dat0x80)!=0) /设置SPI_DA的输出值IOSET=SPI_DA; /要从最高位发送,当最高位为1时,置位SPI_DAelseIOCLR=SPI_DA; /当最高位为0时,清零SPI_DAdat=1; /dat循环左移一位IOSET=SPI_CLK; /SPI_CLK为1,一个脉冲上升沿,将数据移入移位寄存器IOSET=SPI_CS; /SPI_CS=1,输入到存储寄存器中,由于片选一直为低,所以直接就输出显示的数据

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1