




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统实训报告专 业:电子信息工程技术班 级: 电子092姓 名: 学 号: 指导老师: 第一阶段 gpio的控制一、实训目的1、掌握寄存器的使用2、使用gpio的控制方法点亮和熄灭led二、实训内容控制led的点亮,点亮l4,l6,熄灭l5、l7。三、实训设备一组设备为:普通pc 、 嵌入式系统实验板四、gpio的使用将管脚用作gpio,需要先通过设置(pinselx)将管脚连接到gpio,然后再根据应用的实际使用方向设置(ioxdir)为对应的输入/输出。如果gpio用作输出,则通过操作ioxset和ioxclr两个寄存器来进行置位和清零操作;如果gpio用过输入口,则通过读取ioxp
2、in的值来读取io口的实际状态。如图1所示。只有ioxset/ioxclr 中被写入1 的位对应的管脚才能设置为高/低电平,写入0 的位对应的管脚的状态不发生改变。但是,仅通过写ioxset 或ioxclr 寄存器是不可能使一个gpio 口同时输出包含0 和1 的二进制数。 图1五、程序代码#includeincludes.hint main(void) pinsel0 = pinsel0 & (3ul6); pinsel2 = pinsel2 & (13ul3); pinsel0 = pinsel0 & (3ul14); io0dir = io0dir | (1ul3); io1dir =
3、io0dir | (1ul24); io1dir = io0dir | (1ul25); io0dir = io0dir | (1ul7); io0clr = (1ul3); io0set = (1ul24); io0clr = (1ul25); io0set = (1ul7); while(1) 第二阶段 uart的使用一、实训目的1、掌握lpc21xx系列处理器uart的使用方法2、掌握串口调试助手的使用二、实训内容使用串口调试助手控制led的亮和灭,当收到0时,熄灭led,否则点亮三、实训设备一组设备为:普通pc 、 嵌入式系统实验板四、lpc21xx的uart的使用lpc21xx的ua
4、rt使用的主要步骤如图2所示。其中前四步叫做初始化uart,一般放在一个初始化函数中完成。 图2五、程序代码#includeincludes.hvoid delay(unsigned int t)unsigned int i;while(t-)i=3000;while(i-); void inituart0(void) pinsel0 = (pinsel0 & 0xfffffff0)| (0x010) | (0x012);u0lcr = 0x80; u0dlm = 0;u0dll = 180;u0lcr = 0x03; unsigned char uart0_rcvbyte(void) uns
5、igned char rcv_data; while(u0lsr & 0x01) = 0);rcv_data = u0rbr; return(rcv_data);int main(void)unsigned char rcv_data;pinsel0 = pinsel0 & (3ul6);io0dir = io0dir | (1ul3); inituart0();while(1) rcv_data = uart0_rcvbyte()-0; if(rcv_data=0) io0set =1ul3;io0set =1ul7;io1set =1ul24;io1set =1ul25; elseio0c
6、lr =1ul3;io0clr =1ul7;io1clr =1ul24;io1clr =1ul25; 第三阶段 中断系统的使用一、实训目的1、理解lpc21xx系列处理器的中断系统2、掌握中断的概念和lpc21xx中断系统的程序编写方法二、实训内容使用中断的方法接收uart发送过来的数据,然后再控制led的亮和灭,当收到0时,熄灭led,否则点亮。pc端使用的是串口调试助手。三、实训设备一组设备为:普通pc 、 嵌入式系统实验板四、中断的使用中断使用流程步骤如图3所示。图3 五、程序代码#include includes.hunsigned int getsome;void inituart0
7、(void)pinsel0 = (pinsel0 & 0xfffffff0)| (0x010) | (0x012);u0lcr = 0x80;u0dlm = 0;u0dll = 180;u0lcr = 0x03;u0ier = u0ier & 0xfe | 0x01;void initvic(void) vicintselect = vicintselect & (1ul6);vicvectcntl2 = 0x20 | 0x06;vicvectaddr2 = (unsigned int)uart0_rcvbyte;vicintenable = 10x06;void _irq uart0_rcv
8、byte(void)unsigned char iir;iir = u0iir;if(iir&0x01)=0)iir = iir & 0x0e;if(iir=0x04)|(iir=0x0c)while(u0lsr & 0x01)getsome = u0rbr; if(getsome=0) io1set = 1ul7; io0set = 1ul3; io1set = 1ul24; io0set = 1ul25; else io1clr = 1ul7; io0clr = 1ul3; io1clr = 1ul24;io0clr = 1ul25; vicvectaddr = 0;int main(vo
9、id)longdelay = 1;pinsel0 = pinsel0 & (3ul6) & (7ul14);io0dir = io0dir | (1ul3) | (1ul7); pinsel1 = pinsel1 & (24ul16) & (25ul18);io1dir = io1dir | (1ul24) | (1ul25); inituart0();initvic();while(1); 第四阶段 定时器的使用一、实训目的1、理解lpc21xx系列处理器的定时器2、掌握lpc21xx系列处理器的定时器的结构二、实训内容1、使用查询的模式,用定时器控制led实现1s周期的闪亮2、使用中断的模
10、式,用定时器控制led实现0.5s周期的闪亮三、实训设备一组设备为:普通pc 、嵌入式系统实验板四、定时器的使用查询模式的定时器使用流程如图4所示,中断模式的定时器使用流程如图5所示。 图4 图5五、程序代码查询模式:#includeincludes.hint main(void)pinsel0 = pinsel0 & (3ul6);pinsel2 = pinsel2 & (1ul3);pinsel0 = pinsel0 & (3ul14);io0dir = io0dir | (1ul3);io1dir = io1dir | (1ul24);io1dir = io1dir | (1ul25);
11、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 = 1ul25;io0set = 1ul7;t0tcr = 10;while(t0tc1000);中断的模式:#includeincludes.hunsigned char ledstate;void inittimer
12、0(void) t0pr = 13823; t0mcr = 16 | 17; t0mr2 = 500; t0tcr = 11; t0tcr = 10;void _irq timer0match(void) if(t0ir & 0x04) t0ir = 0x04; if(ledstate=0) io0clr = 1ul3; ledstate = !ledstate; else io0set = 1ul3; ledstate = 0; vicvectaddr = 0;void initvic(void) vicintselect = 0x0; vicvectcntl0 = 0x20 | 0x04;
13、 vicvectaddr0 = (unsigned int)timer0match; vicintenable = 1ul4;int main(void) memmap = 0x2; ledstate = 0; pinsel0 = pinsel0 & (3ul6); io0dir = io0dir | (1ul3); inittimer0(); initvic(); while(1) 第五阶段 led亮度的pc控制一、实训目的1、掌握程序联合调试的能力2、掌握定时器产生pmw信号的方法3、掌握中断系统的复杂使用二、实训内容对led亮度分成10级显示,当接收到字符“0”时,亮度为最低,即熄灭,接
14、收到字符“1”时,显示为1级亮度,当接收到“9”时,亮度最大。各级亮度自行定义,能区分即可。三、实训设备一组设备为:普通pc 、嵌入式系统实验板四、程序流程图uart初始化定时器匹配中断初始化初始化gpio口uart0中断接受字节定时器匹配中断服务程序等待中断 图6五、程序代码 #includeincludes.h#includekey.hvoid _irq timer0match(void) unsigned char ir = t0ir; if(ir&0x02) io0clr = 1ul3; t0ir = 11; vicvectaddr = 0;int main(void) unsigne
15、d char keyin; pinsel0 = pinsel0 & (3ul6); io0dir = io0dir | (1ul3); io0clr = 1ul3; t0pr = 1382; t0mr1 = 1000; t0mcr = 1ul0 | 1ul1 | 1ul3; t0tcr = 1ul1; t0tcr = 1ul0; vicintselect = vicintselect & (1ul4); vicvectcntl6 = 0x20 | 0x04; vicvectaddr6 = (unsigned int)timer0match; vicintenable = 1ul4; key_i
16、nit(); while(1) keyin = key(); switch(keyin) case 1:t0mr1=875; break; case 2:t0mr1=750; break; case 3:t0mr1=625; break; case 4:t0mr1=500; break; case 5:t0mr1=375; break; case 6:t0mr1=250; break; case 7:t0mr1=125; break; case 8:t0mr1=0; break; default:break; 第六阶段 led亮度的自动控制一、实训目的1、掌握程序联合调试的能力2、掌握lpc21xx系列ad的使用3、掌握闭环系统的控制方法二、实训内容使用一个光敏电阻做光传感器,当外界光亮度发生变化时,led的亮度能随之发生相应的变化,以保持足够的对比度。光越强,led亮度越高,光越低,led越暗。三、实训设备一组设备为:普通pc 、嵌入式系统实验板四、程序流程图ad采集数据更改定时器匹配值控制亮度 gpio初始化匹配中断初始化ad模式初始化 等待定时器中断图7五、程序说明该实训是通过光敏电阻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度网络安全防护系统保证金协议
- 二零二五年度土地储备与民间土地买卖协议
- 农村集体所有鱼塘2025年度生态养殖合作协议
- 养殖场土地租赁合同(2025年度)农业资源合作
- 二零二五年度施工安全风险评估协议
- 二零二五年度石材电商平台数据共享与合作协议
- 2025年度航空航天股份转让免责协议
- 2025年度青少年素质教育中心教师聘用与课程设计合同
- 二零二五年度旅游行业导游聘用劳动合同
- 大连市2025年度租赁房屋合同解除通知
- 《人力资源管理》全套教学课件
- 部编人教版语文小学六年级下册第四单元主讲教材解读(集体备课)
- (2024年)师德师风学习内容教师师德师风培训内容通用多篇
- GB/T 3452.3-2005液压气动用O形橡胶密封圈沟槽尺寸
- 国际形式发票模板
- 山西省会计师事务所服务收费标准(汇编)
- 陕西延长石油(集团)有限责任公司企业年金方案
- 常用伪装方法组训方案
- 绩效工资的计算与考核
- 浅谈干熄炉预存室压力调节与控制
- 医废收集人员培训
评论
0/150
提交评论