第7章+电脑自动打铃器设计与实现.ppt_第1页
第7章+电脑自动打铃器设计与实现.ppt_第2页
第7章+电脑自动打铃器设计与实现.ppt_第3页
第7章+电脑自动打铃器设计与实现.ppt_第4页
第7章+电脑自动打铃器设计与实现.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机自动铃声器的设计与实现,December,2007,绪论,计算机自动铃声器的设计与实现,在深入学习了ARM7TDMI架构,LPC2000系列ARM,C/OS-II微内核的分析和程序设计的基础之后,我们已经开始了嵌入式系统本章结合作为具体实例的计算机自动铃声描述了嵌入式应用系统的工程方法。产品目录、设计要求、任务设计、硬件设计、程序设计、计算机自动铃机设计与实现、设计要求、系统功能、系统框图、设计要求|计算机自动铃机设计与实现、系统功能、实时时钟功能,可显示时分秒,年月日(用8位数字管表示) 还具备键盘输入功能,可以设置多个闹钟,并且闹钟的禁止和许可可以设定闹钟发生时的输出动作(全部可以独立设定四路输出、各路输出的时间和电平状态),设计要求|计算机自动铃的设计和实现,系统框图、 LPC2000系列ARM具有RTC功能,在RTC停电后仍可使用电池继续运行,从而保证了系统停电后钟表的准确性。 ZLG7290是键盘和LED驱动芯片,最多支持64个键和8个公共数字代码管道。计算机自动铃声器设计与实现、硬件设计、键盘显示电路、输出控制电路、硬件设计|计算机自动铃声器设计与实现、键盘显示电路、本设计实例基于SmartARM2200A工程开发平台实现。 SmartARM2200A工程开发平台提供I2C0接口,可与PACK板“PanelModuleZYPM7290”连接,构成键盘显示电路,硬件电路和连接方法请参考附带教材。 另外,硬件设计|电脑自动铃声的设计与实现,输出控制电路,图为输出控制模拟电路,实用上可能需要控制继电器等。 计算机自动铃声器设计与实现、任务设计、任务划分、任务数据结构设计、任务优先级设计、多任务同步与排他、多任务信息传递、任务设计|计算机自动铃声器设计与实现、任务划分、嵌入式应用系统的“任务划分”实时OS 对于、以CPU为中心的“关键”功能、“紧迫”功能、消耗机,关系密切,相同的事件触发、运行周期相同,按一定顺序执行,任务分类原则如下:首先,以CPU为中心的各种输入输出设备(或端口) 的相关功能分为各自独立的任务,发现“关键”功能,将其最“关键”部分“剥离”,用一个独立的任务(或ISR )完成,其馀部分用不同的任务实现,两者之间通过通信机制进行交流,发现“紧迫”功能。 “剥离”最“紧迫”的部分,在一个独立的高优先级任务(或ISR )中完成,其馀部分在另一个任务中实现,两者之间通过通信机制进行交流,区分耗电量大的数据处理功能,封装在低优先级任务中的“关键”和“紧迫”功能以“紧迫”功能处理,结合几项密切关系的功能作为一项任务,达到功能聚合的效果,结合同一事件触发的几项功能作为一项任务,免除事件分发机制,组合执行周期相同的功能作为一项任务,时间事件以一定顺序执行的几项功能结合一项任务消除了同步继电器通信的麻烦,任务设计|计算机自动铃机设计与实现,任务划分,计算机自动铃机任务划分如下:计算机自动铃机具有键盘输入功能,能够将钟表和闹钟电脑的自动铃声需要显示时钟和闹钟的显示功能,因此需要显示任务。 为了响电脑的自动铃声,需要从闹钟时刻开始控制各道路输出的输出控制任务。 电脑的自动触发器具有实时时钟功能,需要RTC中断。任务设计|计算机自动铃器设计与实现、任务优先级设计、人机接口、实时性低、控制接口、实时性高、任务设计|计算机自动铃器设计与实现、任务优先级设计、优先级: 6、优先级: 12、优先级: 13、任务设计计算机自动铃机设计与实现、任务的数据结构设计,对于任务,除其代码(任务函数)外,还有相关信息。 为了保存这些信息,必须设计与任务相对应的一些数据结构。 任务所需的数据结构分为两类。 一种是操作系统的数据结构,另一种是与操作系统无关的数据结构。 任务数据结构,任务设计|计算机自动铃机设计与实现,任务数据结构设计,与操作系统相关的数据结构,任务想在操作系统的管理下工作,首先必须制作。 在C/OS-II中,任务创建函数的原型是:、任务设计|计算机自动铃声器设计与实现、任务的数据结构设计、计算机自动铃声器应用中,我们设计了三个任务(键盘任务、显示任务和输出控制任务) 与操作系统相关数据结构定义如下: #defineTASKKEY_ID12/键盘任务的id # defineetaskey _ pritaskkey _ id/定义键盘任务的优先级# defineetaskey _ stack 定义键盘任务堆栈大小#defineTASKDISP_ID13/定义显示任务的id # defineetaskdisp _ pritaskdisp _ id/定义显示任务的优先级# defineetaskdisp _ stack _ size 512/定义显示任务的大小#defineTASKCTRL_ID6/定义控制任务的id # defineetaskctrl _ pritaskctrl _ id/定义控制任务的优先级# defineetaskctrl _ stack _ size 512/控件/键盘任务堆栈OS _ stktaskdisstk task disp _ stack _ size ; /显示任务的堆栈OS _ stktaskctrlstk task ctrl _ stack _ size ; /显示定义控制任务的任务voidTaskKey(void*pdata) /键盘任务声明voidTaskDisp(void*pdata) /任务声明voidtaskctrl (void * pdata )/控制任务声明、任务设计| 计算机自动铃声器设计与实现、任务的数据结构设计、与操作系统无关的数据结构、计算机自动铃声器具有时钟和闹钟功能,我们必须首先构建这两个数据结构。 定义如下:时钟结构定义structtimeunsignedcharucHour; /时unsignedcharucMin; unsignedcharucSec; /秒unsignedcharucWeek; /周unsignedshortusYear; /年unsignedcharucMon; /月unsignedcharucDay; /日typedefstructtimeTIME; typedefTIME*PTIME; 闹钟的结构定义structalarmunsignedcharucHour; /时unsignedcharucMin; unsignedcharucSec; /秒unsignedcharucEnable; /闹钟是structunsignedshortusLevel; /输出电平控制unsignedshortusTime; /输出时间控制c4; /4路输出控制typedefstructalarmALARM; typedefALARM*PALARM; 时钟和警报全局变量#defineMAX_ALARM4/定义最大警报数TIMEGtimeCurrentTime时钟全局变量ALARMGalarmRingTimeMAX_ALARM; /闹钟全局变量、任务设计|计算机自动铃的设计和实现,将键盘任务分为两个任务,以说明多任务之间的同步和排他以及问题。 一个使用键盘扫描任务同步,另一个使用键盘处理任务同步,两个使用消息邮箱同步。 行为同步,发送键值消息,接收键值消息,扫描键盘扫描任务,向消息箱发送键值消息键盘处理任务必须及时处理键值消息,两者之间同步继电器在任务设计|计算机自动铃声器设计和实现、多任务同步和排他、资源排他和计算机自动铃声器设计中,ZLG7290通过I2C总线连接到LPC2000,I2C总线是键盘任务和显示任务共享资源,并且按照资源排他原则进行访问申请I2C资源,申请I2C资源,释放I2C资源,释放I2C资源,通过、任务设计|计算机自动标签的设计与实现、多任务之间的信息传输、全局变量、任务的数据结构设计,实现钟表和闹钟两种数据结构查看键盘任务、任务和RTC中断,并通过它们传递信息。 另外,任务设计|电脑自动铃声的设计与实现,在多任务间的信息传递、信息包、RTC中断检测警报、警报到达时向输出控制任务发送控制信息,在本设计例中使用信息包。发送控制消息、接收控制消息、人机接口设计、键盘任务、主函数、显示任务、RTC中断、输出控制任务、计算机自动铃机设计与实现、程序设计、程序设计|计算机自动铃机设计与实现、人机接口设计与实现8位数字管的显示能力有限,只能用按钮分割画面显示。 显示画面定义如下:时钟模式: 12点59分59秒星期一:程序设计|计算机自动铃声器设计和实现,人机界面设计对于具有人机界面的应用系统来说,首先人机界面是如何8位数字管的显示能力有限,只能用按钮分割画面显示。 显示画面定义如下:时钟模式: 2007年12月12日:程序设计|计算机自动铃声器设计和实现,人机界面设计对于拥有人机界面的应用系统来说,首先需要考虑的是人机界面的设计8位数字管的显示能力有限,只能用按钮分割画面显示。 显示画面定义如下:闹钟模式: a是闹钟,0是最初的闹钟,闹钟时间08:30:00,程序设计|计算机自动铃的设计和实现,人机界面设计具有人机界面的应用系统8位数字管的显示能力有限,只需用按钮分割画面进行显示,显示画面定义如下:闹钟模式:闹钟使能控制(e使能、d禁止),从左到右,最初为总开关,接下来为星期六0(分别对应星期日星期一)的开关。、程序设计|计算机自动铃机设计与实现、人机接口设计对于具有人机接口的应用系统来说,应该首先考虑人机接口的设计。 8位数字管的显示能力有限,只能用按钮分割画面显示。 显示画面定义如下:闹钟模式: c是通道,0是第一通道(每个闹钟4通道),H/L是输出的高低电平控制,接着是输出时间控制,最大9999秒。 根据,程序设计|计算机自动铃器设计和实现,人机界面设计,上述分析,计算机自动铃器具有钟表和闹钟模式,钟表和闹钟模式各有不同的显示内容,闹钟模式有几种不同为了修正钟表和闹钟的设定,需要使光标闪烁来催促用户修正,因此定义了以下全局变量:unsignedintGuiMode=0; /模式(时钟和闹钟模式) unsignedintGuiCursor=8; /光标(闪烁位置提示) unsignedintGuiIndex=0; /索引(不同警报) unsignedintGuiItem=0; /条目(钟表和闹钟的内容)按钮处理灵活,可以自己设计。 在编程|计算机自动铃声的设计与实现、主函数、编程讲义中,首先阐述主函数。 主函数初始化操作系统,创建键盘任务,最后启动多任务操作系统。程序如下:intmain(void)OSInit () : 初始化uC/OS-II创建键盘任务/代码可以查看配套教材OS start ()/启动多任务return(0) 、程序设计|计算机自动铃的设计和实现,20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 初始化I2C0总线接口并设置中断,然后创建用于警报触发器输出控制任务的消息框GmboxRingCtrl,然后初始化RTC并设置中断最后创建显示和输出控制任务,进入周期性循环键盘任务解释按钮,设置时钟和闹钟。目标板初始化、I2C0初始化、消息邮箱GmboxRingCtrl、RTC初始化、创建显示任务和输出控制任务、任务周期、程序设计|计算机自动铃的设计和实现、显示任务、显示任务刷新显示接口流程图如下:显示任务周期性输出全局变量的信息(时钟和闹钟),100ms是经验值,用户比较舒适,不会引起“系统恐慌”。 程序设计|计算机自动标签的设计和实现、输出控制任务、输出控制任务首先初始化输出控制端口,默认情况下为高

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论