ARM课程设计报告GPIO—流水灯.doc
《ARM课程设计报告GPIO—流水灯.doc》由会员分享,可在线阅读,更多相关《ARM课程设计报告GPIO—流水灯.doc(28页珍藏版)》请在沃文网上搜索。
1、目 录一、 设计目的3二、 设计原理1、GPIO流水灯 32、SPI 73、定时器10 4、实时时钟12三、 所用仪器18四、EasyARM2131开发套件功能介绍 18五、设计内容:万年历-定时器-流水灯-SPI1、功能描述212、流程图223、程序设计22六、心得体会28七、参考文献29一、设计目的1、根据要求,复习巩固ARM的基础知识。2、掌握ARM系统的设计方法,特别是熟悉模块化的设计思想。3、熟练掌握ARM软件和2131开发板的使用。4、提高综合运用所学的理论知识独立分析和解决问题的能力;二、设计原理 1、GPIO流水灯(1)LPC2131具有多达47个通用I/O 口(GPIO,Ge
2、neral Purpose I/O ports),分别为P031:0、 P131:16,其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。 当管脚选择 GPIO 功能时,有IOSET、IOCLR和IOPIN 3 个寄存器用于控制 GPIO 的使用。IOSET 用于口线置位,而IOCLR 则用于口线清零,IOPIN 则反映当前IO口的状态,读回IOSET 则反映当前IO口设定状态。(2)GPIO的特性和应用特性:单个位的方向控制;
3、 单独控制输出的置位和清零; 所有I/O口在复位后默认为输入。 应用:通用I/O口 驱动LED或 其它指示器 控制片外器件 检测数字输入(3)GPIO引脚描述GPIO管脚描述见表4.1。 表4.1 GPIO 管脚描述 管脚连接设置 将相应管脚的PINSELn 位设置为00 ,即选择GPIO 功能;大部分管脚复位后默认为GPIO。3、 GPIO寄存器LPC2138有2个32 位的通用I/O 口。PORT0 使用了30个管脚,PORT1 有多达16个管脚可用GPIO功能。PORT0和PORT1由2 组(4个)寄存器控制,如表4.2 所示。 表4.2 GPIO寄存器映射4. GPIO输出实验流水灯实
4、验 EasyARM2131 开发板上的 8 路LED(LED8LED1)分别可选择P125:18进行控制,电路如图1所示。 图1当跳线JP12 全部选择LED8LED1 后,P1.25P1.18 分别控制这 8 路LED,就可以进行流水灯实验。流水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算,流程图如图2所示。图2 流水灯程序:/#include config.h/* LED8LED1 8个LED分别由P1.25P1.18控制 */const uint32 LEDS8 = (0xFF 0; dly-)for (i=0; i100000; i+);/* 函数名称 :main()* 函数
5、功能 :流水灯显示实验。* 调试说明 :连接跳线JP12至LED8LED1。*/* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */const uint32 LED_TBL = 0x00, 0xFF,/ 全部熄灭后,再全部点亮0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,/ 依次逐个点亮0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,/ 依次逐个叠加0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,/ 依次逐个递减0x81, 0x42, 0x24, 0
6、x18, 0x18, 0x24, 0x42, 0x81,/ 两个靠拢后分开0xA0, 0x50, 0x7e, 0x28, 0x14, 0x0A, 0x05, 0x82,0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81/ 从两边叠加后递减;int main (void)uint8 i;/PINSEL1 = 0x00000000;/ 设置管脚连接GPIOPINSEL2 = PINSEL2 & (0x08);/ P125:16连接GPIOIO1DIR = LEDS8;/ 设置LED1控制口为输出while (1)for (i=0; i42; i+)/* 流
7、水灯花样显示 */IO1SET = (LED_TBLi) 18);DelayNS(20);IO1CLR = (LED_TBLi) 0; dly-) for(i=0; i50000; i+); void SSP_Init(void) SSPCR0 = (0x01 8) | / SCR 设置SPI时钟分频 (0x00 7) | / CPHA 时钟输出相位,仅SPI模式有效 (0x01 6) | / CPOL 时钟输出极性,仅SPI模式有效 (0x00 4) | / FRF 帧格式 00=SPI,01=SSI,10=Microwire,11=保留 (0x07 0); / DSS 数据长度,0000-
8、0010=保留,0011=4位,0111=8位,1111=16位 SSPCR1 = (0x00 3) | / SOD 从机输出禁能,1=禁止,0=允许 (0x00 2) | / MS 主从选择,0=主机,1=从机 (0x01 1) | / SSE SSP使能,1=允许SSP与其它设备通信 (0x00 0); / LBM 回写模式 SSPCPSR = 0x52; / PCLK分频值 / SSPIMSC = 0x07; / 中断屏蔽寄存器 SSPICR = 0x03; / 中断清除寄存器uint8 SSP_SendData(uint8 data) / IOCLR = SLAVE_CS; / 选择从
9、机 SSPDR = data; while( (SSPSR & 0x01) = 0 ); / 等待TFE置位,即发送FIFO空 / IOSET = SLAVE_CS; return(SSPDR);uint8 const DISP_TAB16 = / 0 1 2 3 4 5 6 7 8 9 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,/ A b C d E F0x88, 0x83, 0xC6, 0xA1,0x86, 0x8E;volatile uint8 rcv;int main(void) uint8 i; PCONP |= 110;
10、/ PINSEL1 = 0x000002A8; / 设置SSP管脚连接 /PINSEL1 = 0xAA 2; PINSEL1 = (PINSEL1 & (0xFF 2) | (0xAA 2);/ IO0DIR = SLAVE_CS;/ IO0SET = SLAVE_CS; SSP_Init(); / 初始化SSP接口 while(1) for(i=0; i16; i+) rcv = SSP_SendData(DISP_TABi); / 发送显示数据 DelayNS(80); / 延时 return(0);3、定时器(1)LPC2131 具有2 个32 位可编程定时/计数器,均具有4 路捕获、
11、比较路匹配并输出电 路。 定时器对外设时钟(pclk )周期进行计数,可选择产生中断或根据4 个匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。 可用于对内部事件进行计数的间隔定时器,或者通过捕获输入实现脉宽调制,亦可作为 自由运行的定时器。 定时器0 和定时器 1 除了外设基地址以外,其它都相同。(2)定时器0定时实验查询方式用定时器0实验0.5秒定时,查询标志位等待定时时间到达,对蜂鸣器进行控制,让蜂鸣器每秒钟响一次。程序在T0MR0中设定定时常数,在T0MCR中设置定时器0
12、匹配后复位TC并产生中断标志,接下来程序查询等待中断标志置位。若定时时间到,先清除Timer0中断标志,然后取反BEEP控制口的输出状态,流程图如图5所示。 图5定时器0定时实验流程图定时器程序:/#include config.h#define BEEP 1 115200)return (0);if (set.datab 8)return (0);if (0 = set.stopb) | (set.stopb 2) return (0);if (set.parity 4)return (0);/ 设置串口波特率U0LCR = 0x80;/ DLAB=1bak = (Fpclk 4) / ba
13、ud;U0DLM = bak 8;U0DLL = bak & 0xff;/ 设置串口模式bak = set.datab - 5;if (2 = set.stopb)bak |= 0x04;if (0 != set.parity)set.parity = set.parity - 1;bak |= 0x08;bak |= set.parity 16) & 0xfff;/ 获取 年PC_DispChar(0, SHOWTABLEbak / 1000);bak = bak % 1000;PC_DispChar(1, SHOWTABLEbak / 100);bak = bak % 100;PC_Dis
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 课程设计 报告 GPIO 流水
