毕业设计论文基于S08AWAC60的学习装置设计

上传人:痛*** 文档编号:144267567 上传时间:2022-08-27 格式:DOC 页数:46 大小:3.03MB
收藏 版权申诉 举报 下载
毕业设计论文基于S08AWAC60的学习装置设计_第1页
第1页 / 共46页
毕业设计论文基于S08AWAC60的学习装置设计_第2页
第2页 / 共46页
毕业设计论文基于S08AWAC60的学习装置设计_第3页
第3页 / 共46页
资源描述:

《毕业设计论文基于S08AWAC60的学习装置设计》由会员分享,可在线阅读,更多相关《毕业设计论文基于S08AWAC60的学习装置设计(46页珍藏版)》请在装配图网上搜索。

1、2009届毕业生毕业论文题 目: 基于S08 AW/AC60的学习装置设计 院系名称: 电气工程学院 专业班级: 自动0504 学生姓名: 学 号: 4 指导教师: 教师职称: 教 授 2009 年 6 月 05 日IV摘要微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码阅读器扫描器、消费类电子、游戏设备、电话、楼宇安全与门禁控制、工业控制与自动化和白色家电等。而目前居于世界8位微控制器市场第一位的是摩托罗拉(现飞思卡尔)微控制器

2、,其性能优越,内部模块功能多,可应用于广泛的对功耗要求极为严格的领域。随着飞思卡尔在中国市场战略的推进及其大学计划的实施,享誉全球的飞思卡尔系列微控制器以其优越的性能已被越来越多的教学机构、工程技术人员所熟悉和采用。本次设计采用飞思卡尔公司生产的8位高级MCU S08AW60设计一个微控制器实验装置,以S08AW/AC60为核心,建立最小化系统的中心系统,该实验装置能够有效地投入实验室使用,在这个实验装置上面有显示、键盘、书模转换、数字输入输出、PWM等功能模块。可以完成显示、输入、输出、PWM、电子闹钟等基本功能。 关键词:微控制器;S08;实验装置;设计Title Design of th

3、e Experimental Devices Based on the New S08 MCUAbstractThe main part of Microcontroller is integrated micro-computer chip into a single-chip micro-computer. Microcontroller was born in the mid-20th century 70, In the past 20 years of development, the cost becoming less and less, and more and more po

4、werful performance, which makes the application of them has been everywhere, across all fields. For example, motor control, barcode reader / scanners, consumer electronics, game equipment, telephone, building security and access control, industrial control and automation and white home appliances an

5、d so on. Now,The market share of the first all arornd world abuou 8-bit microcontroller is the first Motorola (now Freescale) microcontroller, and its superior performance and many internal modules and can be applied to a wide range of very stringent requirements on power consumption of the field. W

6、ith strategy market of Freescale in China and its universities to promote the implementation of the plan, It is weeks abourt Freescale family of microcontrollers for its superior performance has been familiared with and used by more and more teaching institutions, Engineering and technical personnel

7、.The design produced by Freescale 8-bit High MCU S08AW60 experimental design of a microcontroller device to S08AW/AC60 as the core of the system to establish the center of the smallest systems, the experimental apparatus can be effectively used in the laboratory, in The experimental apparatus is dis

8、played above, keyboard, book-to-analog converter, digital input and output, PWM module and other functions. Can be shown that input and output, PWM, electronic alarm clock and other basic functions.Keywords: microcontroller; S08; experimental devices ;Design目 次 1 绪论11.1 微控制器概述11.2 飞思卡尔8位微控制器21.3 微控制

9、器的国内外发展现状32 方案论证32.1 微控制器的选择42.2 显示模块的选择42.3 键盘输入选择43 验装置原理与方案设计43.1 S08微控制器结构及原理43.1.1 S08AW特性53.1.2S08AW结构53.2软件调试的选择73.3总体法案设计概述74 硬件设计84.1S08AW60核心电路设计84.2键盘输入电路设计104.3显示电路设计114.4数字量输入输出电路135 软件程序设计145.1 键盘输入程序设计145.2显示程序设计185.3 小灯亮度的PWM控制设计205.4模数转换程序设计225.5通用数字I/O控制设计246电子闹钟设计266.1电子闹钟设计原理276.

10、2电子闹钟软件设计27结论29致谢30参考文献31附录一:S08AW60芯片图33附录二:基于S08AW60的电子闹钟原理图34附录三:电子闹钟参考程序351 绪论1.1 微控制器概述微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码阅读器扫描器、消费类电子、游戏设备、电话、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。微程序控制的基本思想,就是仿照通常的解题程序的方法,把所有的控制命令信号汇集在一起编码成所谓

