




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式控制系统课程设计报告 学 院 专业班级 姓名 学号 指导教师 _目录摘要4Abstract4引言5带中断LED数码管驱动程序设计61.设计内容61.1 基本功能61.2 扩展功能61.3创新功能62.实验设备63.设计功能块说明64.设计原理74.1 LED发光原理74.2 八位LED显示器85. 实验步骤85.1 驱动程序加载85.2 添加控件85.3基本功能的实现95.4 使用指南106. 实验结果106.1 基本功能实现结果106.2 LED数码管清零功能实现结果116.3 中断计数功能实现结果126.4 频率设置功能实现结果137. 心得体会14附录16摘要 通过嵌入式控制系统课程的学习并结合本次课程设计,了解嵌入式系统的开发方法和流程,熟悉Intel XScale硬件平台及其应用处理机的使用方法,熟悉Windows CE嵌入式系统的基本原理、概念。能针对Intel XScale硬件平台、应用需求自行定制、优化WinCE操作系统,并独立编写可在Intel XScale嵌入式设备上运行的应用程序。本课程设计主要实现了LED数码管的驱动程序,中断计数功能、LED显示清零功能、LED数字显示频率设置的功能。关键字:WINCE 中断 数码管驱动AbstractLearning Embedded Control Systems and combining the curriculum design can help us understand the Embedded Control Systems development methods and processes, and be familiar with Intel XScale Hardware platform and its usage. Know well the basic principles and concepts about WINCE. Design and optimize Windows Embedded Compact and compose Application software program that can operate on the Intel XScale Hardware platform.The main achievement of the curriculum design are drivers for LED, Interrupt Count, clean the results of the LED and set up the display frequency of the LED.Key words: WINCE Interrupt Digital Driving引言 随着芯片技术和电子产品智能化的飞速发展,嵌入式技术越来越受到人们的关注,应用领域几乎遍及所有的电子产品:智能机器人、网络通信、军用设备、汽车导航、环境保护、智能仪器等等。嵌入式系统不仅融合了计算机软、硬件技术、通讯技术和半导体微电子技术,而且针对实际应用系统要求,将相应的计算机直接嵌入到应用系统中,并可针对应用需求对软、硬件进行优化、裁减。 嵌入式控制系统是一门新兴的课程,通过本次课程设计可以更好地掌握这门新技术,对今后的发展有很大帮助。带中断LED数码管驱动程序设计1. 设计内容1.1 基本功能1. 实现PXA270-EP 目标板上的LED 数码管循环显示数字2,4,6,8;2. 实现LED数码管数字的静态显示;3. 通过GPIO控制发光二极管的不同工作状态。1.2 扩展功能使用实验箱上的按键实现LED数码管的清零工作,进一步扩展了基本功能。1.3 创新功能1. 通过编写程序实现对中断次数的计数功能;4. 通过中断功能实现对2,4,6,8数字循环显示频率的更改。2. 实验设备1、GX-PXA270EP 实验箱2、装有windows XP的PC3. 设计功能块说明该课程设计主要是有4个功能模块组成:LED 数码管循环显示数字2,4,6,8和数码管的静态显示、LED数码管显示数字清零、中断次数计数、更改2,4,6,8数字循环显示频率,通过这四个功能模块的实现加深对嵌入式控制系统的认识和理解。了解嵌入式系统的开发方法和流程,熟悉Intel XScale硬件平台及其应用处理机的使用方法,熟悉WINCE嵌入式系统的基本原理、概念。4. 设计原理4.1 LED发光原理LED(Light Emitting Diode),即发光二极管。是一种半导体固体发光器件。它是利用固体半导体置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,如图1,在P型半导体和N型半导体间有一个过渡层,称为P-N结。在某些半导体材料的P-N结中,注入的少数载流子与多数载流子复合时,会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。P-N结加反向电压,少数载流子难以注入,故不发光。利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。图1 发光二极管的核心组成部分4.2 八位LED显示器八段LED显示器(见图2)由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。图2 八位LED显示器内部原理图5. 实验步骤5.1 驱动程序加载任何简单的硬件在操作系统上调用时都需要驱动程序,数码管也不例外。由于时间的限制,本次课程设计的开发板上的flsh里面已经烧录了加载驱动的WinCE操作系统,所以只需要打开相应的EVC开发软件开发即可。5.2 添加控件因为本次课程设计有四个功能模块,需要三个显示控件,一个用于循环显示静态数码管需要显示的数字,一个用于显示中断次数,最后一个则用于显示更改数码管循环显示的频率。见图3控件设计图。图3 控件设计图其中,显示按钮是作为数码管静态显示的按钮,如显示1235;亮、灭、闪烁这三个按键是通过GPIO控制发光二极管的状态;测试按键是实现2,4、6、8数码管循环动态显示的按钮;复位按键是实现中断次数清零功能的按钮;Apply按键是启动更改的循环显示周期的按键。以上就是整个课程设计的全部控制界面,通过不同的按钮操作,实现不同的功能。5.3基本功能的实现windowsCE是一个界面友好的嵌入式操作系统,系统提供了丰富了控件,极大的方便了用户的开发。C+是优秀的编程语言,在EVC环境下,编写的难度大大降低,尤其是界面的处理。由于实验平台提供了相应的驱动程序,所以本次实验并不需要了解其硬件操作,大大缩短了一个嵌入式应用的开发速度。通过本次嵌入式实验的操作,初步掌握了嵌入式软件开发的流程,对操作系统的裁剪、移植、应用软件的开发有了更加深入的理解。5.4 使用指南1. 启动PC机,打开编写好的软件;2. 在显示框中输入想要LED显示的数字,然后按显示按钮即可;3. 通过点击亮、灭、闪烁这三个按键实现发光二极管的不同工作状态的切换;4. 通过点击测试按键实现2,4、6、8数码管循环动态显示;5. 通过复位按键实现中断次数清零的功能;6. 通过设置闪烁周期(09),点击Apply按键启动更改的循环显示周期。6. 实验结果6.1 基本功能实现结果基本功能主要包括数码管的静态显示和2、4、6、8数字的循环显示,见图4和图5图4 数码管静态显示画面图5 LED数码管循环显示2,4,6,76.2 LED数码管清零功能实现结果通过控制面板上的操作按键,实现清零功能,当按键按下去之后,四个LED数码管的显示数字全部都会变为零。见图6图6 数码管清零结果6.3 中断计数功能实现结果中断计数功能的实现是通过实验箱上的按键实现的,每按一次按键,中断次数就会加一,通过控件上的复位按钮可以实现中断次数清零功能。见图7.图7 中断计数功能实现结果6.4 频率设置功能实现结果闪烁周期可以通过键盘输入来进行设置,本课程设计设置的为09之间,基值为100ms,通过改变闪烁周期来控制2、4、6、8循环显示的频率。见图8.和图9.图8 闪烁周期为5时的结果图9 闪烁周期为9时的结果7. 心得体会WINCE是一个界面友好的嵌入式操作系统,系统提供了丰富了控件,极大的方便了用户的开发。C语言是优秀的编程语言,在EVC环境下,编写的难度大大降低,尤其是界面的处理。由于实验平台提供了相应的驱动程序,所以本次实验并不需要了解其硬件操作,大大缩短了一个嵌入式应用的开发速度。通过本次嵌入式实验的操作,初步掌握了嵌入式软件开发的流程,对操作系统的裁剪、移植、应用软件的开发有了更加深入的理解。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于解决。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后进行解决,。课设中我们不仅培养了独立思考、动手操作的能力,也增强了我们的团队协作能力。有什么不懂不明白的地方要及时请教老师或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。附录程序清单/ ledDlg.cpp : implementation file#include stdafx.h#include led.h#include ledDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CLedDlg dialogCLedDlg:CLedDlg(CWnd* pParent /*=NULL*/): CDialog(CLedDlg:IDD, pParent)/AFX_DATA_INIT(CLedDlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CLedDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CLedDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CLedDlg, CDialog)/AFX_MSG_MAP(CLedDlg)ON_BN_CLICKED(IDC_BUTTON_SET, OnButtonSet)ON_WM_DESTROY()ON_BN_CLICKED(IDC_BUTTON_ON, OnButtonOn)ON_BN_CLICKED(IDC_BUTTON_OFF, OnButtonOff)ON_BN_CLICKED(IDC_BUTTON_FLASH, OnButtonFlash)ON_WM_TIMER()ON_BN_CLICKED(IDC_BUTTON_TEST, OnButtonTest)ON_BN_CLICKED(IDC_BUTTON_RESET, OnButtonReset)ON_BN_CLICKED(IDC_BUTTON_APPLY, OnButtonApply)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CLedDlg message handlersBOOL CLedDlg:OnInitDialog()CDialog:OnInitDialog();/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small iconCenterWindow(GetDesktopWindow();/ center to the hpc screen/ TODO: Add extra initialization herem_hDev = CreateFile(_T(LED2:),GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);if(m_hDev = INVALID_HANDLE_VALUE)AfxMessageBox(_T(打开设备失败);m_hDev2 = CreateFile(_T(GIO1:),GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);if(m_hDev2 = INVALID_HANDLE_VALUE)AfxMessageBox(_T(打开设备失败);m_hDev3 = CreateFile(_T(KEY1:),GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);if(m_hDev3 = INVALID_HANDLE_VALUE)AfxMessageBox(_T(打开设备失败);m_test=false;m_flash=false;n=0;ntime=0;flashtime=5;SetTimer(1,100,NULL);return TRUE; / return TRUE unless you set the focus to a controlvoid CLedDlg:OnButtonSet() / TODO: Add your control notification handler code hereBOOL b;BYTE data4;DWORD bytes;/KillTimer(1);m_test=FALSE;UINT val =GetDlgItemInt(IDC_EDIT_NUM,&b,FALSE);memset(data,0,4);if(b)int i,n;char str16;n = sprintf(str,%d,val);n = n 4 ? 4:n;for(i=0;i= flashtime)if(m_flash=TRUE)m_bValue=!m_bValue;WriteFile(m_hDev2,&m_bValue,4,&m_dwBytes,NULL);if(m_test=TRUE)memset(data,0,4);for(i=0;i4;i+)datai=ledfonttest(i+n)%4;n+;n=n%4;WriteFile(m_hDev,data,4,&bytes,NULL);ntime = 0;if(ReadFile(m_hDev3,&val,sizeof(val),&bytes,NULL)if(val!=oldval)SetDlgItemInt(IDC_EDIT_INTERRUPT,val,FALSE);oldval=val;m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市人民医院肝脏穿刺活检术操作医师资质认证考核
- 绥化市人民医院关节镜检查配合技能考核
- 中国混凝土界面剂项目创业计划书
- 晋城市人民医院感染科护理文书考核
- 天津市中医院电梯困人应急救援流程实操考核
- 鄂尔多斯市人民医院工作场所监测考核
- 中国烯虫酯项目商业计划书
- 2025年邢台点胶设备项目可行性研究报告
- 房地产项目可行性分析报告案例
- 中国玻璃密封胶项目商业计划书
- 湖南省九校联盟2026届高三上学期9月第一次联考历史试题(含答案)
- 2025年高压电工复审完整题库(附答案)
- 建设工程监理合同(GF-2015-0212)2025版
- 《老人与海(节选)》课件+2025-2026学年统编版高二语文选择性必修上册
- 2025年高考真题分类汇编选择性必修一 《当代国际政治与经济》(全国)(解析版)
- 高职院校校企合作实习管理方案
- 主题活动四 健康友谊助成长说课稿-2025-2026学年小学综合实践活动苏少版新疆专用2024三年级上册-苏少版(新疆专用2024)
- 买卖合同司法解释解读
- 2025贵州民航产业集团有限公司招聘120人考试参考题库及答案解析
- 北京市东城区2024-2025学年八年级上学期期末考试英语试题
- 光伏电站安全培训课件
评论
0/150
提交评论