嵌入式系统实训报告

上传人:飞*** 文档编号:30500367 上传时间:2018-01-29 格式:DOC 页数:15 大小:269.50KB
返回 下载 相关 举报
嵌入式系统实训报告_第1页
第1页 / 共15页
嵌入式系统实训报告_第2页
第2页 / 共15页
嵌入式系统实训报告_第3页
第3页 / 共15页
嵌入式系统实训报告_第4页
第4页 / 共15页
嵌入式系统实训报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《嵌入式系统实训报告》由会员分享,可在线阅读,更多相关《嵌入式系统实训报告(15页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统实训报告专 业:电子信息工程技术班 级: 电子 092姓 名: 学 号: 指导老师: 1第一阶段 GPIO 的控制一、实训目的1、掌握寄存器的使用2、使用 GPIO 的控制方法点亮和熄灭 LED二、实训内容控制 LED 的点亮,点亮 L4,L6 ,熄灭 L5、L7。三、实训设备一组设备为:普通 PC 、 嵌入式系统实验板四、GPIO 的使用将管脚用作 GPIO,需要先通过设置(PINSELx)将管脚连接到 GPIO,然后再根据应用的实际使用方向设置(IOxDIR)为对应的输入/输出。如果 GPIO用作输出,则通过操作 IOxSET 和 IOxCLR 两个寄存器来进行置位和清零操作;如

2、果 GPIO 用过输入口,则通过读取 IOxPIN 的值来读取 IO 口的实际状态。如图 1 所示。只有 IOxSET/IOxCLR 中被写入 1 的位对应的管脚才能设置为高/低电平,写入 0 的位对应的管脚的状态不发生改变。但是,仅通过写 IOxSET 或IOxCLR 寄存器是不可能使一个 GPIO 口同时输出包含 0 和 1 的二进制数。设 置 P I N S E L x将 引 脚 连 接 到 G P I O根 据 需 要 的 操 作 方 向设 置 I O x D I RI O x S E T : 置 位I O x C L R : 清 零I O x P I N : 同 步 置 位 清 零I

3、 O x P I N : 读 取 状 态输 出 输 入图 12五、程序代码#includeincludes.hint main(void)PINSEL0 = PINSEL0 PINSEL2 = PINSEL2 PINSEL0 = PINSEL0 IO0DIR = IO0DIR | (1ul3);IO1DIR = IO0DIR | (1ul24);IO1DIR = IO0DIR | (1ul25);IO0DIR = IO0DIR | (1ul7);IO0CLR = (1ul3);IO0SET = (1ul24);IO0CLR = (1ul25);IO0SET = (1ul7);while(1)第

4、二阶段 UART 的使用一、实训目的1、掌握 LPC21XX 系列处理器 UART 的使用方法2、掌握串口调试助手的使用二、实训内容使用串口调试助手控制 LED 的亮和灭,当收到 0 时,熄灭 LED,否则点亮三、实训设备一组设备为:普通 PC 、 嵌入式系统实验板四、LPC21XX的UART的使用LPC21XX的UART使用的主要步骤如图2所示。其中前四步叫做初始化UART,一般放在一个初始化函数中完成。3设 置 引 脚 连 接 模 块 将对 应 I O 连 接 到 U A R T x设 置 串 口 波 特 率设 置 F I F O发 送 保 持 器 为 空 时 发送 数 据接 收 数 据

5、有 效 位 有 效时 启 动 数 据 接 收设 置 串 口 数 额 据 格 式U A R T 发 送 U A R T 接 收图 2五、程序代码#includeincludes.hvoid Delay(unsigned int t)unsigned int i;while(t-)i=3000;while(i-); void InitUART0(void) PINSEL0 = (PINSEL0 U0LCR = 0x80; U0DLM = 0;U0DLL = 180;U0LCR = 0x03; unsigned char UART0_RcvByte(void) unsigned char rcv_d

6、ata; 4while(U0LSR rcv_data = U0RBR; return(rcv_data);int main(void)unsigned char rcv_data;PINSEL0 = PINSEL0 IO0DIR = IO0DIR | (1ul3); InitUART0();while(1)rcv_data = UART0_RcvByte()-0; if(rcv_data=0)IO0SET =1ul3;IO0SET =1ul7;IO1SET =1ul24;IO1SET =1ul25;elseIO0CLR =1ul3;IO0CLR =1ul7;IO1CLR =1ul24;IO1C

7、LR =1ul25; 第三阶段 中断系统的使用一、实训目的1、理解 LPC21XX 系列处理器的中断系统52、掌握中断的概念和 LPC21XX 中断系统的程序编写方法二、实训内容使用中断的方法接收 UART 发送过来的数据,然后再控制 LED 的亮和灭,当收到 0 时,熄灭 LED,否则点亮。 PC 端使用的是串口调试助手。三、实训设备一组设备为:普通 PC 、 嵌入式系统实验板四、中断的使用中断使用流程步骤如图3所示。 中 断 源 使 能 相 关 中 断选 择 中 断 类 型分 配 IRQ槽设 置 中 断 服 务 程 序 地 址使 能 中 断图3 五、程序代码#include include

8、s.hunsigned int Getsome;void InitUART0(void)PINSEL0 = (PINSEL0 U0LCR = 0x80;U0DLM = 0;U0DLL = 180;U0LCR = 0x03;U0IER = U0IER void InitVIC(void)6VICIntSelect = VICIntSelect VICVectCntl2 = 0x20 | 0x06;VICVectAddr2 = (unsigned int)UART0_RcvByte;VICIntEnable = 10x06;void _irq UART0_RcvByte(void)unsigned

9、 char IIR;IIR = U0IIR;if(IIR&0x01)=0)IIR = IIR if(IIR=0x04)|(IIR=0x0c)while(U0LSR & 0x01)Getsome = U0RBR; if(Getsome=0)IO1SET = 1ul7;IO0SET = 1ul3; IO1SET = 1ul24; IO0SET = 1ul25; elseIO1CLR = 1ul7; IO0CLR = 1ul3; IO1CLR = 1ul24;IO0CLR = 1ul25; VICVectAddr = 0;int main(void)LongDelay = 1;PINSEL0 = P

10、INSEL0 IO0DIR = IO0DIR | (1ul3) | (1ul7); PINSEL1 = PINSEL1 IO1DIR = IO1DIR | (1ul24) | (1ul25); InitUART0();7InitVIC();while(1);第四阶段 定时器的使用一、实训目的1、理解 LPC21XX 系列处理器的定时器2、掌握 LPC21XX 系列处理器的定时器的结构二、实训内容1、使用查询的模式,用定时器控制 LED 实现 1S 周期的闪亮2、使用中断的模式,用定时器控制 LED 实现 0.5S 周期的闪亮三、实训设备一组设备为:普通 PC 、嵌入式系统实验板四、定时器的使用

11、查询模式的定时器使用流程如图 4 所示,中断模式的定时器使用流程如图 5 所示。8图 4设 置 预 分 频 寄 存 器复 位 定 时 器启 动 定 时 器点 亮 L E D定 时 时 间 到 ?N复 位 定 时 器熄 灭 L E D定 时 时 间 到 ?NYY启 动 定 时 器图 5中 断 程 序 入 口点 亮 LED匹 配 2中 断 ?LE为 灭 ?设 置 状 态 变 量 熄 灭 LED设 置 状 态 变 量中 断 源 中 断 结 束VIC中 断 结 束N NYY9五、程序代码查询模式:#includeincludes.hint main(void)PINSEL0 = PINSEL0 PIN

12、SEL2 = PINSEL2 PINSEL0 = PINSEL0 IO0DIR = IO0DIR | (1ul3);IO1DIR = IO1DIR | (1ul24);IO1DIR = IO1DIR | (1ul25);IO0DIR = IO0DIR | (1ul7); T0PR = 13823;while(1)T0TCR = 11;IO0CLR = 1ul3;IO1CLR = 1ul24;IO1CLR = 1ul25;IO0CLR = 1ul7;T0TCR = 10;while(T0TC1000);T0TCR = 11;IO0SET = 1ul3;IO1SET = 1ul24;IO1SET

13、= 1ul25;IO0SET = 1ul7;T0TCR = 10;while(T0TC1000);中断的模式:#includeincludes.hunsigned char LEDState;void InitTimer0(void)T0PR = 13823;T0MCR = 16 | 17;T0MR2 = 500;T0TCR = 11;T0TCR = 10;void _irq Timer0Match(void)10if(T0IR & 0x04)T0IR = 0x04;if(LEDState=0)IO0CLR = 1ul3;LEDState = !LEDState;elseIO0SET = 1u

14、l3;LEDState = 0;VICVectAddr = 0;void InitVIC(void)VICIntSelect = 0x0;VICVectCntl0 = 0x20 | 0x04;VICVectAddr0 = (unsigned int)Timer0Match;VICIntEnable = 1ul4;int main(void)MEMMAP = 0x2;LEDState = 0;PINSEL0 = PINSEL0 IO0DIR = IO0DIR | (1ul3); InitTimer0();InitVIC();while(1)第五阶段 LED 亮度的 PC 控制一、实训目的1、掌握

15、程序联合调试的能力2、掌握定时器产生 PMW 信号的方法3、掌握中断系统的复杂使用11二、实训内容对 LED 亮度分成 10 级显示,当接收到字符 “0”时,亮度为最低,即熄灭,接收到字符“1”时,显示为 1 级亮度,当接收到“9”时,亮度最大。各级亮度自行定义,能区分即可。三、实训设备一组设备为:普通 PC 、嵌入式系统实验板四、程序流程图等待中断图 6五、程序代码 #includeincludes.h#includeKey.hvoid _irq Timer0Match(void)unsigned char ir = T0IR;if(ir&0x02)IO0CLR = 1ul3;T0IR = 11;VICVectAddr = 0;int main(void)unsigned char keyin;PINSEL0 = PINSEL0 IO0DIR = IO0DIR | (1ul3);IO0CLR = 1ul3;T0PR = 1382;T0MR1 = 1000;T0MCR = 1ul0 | 1ul1 | 1ul3;T0TC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号