11、的微指令,再由微指令组成微程序,存放在一个EPROM里。系统运行时,一条又一条地读出这些微指令,产生执行部件所需要的各种控制信号,从而驱动执行部件进行所规定的操作1。微控制器可从不同方面进行分类:根据数据总线宽度可分为8位、16位和32位机。Intel公司作为最早推出微处理器的公司,同样也是最早推出微控制器的公司。继1976年推出MCS-48后,又于1980年推出了MCS-51,为发展具有良好兼容性的新一代微控制器奠定了良好的基础。在8051技术实现开放后,Philips、Atmel、Dallas和Siemens等公司纷纷推出了基于80C5l内核的微控制器。微程序控制技术可代替直接由硬件连线的

12、控制技术。由于微程序控制方法规整性好,灵活方便,通用性强,因此在大型复杂的数字系统设计中广泛应用,成为控制器的主流设计方法。MCU主要用于输入输出控制。通常嵌入某一具体的产品或装置之中,例如智能冰箱、电子字典、汽车安全气囊及倒车雷达等,所以又称为嵌入式控制器,一般由MCU构成的嵌入式控制系统应具有实时、快速的外部响应,能迅速采集到所需的数据,并在确定的时间内作出逻辑判断与推理后实现对被控制对象的参数调整与控制。当今的MCU从功能和形态上已不同PC,它更多的是以一种智能化的产品形式出现。MCU以其功能强、体积小、可靠性高、面向控制及价格低廉等一系列优点,已渗入到人们工作和生活的各个角落,几乎是无

13、所不在,无所不为,牢固树立了其在生产和生活中的霸主地位。MCU的应用已从面向工业控制、通信、交通及智能仪表等迅速发展到面向家用消费产品、办公自动化、汽车电子、PC外设以及网络通信等广大领域2。1.2 飞思卡尔8位微控制器在汽车领域,嵌入式控制系统被喻为汽车的心脏。汽车工业的迅猛发展,使车载电子装置的应用日趋普及。全球汽车半导体市场持续增长,2005年达到171亿美元。据StrategyAnalytics预测,2008年全球汽车半导体市场收入将达到200亿美元。目前,中国市场平均每辆车的电子装置占整车制造的成本也在不断增加,中国汽车电子市场潜力巨大,其中,中国汽车微控制器(MCU)的市场需求量将

14、在2008年达9100万个,市场需求额将达42.83亿元。MCU的汽车市场空间。飞思卡尔半导体公司源于著名的Motorola公司,是目前全球领先的半导体公司之一,它为汽车电子、消费电子、共轭控制、网络和无线市场设计并制造了众多的嵌入式半导体产品,拥有多大19000种产品系列,飞思卡尔在8位MCU市场排名第一,同时在车用8位MCU领域也是排名第一的供应商。飞思卡尔有超过20年的汽车电子经验,从6801、68HC05、68HC11、68HC08到如今的S08,是业界最大供货量的供应商,当今超过50的车用8位MCU来自飞思卡尔,其车用MCU的出货量已超过10亿。飞思卡尔在业内提供最高质量的FLASH

15、存储器,从上世纪90年代开始有超过1亿嵌入式闪存支持超高可靠性市场。飞思卡尔汽车电子具有严格的质量标准。每个飞思卡尔汽车微控制器都经过验证,可以适用于特别复杂的汽车环境,其所具备的合格性包括适应一个广泛的温度范围和汽车测试流程。飞思卡尔具备质量零缺陷定位,追求产品的领先和生产工艺、质量体系等多方面精益求精,创造零缺陷的质量管理体系。因此,可以满足汽车电子产品运行环境及苛刻的要求(如-40+120),保证足够的可靠性和稳定性3。Freescale半导体公司的8位S08微控制器有以下特点:1) 技术成熟、高可靠、高性能、抗干扰和电磁兼容性强、内部资源丰富,且种类齐全,选择余地大,新产品多;2) 开

