资源描述:
《嵌入式系统及应用课程设计报告092031409》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式系统及应用课程设计报告系别电子与电气工程专业电子信息工程班级0920314学号092031409姓名指导教师完成时间2013.01.06评定成绩-5-第页嵌入式系统及应用课程设计报告一、设计目的1、学会基于ARM与Linux的嵌入式程序开发,学会编写Makefile;2、熟练使用LED、数码管、键盘等基础硬件,掌握它们的编程方法;3、练习C语言编程,初步具备C项目开发经验。二、设计目标与要求利用Linux系统的交叉编译环境,设计程序,在ARM嵌入式系统实验箱上(主要使用LED、蜂鸣器、数码管、键盘)模
2、拟一个“定时炸弹”。开始时刻,数码管显示“60”,蜂鸣器不响,8个LED全灭。接着,数码管从“60”开始倒计时,当计时到“00”时:蜂鸣器长时间响起;8个LED灯轮流点亮8次,最终全亮。这种状态一直持续到按下“确认”键(键盘上的“E”键)才结束,然后重新开始上述过程。三、设计方案首先熟悉ARM实验箱,挑选出这些实训所需要的模块并熟悉,然后开始分模块按顺序进行编写程序,先编写LED/蜂鸣器模块的子程序实现控制蜂鸣器的开关和8个LED灯轮流点亮8次,最终全亮;然后是数码管模块的子程序实现从60开始倒数计时到0;
3、而后是编写键盘等模块实现扫描键盘,如有按键,返回键值,当“确认”键(E)按下时执行的功能。最后编写实现主函数,引用前面几个步骤编写形成的子函数源文件,调用子函数实现本课程设计要求的整体功能。四、软硬件设计1、LED/蜂鸣器模块实验箱有8只发光二极管:D501~D508,和一只蜂鸣器U502。发光二极管使用八个ARM处理器IO口来控制其亮灭。另外使用一个IO来实现对蜂鸣器的控制。LED/蜂鸣器模块内部结构-5-第页LED主程序-5-第页intLed_Active(intiswork){inti,c;port_
4、write(S3C2440_PIO_PJ5,iswork);port_write(S3C2440_PIO_PJ7,iswork);printf("on!r");for(c=0;c<8;c++){port_write(S3C2440_LED1,1);port_write(S3C2440_LED2,0);for(i=0;i<0x200000;i++);port_write(S3C2440_LED1,0);port_write(S3C2440_LED2,1);for(i=0;i<0x200000;i++);
5、port_write(S3C2440_LED2,0);port_write(S3C2440_LED3,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED3,0);port_write(S3C2440_LED4,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED4,0);port_write(S3C2440_LED5,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED
6、5,0);port_write(S3C2440_LED6,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED6,0);port_write(S3C2440_LED7,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED7,0);port_write(S3C2440_LED8,1);for(i=0;i<0x200000;i++);}for(i=0;i<0x200000;i++);port_write(S3C2440_
7、LED1,1);port_write(S3C2440_LED2,1);port_write(S3C2440_LED3,1);port_write(S3C2440_LED4,1);port_write(S3C2440_LED5,1);port_write(S3C2440_LED6,1);port_write(S3C2440_LED7,1);port_write(S3C2440_LED8,1);printf("off!r");return0;}-5-第页-5-第页蜂鸣器主程序-5-第页intbsp_ini
8、t(void);intmain(intargc,char*argv[]){bsp_init();inti;printf("on!r");port_write(S3C2440_BELLCTRL,1);for(i=0;i<0x10000000;i++);port_write(S3C2440_BELLCTRL,0);printf("off!r");return0;}intbsp_init(void){ope