16、发技术先进且费用低廉,可提供免费的集成开发环境和开发调试器;3) 支持C高级语言开发,并进行了硬件和软件优化,效率较高;4) 可平滑完成从8位MCU到32位MCU核心的转移,他们的引脚兼容,开发环境不变。在多年从事嵌入式微控制器的科研、教学以及应用系统开发的工程当中,许多工程师和教师一直采用在国际高可靠MCU市场上占有领先水平的Freescale S08微控制器。1.3 微控制器的国内外发展现状MCU是微电子技术和集成电路IC(Integrated Circuit)技术迅速发张的结晶,它除了在一块芯片内高度集成了中央处理单元、存储器和外设接口外,近年来,位满足高速控制领域应用的要求,又着力在片

17、内增加了各种功能,如A/D、PWM、计数器、高速I/O及无线通信协议等。MCU已从20世纪80年代的8位独大机发展到了今天的8位、16位、32位并存的局面。MCU的嵌入式市场应用繁多,需求千差万别,工业机器人、车载信息系统、住宅网关、IP电话、IP摄像头及便携式医疗设备等全如是市场的应用不胜枚举。这些应用的需求差别巨大,不是一两个IC厂商、几款芯片能搞定的。Intel公司擅长于做开放性的PC市场,即具有很多共同点的CPU市场;而对于嵌入式市场千变万化的需求,要满足定制性的要求,并不是该公司的特长,嵌入式系统的市场特点决定了需要众多IC公司的参与。实际上80年代中期,Intel公司就放弃了MCU

18、的研发和生产,将技术转给了其他厂商。当前,MCU种类繁多,至少有上千种,几乎每星期都有新芯片产生。全世界已有几十家MCU生产商,研制的不同版本、类型的MCU亦如雨后春笋般涌现。全球MCU市场大致可划分位三个地理区域:美国/欧洲、日本/韩国以及中国大陆和台湾地区。日本和韩国企业拥有MCU的系统设计与制造专门技术,因此在消费电子领域非常强大;美国和欧洲厂商在工业控制和汽车电子方面比较成功,中国大陆和台湾地区的MCU厂商则专注于低端消费电子产品。中国作为全球最大的消费电子产品与PC外设制造中心,2007年已成为MCU的最大单一买家,占全球MCU市场的14.5%。2007年用于数据处理、汽车与工业电子

19、的MCU营业额增长率达到两位数,仅数据处理领域的营业额就比2006年增长了31%。2007年瑞萨科技公司是中国市场中的最大供应商,Freescale半导体公司和微芯技术公司分列第二位和第三位4。2 方案论证本次设计的实验装置的目的是希望能够投入到实验室使用,所以在设计该项目是应该考虑到各个方面的因素,比如适用性、成本等都要考虑。本设计在方案上经过论证采取最佳的方案。2.1 微控制器的选择设计一个项目首先要考虑的是简单、适用以及费用成本等。考虑到这些因素,我选择了S08AW60作为主控模块芯片,该芯片拥有62KB片上在线可编程FLASH存储器和2KB片上RAM,具有模块保护与安全选项功能。该芯片

20、还可以通过BDM进行在线编程及调试,无需频繁的插拔单片机,可避免损坏芯片。鉴于以上原因,所以选择了S08AW60微控制器。2.2 显示模块的选择LCD液晶显示由单片机驱动。它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,但同时液晶显示器的编写程序复杂,价格昂贵,从而降低了整个系统的性价比;点阵显示,是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图象,但它的焊接较麻烦,价格高;LED数码管静态显示,电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难;

21、采用LED数码管动态扫描显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。其驱动程序容易编写和理解。经过以上的比较,最后选择LED数码管动态扫描显示来设计显示模块5。2.3 键盘输入选择键盘是整个装置的输入设备,独立式按键,每个按键实现一个功能,占用很多的微控制器I/O口资源,对整个系统的复杂性增加了很多。所以这种方案不适合这个系统,选取阵列式按键,减少了I/O口的使用,且扫描MN个按键只需占用M+N个I/O口即可实现,在加上实验的需要,应该设置多个按键才能满足实验需要,通过以上两种方案比较,选择矩阵式键盘作为本设计的输入装置6。3 验装置原理与方案设计3.1 S08微控

22、制器结构及原理S08AW系列是Freescale公司推出的新一代S08系列为控制器中的一款增强型8位微控制器,它不仅集成度高、片内资源丰富,还有很宽的工作温度范围(-40+125),S08AW微控制器采用8位S08CPU,片内总线时钟频率可高达20MHz,片内资源包括2KB RAM,约62KB Flash、串行通信模块、定时器模块、并可选择宽范围时钟频率,还提供一个8位/10位精度的模/数转换,并支持后台调试模式BDM。在汽车电子、工业控制和中高档机电产品等领域具有广泛的用途。3.1.1 S08AW特性飞思卡尔的新型8位微控制器是第一款基于高度节能型S08核的器件,支持5V应用。这使得其成为工

23、业应用的理想之选,而求他还是第一款认可用于汽车市场的S08微控制器。S08AW系列有4种芯片:S08AW60/48/32/16,他们之间的区别主要是片上程序存储器的容量不同而且具有各种引脚封装形式,S08AW特性如下:l 中央处理器位S08CPU。l 最高可达40MzCPU时钟频率和20MHz内部总线频率。l 约62KB片上在线可编程Flash存储器,具有模块保护与安全选项功能。l 2KB片上RAM。l 时钟源选项为晶体振动器、陶瓷谐振器、外部时钟和内部时钟。l 可选的看门狗(COP)复位。l 具有复位和中断的功能的低压检测。l 2个定时器TPM模块为共有(2+6)通道的16位定时器/脉宽调制

24、器,每个通道都有可选的输入捕捉、输出比较及PWM功能。l 多达54个通用输入/输出(I/O)引脚。l 具有主复位和引脚和上电复位(POR)功能。l 单线后台调试模块BDM。l 可支持多达32个中断/复位源。3.1.2S08AW结构S08AW系统结构如图3-1所示,大致可分为MCU核心和MCU外设两部分。图3-1 S08AW系统结构S08AW核心部分包括:具有运行监视功能的增强型中央处理器S08CPU、后台调试控制、系统控制等。S08MCU有两种存储器Flash和RAM;电压调整器可对数字电路和模拟电路供电;程序存储器具有页面控制模式;具有内部时钟发生器和低能耗晶体振荡器。外设部分可分为6种外设

25、:数字输入;数字输出;10位/8位二进制精度的模拟量/数字量转换器ADC;定时器/PWM;串行接口;许多微控制器中所没有的键盘中断输入。3.2软件调试的选择为了使本实验装置能够操作方便和稳定,而且在使用中不会带来过多不必要的麻烦和困难,这次设计采用了飞思卡尔系列MCU最普遍的调试方式:背景调试模式(Background Debug Mode简称BDM)。所使用的编程语言为功能强大的C语言7。BDM调试工具是用来向目标板下载程序用的,也可以将目标板上的单片机Flash中的旧程序擦出。这就是BDM调试工具的Flash写入、擦出功能,也称编程功能,通常具有这种编程功能的开发工具也称编程头。片内集成有

26、Flash的单片机都具备在线编程的能力,开发含有Flash的单片机至少需要的就是一个有编程头功能的下载工具。在线调试是Freescale S08系列微控制器一项比较新的技术。它利用了后台调试模式BDM,仅占用S08 MCU的一个引脚就可以对MCU应用程序进行动态调试以及擦出和编写。S08MCU采用的后台调试技术是在每片S08微控制器片内设计一个具有硬件调试功能的模块,外接的BDM模块可建立S08MCU与PC机的通信,该模块可以对片内Flash进行擦出和写入操作,同时在MCU正常运行的情况下,实现实时在线调试,且只占用MCU的一个I/O口。目前应用飞思卡尔微处理器开发嵌入式系统时基本上都是使用飞

27、思卡尔公司提供的开发系统或者CodeWarrior8公司的开发系统等付费昂贵的调试工具。飞思卡尔微处理器的调试模块针对不同场合的应用分别提供了3种调试支持:实时跟踪、BDM调试和实时调试。其中在BDM 调试方式下,处理器被停机,大量的命令可以被发送到处理器中访问内存和寄存器,外部仿真系统使用一个三脚、串行的双工通道与处理器通信,BDM调试模式为设计人员提供了一种低层次的调试手段,让用户能够中断CPU的运行,单步调试程序,读取CPU的各个寄存器的内容,这些仅仅是通过向CPU发送几个简单的命令就可以实现,显然,这样使调试软件的设计很简单,通常自己就可以编写。硬件调试卡的设计也非常简单9。3.3总体

28、法案设计概述本设计是设计基于S08AW60微控制器的学习装置,可以完成显示、输入、输出、PWM、电子闹钟等基本功能。硬件部分以S08AW60位核心,建立最小化的中心系统,然后在在实验板上布置常规用途所需要的键盘、LED数码管显示、数字输入输出、模数转换等模块。设计好各个电路,当按下键盘的时候,在数码管上能够显示按键所代表的值。通过软件能够实现PWM控制,通过程序驱动各个模块。所以,软件设计是本设计的重点,设计各个模块功能的实现,比如键盘输入、数码管输出、PWM、模数转换、通用数字I/O控制、电子闹钟的程序设计。通过以上的设计,能够涵盖S08AW60实验装置的基本功能,并且这些功能的是想都是用功

29、能强大的C语言编程实现的,对程序的阅读减小了难度,对于这个装置的使用者有一定的指导和参考作用。最后进行系统的调试。4 硬件设计4.1S08AW60核心电路设计设计使用的S08AW60芯片为64Pin封装。其封装引脚图见附录A所示。S08MCU的引脚大多采用功能复用技术,即单引脚多功能。某个引脚可能具有双重或三重功能,即通用I/O功能和特殊接口功能。器控制逻辑完全集成在MCU内部,可以用软件设定该引脚具有何种功能。由于S08MCU的许多引脚都具有2种或2种以上的功能,使得它在体积、功耗、可靠性和应用的简便程度上与用户自行扩充的片外I/O口有着重要的区别和显著优势。S08AW60基本系统的连接电路

30、如图4-1所示。大多数S08基本应用系统电路与此电路图相近,因此它在S08系列中具有代表性。图4-1 S08AW60系统原理图该系统电路由电源电路、振荡器、复位电路、后台调试/模式选择电路、通用I/O和外围设备接口电路。主电源供电VDD和VSS,VDD和VSS是S08MCU主要的电源引脚,工作电压范围是2.75.5V,该电源为所有的I/O缓冲器电路和内部稳压器供电,电源电路通常在电源引脚上加两个独立的电容器,其中一个为大容量的电解电容,另外一个为靠近MCU电源引脚的地方安装一个0.1F的陶瓷路旁电容来抑制高频噪音,VDDAD和VSSAD是MCU的模拟电源引脚,该引脚为片内的模/数转换电路一共电

31、源;S08AW60中的振荡器为传统的皮尔斯振荡器,它支持晶体和陶瓷谐振器,并可通过寄存器选择两种频率范围,低频范围为32100KHz,高频范围为116MHz;在S08AW系列MCU中,复位引脚是一个专用的引脚,带有内置的上拉器件,它具有输入电压迟滞和10mA电流输出驱动;后台调试模式/模式选择引脚包含一个内部上拉器件,输入滞后且具有2mA的输出驱动能力;S08AW60最多可提供56个引脚,这些引脚是通用I/O和片上外围设备共享的,在复位的瞬间,所有这些引脚立即配置为高阻抗通用输入。4.2键盘输入电路设计在本次设计当中,由于用到的按键比较多,所以采用的是矩阵式4*4键盘,行列式键盘的接法比独立式

32、键盘的接法复杂,编程实现上也会比较复杂。但是,在占用相同的IO端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,其原理图如图4-2所示。图4-2 键盘连接图矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。每条水平线和垂直线在交叉处不直接连同,而是通过一个按键进行连接,这样,一个4*4的行、列结构可以构成一个具有16个按键的键盘。显然,在按键数量较多时矩阵式键盘较之独立键盘要节省很多I/O接口10。在设计中,行线通过上拉电阻接正电源,将行线的I/O口作为MCU的输入,即PTB4PTB7这4个引脚;而列线所接的I/O口则作为MCU的输出端,及PTB0PTB3这4个引脚。当没有按

33、键按下时,所有的行线输入端都是高电平。当列线输出是低电平时,一旦有键按下,则相应的输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下。任何一条行线上有4个按键,还须进行按键按下的查找识别。列扫描法是最常用的一种按键识别方法,识别按键的基本原理是:先将所有的列线清0,读行线的值,若此时列线上的值全为1,说明无按键按下。若有某位为0,则说明对应这已列上有按键按下,这是改变列扫描码,使列线逐行为0,依次扫描。当读到某一行的值为0是,就可根据此时的列到苗码和行线的值确定按键的扫苗码,同时也就确定了该键的位置。4.3显示电路设计显示电路是一种输出电路,也是输出的一种方式。七段数码管是现在常

34、用的显示器件,具有造价低廉,驱动方便等特点,被现在工业,商业广泛应用,七段数码管有共阴和共阳之分,但使用方法基本相同。在本次实验装置的设计当中采用的是数码管来显示按键的输入值。实验装置上采用了4位数字的LED数码管显示。驱动该电路采用了MC74HCT244芯片。其原理图如图4-3所示。图4-3 数码管显示原理图数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极的数码管。共阳数码

35、管在应用时应将公共极接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极的数码管。共阴数码管在应用时应将公共极接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出需要的数字等,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个微控制器的I/O端口进行驱动。静态驱动的优点是编程简单

36、,显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于微控制器对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的选通端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12

37、ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。本设计中采用MC74HCT244作为驱动芯片,其芯片图如图4-4所示。图4-4 MC74HCT244芯片图4.4数字量输入输出电路8位数字量输入部分由开关电路和一个1*8排针组成。8位数字量输出部分由发光二极管显示电路和1个1*8排针组成。数字量的输入输出电路如图4-5、4-6所示。图4-5 数字量输入电路图4-6 数字量输出电路5 软件程序设计基于S08AW的学习装

38、置是软件和硬件的组合体,没有硬件只有软件和没有软件只有硬件的不能称作一个实验装置的,所以,该装置是一个软件和硬件的组合。在本设计中,软件程序设计是本设计的重点,通过设计的各个程序能体现出硬件各个模块或装置的功能。也从中可以了解各个硬件部分的结构个功能,了解这个实验装置的整体性能和优势。5.1 键盘输入程序设计键盘是整个系统的输入部分,对它进行软件设计是为了使用者能够更好的掌握和了解键盘的结构和功能。理解和认识扫描判断键盘的方法,并了解8个I/O接口设计更多按键键盘的方法。当键盘中按键数量较多时,为了减少 I/O 口线的占用,通常将按键排列成矩阵形式,在矩阵式键盘中,每条水平线和垂直线在交叉处不

39、直接连通,而是通过一个按键加以连接,一个并行口可以构成 4*4=16个按键。列线通过电阻接电源,将行线所接的S08AW604 个I/O 口作为输出端,而列线所接的 I/O 口则作为输入端,这样,当按键没有被按下时,所有的输出端都是高电平代表无键按下,行线输出是低电平一旦有键按下,则输入线就会被拉低,这样通过读入输入线的状态就可得知是否有键按下了。矩阵式键盘的按键识别方法:确定矩阵式键盘上任何一个键被按下通常采用行扫描法或者行反转法,行扫描法又称为逐行或列扫描查询法,它是一种最常用的多按键识别方法。(1)判断键盘中有无键按下将全部行线 X0-X3 置低电平,然后检测列线的状态,只要有一列的电平为

40、低,则表示键盘中有键被按下,而且闭合的键位于低电平,列线与4 根行线相交叉的4 个按键之中,若所有列线均为高电平,则表示键盘中无键按下。(2)判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平当确定某根行线为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。程序流程图如图5-1所示。图5-1 键盘扫描程序流程图键盘程序设计参考程序如下:#include /* for EnableInterrupts macro */#include derivativ

41、e.h /* include peripheral declarations */unsigned char keyscan();unsigned int DispValue;void key_delay(unsigned int de) /*延时函数*/ while(de-) _RESET_WATCHDOG(); unsigned char keyscan() unsigned char key; key_delay(100); PTBD=0xfe; /*扫描第一列*/ key_delay(100); key=PTBD&0xf0; if(key!=0xf0) while(PTBD&0xf0)

42、=key) _RESET_WATCHDOG(); switch(key) case 0xe0: PTAD=0x01;break; /*若是该键,接A口的8个LED灯显示键值*/ case 0xd0: PTAD=0x02;break; case 0xb0: PTAD=0x03;break; case 0x70: PTAD=0x04;break; return key; PTBD=0xfd; /*扫描第二列*/ key_delay(100); key=PTBD&0xf0; if(key!=0xf0) while(PTBD&0xf0)=key) _RESET_WATCHDOG(); switch(k

43、ey) case 0xe0: PTAD=0x05;break; case 0xd0: PTAD=0x06;break; case 0xb0: PTAD=0x07;break; case 0x70: PTAD=0x08;break; return key; PTBD=0xfb; /*扫描第三列*/ key_delay(100); key=PTBD&0xf0; if(key!=0xf0) while(PTBD&0xf0)=key) _RESET_WATCHDOG(); switch(key) case 0xe0: PTAD=0x09;break; case 0xd0: PTAD=0x00;brea

44、k; case 0xb0: PTAD=0x0a;break; case 0x70: PTAD=0x0b;break; return key; PTBD=0xf7; /*扫描第四列*/ key_delay(100); key=PTBD&0xf0; if(key!=0xf0) while(PTBD&0xf0)=key) _RESET_WATCHDOG(); switch(key) case 0xe0: PTAD=0x0c;break; case 0xd0: PTAD=0x0d;break; case 0xb0: PTAD=0x0e;break; case 0x70: PTAD=0x0f;break

45、; return key; return 0xff;void main(void) unsigned char key_value; EnableInterrupts; /* enable interrupts 使能中断*/ PTBDD=0x0F; /*高四位输入,低四位输出*/PTBPE=0XF0; /*高4位上拉电阻使能*/for(;) key_value=keyscan(); /* loop forever */ /* please make sure that you never leave main */5.2显示程序设计在本设计中,显示部分采用的是4位8段式数码管显示。LED显示器

46、件是本系统设计的廉价输出设备,它由8个反光二极管组成,LED可以发出红、黄、蓝;紫、等各种单色光,一个LED正常发光时的工作电流大约为10mA。8段LED显示器件就是将8个发光二极管按一定的方式组合在一起,其中一位是点位,根据发光二极管的连接方式不同,8段LED显示器件可分为共阴极和共阳极两种形式。控制8段LED显示器件的方法有动态显示和静态显示两种。数码管显示的数字或字符取决于响应字段是否被驱动。数码管的动态显示就是微控制器定时地对显示器件所显示的内容进行扫描,在这种方式中,各显示器件是分时工作的,任意时刻只有一个显示器件在显示。但由于人眼的视觉暂留现象,当扫描显示每一个器件达到一定的速度时

47、,人看到的就是所有的器件都在显示。所谓静态显示就是当显示器件显示某个字符时,相应的显示段恒定地导通或截止,直到显示另外一个字符为止,这种显示方式显示某一个字符时,只需要微处理器送一次显示代码,因此占用机时少,而且稳定可靠。其缺点是使用元器件相对较多,且线路比较复杂,先对而言成本较高。基于S08AW60的学校装置所用的4位8段式数码管能够显示键盘输入的值,执行电子闹钟功能时将读数时钟显示出来。数码管动态显示软件设计流程图如图5-2所示。开始LED初始化扫描第0个数码管扫描完毕?扫描下一个数码管NY图5-2 数码管显示程序流程图数码管显示参考程序如下所示:#include /* for Enabl

48、eInterrupts macro */#include derivative.h /* include peripheral declarations */#define LEDData PTBD /*8段LED数据接口,接AW60的B口8个引脚*/#define LEDData_D PTBDD /*数据接口相应方向寄存器*/#define LEDCs PTDD /*位选择接口,接AW60的D口PTD0-PTD3这4个引脚*/#define LEDCs_D PTDDD /*位选择接口相应的方向寄存器*/*该数组第一位表示0,然后是1-9,LED_Table 10表示小数点,LED_Table

49、 11- LED_Table 16显示字母A-F*/Const unsigned char LED_Table17=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x80,0x77,0x7C,0x39,0x5E,0x79,0x71; void LEDDisplay(unsigned char cs,unsigned char num) LEDCs=cs; /* 送位选信号 */ LEDData= LED_Table num; /* 取显示码并送到LED数据线 */ void delay(int abc) int i=0; for(;iabc

50、;i+) ;void main(void) EnableInterrupts; /* enable interrupts */ PTBDD=0xFF; PTDDD=0xFF; for(;) _RESET_WATCHDOG(); /*feeds the dog*/ LEDDisplay(0x0E,2); /*在第一位数码管显示数值2*/ delay(5); LEDDisplay(0x0D,5); /*在第二位数码管显示数值5*/ delay(5); LEDDisplay(0x0D,10); /*在第一位数码管显示小数点*/ delay(5);LEDDisplay(0x0B,4); /*在第一位数

51、码管显示数值6*/delay(5);LEDDisplay(0x07,9); /在第一位数码管显示数值6 /* loop forever */ /* please make sure that you never leave main */5.3 小灯亮度的PWM控制设计PWM(Plus Width Modulation)也就是脉冲宽度调制,最初在无线电技术中用于信号的调制。随着电子技术的发展,出现了多种PWM技术。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。其工作原理是在频率不变的情况下,通过改变输出脉冲的宽度(脉冲的占空比)从而改变输出信号的平均值,达到控制外部对象的目

52、的。微型计算机或微控制器通过控制定时/计数器,能够很容易地实现PWM输出。S08AW60 MCU含有两个独立的定时器模块,也就是脉宽调制器模块,可以方便地组成任意占空比的脉宽调制波发生器,采用PWM占空比来调节发光二极管的亮度的控制来实现S08AW60的PWM功能。当定时器1通道0的占空比逐渐从100%变化到0%时,发光二极管逐渐变亮。电路如图5-3所示。图5-3 PWM控制发光二极管亮度电路图PWM输出低电平时法官二极管点亮,所以设PWM输出极性为设置比较输出。当通道寄存器值增加时,低电平在一个周期内持续时间长,发光二极管亮度增强。利用PWM控制发光二极管的亮度的程序参考代码如下所示。#in

53、clude #include derivative.hUnsigned int Duty=0; /*占空比*/Unsigned int period=625; /*周数*/Void main(void) TPM1MOD=Period; /*初始化周期*/ TPM1C0V=0x00; /*初始化占空比0%*/ TPM1C0SC=0x24; /*边缘PWM模式,设置比较输出*/ TPM1SC=0x4E; /*总线周期,64分频,溢出中断*/ Enableinterrupts; /*开中断*/ For(;) _RESET_WATCHDOG(); Interrupt VectorNumber_Vtpm

54、1ovf void TPM1_ISR(void) DisableInterrupts; /*关中断*/ If(TPM1SC&080)=0x80) TPM1SC_TOF=0; /*清中断标志位*/ If(DutyPeriod) /*判断是否达到周期的长度*/ Duty=Duty+1; /*没有达到,占空比加1*/ Else Duty=0; /*占空比达到100%,设置占空比为0%*/ TPM1C0V=Duty; /*设置通道寄存器*/ Enableinterrupts; /*开中断*/5.4模数转换程序设计根据A/D转换器的原理可以将A/D转换器分成两大类。一个是直接型A/D转换器,一个是间接型

55、A/D转换器。在直接型A/D转换器中,输入的模拟电压被直接转换成数字代码,不经过任何的中间变量。在间接型A/D转换器中,首先把输入的模拟电压转换成某中中间变量,然后再把这个中间变量转换成数字代码输出。目前广泛使用的有三种类型:一是逐次逼近转换器,双积分转换器,V/F转换器。对于逐次逼近式的A/D转换器的原理是:将一个待转换的模拟输入信号Uin和一个推测信号Ui相比较,根据推测信号大于还是小于输入信号来决定增大还是减小该推测信号,以便向模拟输入信号逼近。推测信号由D/A转换器的输出获得,当推测信号和模拟信号相等时,向D/A转换器输入的数字就是对应模拟输入量的数字量。他的推测值的算法是使二进制计数

56、器中的每一位从最高位起依次置1,每接一位,都要进行测试。如果模拟输入信号Uin小于推测信号Ui那么比较器的输出是零,并且使该位清零,如果模拟输入信号大雨推测信号,那么比较器的输出是1,并且是该位保持1。不管怎么样,都可以继续比较下一位,直到最末尾为止,这个时候D/A转换器的数字输入就是对应模拟输入信号的数字量。在基于S08AW60的实验装置的模数转换部分,可以让使用者能够更多的了解HCS08微控制器ADC模块的使用方法。掌握模数转换的基本原理,进一步了解该模块的功能。在本设计中,程序使用S08的ADC模块将一个模拟电平转换成数字量,并将其显示在LED上,ADC流程图如图5-4所示。模拟电平由5

57、V的电源经过变阻器分压产生,产生的电压范围为0-5V。图5-4 ADC流程图在程序设计当中,该程序主要是在于对ADC模块的几个寄存器的初始化操作,程序将模拟量输入的电平信号转化为数字量后,通过对A端口显示在所连接的LED小灯上。其参考程序如下所示。#include /* for EnableInterrupts macro */#include derivative.h /* include peripheral declarations */Unsigned int DATA;Void ADC_INI(void);VoidIO_INIT(void);Void main (void) Enab

58、leinterrupts; /*enable interrupts*/ ADC_INI(); IO_INIT(); For(;) _ERSET_WATCHDOG(); /*feeds the dog*/ ADC1SC1=0x28; /选择通道号,使能ADC转换 While(!ADC1SC1_COCO) / _ERSER_WATCHDOG(); PTAD=ADC1RL; /在A口显示转换值 ADC1SC1=0x1f; /*loop forever*/ /*please make sure that you never leave main*/Interrupt 19 void ADC_INT(void) ADC1SC1_COCO=0; /clear TOF清零标志位Void ADC_INI(void) ADC

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!