




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏 州 市 职 业 大 学课程设计说明书 名称 简易计算器 2011年4月8日至 2011年4月15日 共1周院 系 计算机工程系 .班 级 10嵌入式应用技术 .学 号 .姓 名 . .教研室主任 .指导教师 .目 录一 课程设计的目的与要求11课程设计的目的12课程设计的要求1二 题目说明12.1开发背景22.2 开发工具介绍22.2.1 codewarrior22.2.2写入器32.2.3 mc9s08aw6062.3 小组成员分工8三 硬件方案83.1主控mcu83.2键盘93.3 lcd液晶93.4 定时器113.5 小灯及蜂鸣器113.6 aw60最小系统12四 软件方案134.1 模块结构图134.2 模块划分134.2.1 键盘中断模块134.2.2 lcd液晶显示器模块144.2.3 定时器中断模块144.2.4 蜂鸣器模块144.2.5 小灯模块144.3 键盘中断模块和定时器中断模块154.3.1键盘中断模块154.3.2定时器中断模块15五 运行结果分析与系统改进17六 遇到的问题和解决方法18七 课程设计总结19八 参考文献19一 课程设计的目的与要求1课程设计的目的 本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的软件设计,加强对实际应用系统设计的能力。单片机原理与应用是一门应用性很强的专业课,其理论与实践技能是从事嵌入式专业技术工作的人员所不可少的。此次课程设计选择aw60实验板进行模拟应用设计与开发,要求学生掌握使用 c 语言进行单片机程序设计和调试的方法,提高综合运用所学的理论知识独立分析和解决问题的能力。2课程设计的要求 在本课程设计过程中我们要遵守以下规则:重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;按照课程设计的题目要求,独立地完成各项任务,不允许相互抄袭;按时到机房上机,并接受教师的检查。认真编写课程设计报告。二 题目说明我们选择的题目是“模拟简单计算器”。我们将使用aw60实验板模拟计算器。模拟一个简单计算器的功能,通过键盘按键输入参加运算的运算数和运算符号,运算算式及结果均在液晶显示器上输出。输入设置:aw60实验板上有3*3键盘;自定义、分配键盘的9个按键,依次为:1、2、3、4、5、+、-、= 模拟简单计算器的按键输入。显示方式:运算算式及结果均在lcd液晶显示器上输出。若输入不正确导致不能运算,输出提示信息:sorry inputerror-_-#。在液晶第二行从左向右显示。清屏设置:利用定时器实现将每次运算及结果显示控制在30秒内完成,到30秒后实现自动清屏。2.1开发背景随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展有雨后春笋般的变化。电子产品的更新速度快就不足为奇了。计算器在人们的日常生活中是比较常见的电子产品之一。如何使计算器技术更加的成熟,充分利用已有的软件和硬件系统,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题。今天,人们的日常生活已经离不开计算器了,社会的各个角落都有它的身影,比如商店、办公室、学校因此设计一款简单实用的计算器会有很大的实际意义。同时,我们身为计算机工程系硬件教研室下的嵌入式班级,微电子产品是我们的研究对象。随着c语言课程、数据结构、dxp制图和单片机基础等相关课程的学习,我们掌握了一些基础编程知识。2.2 开发工具介绍我们所使用的开发工具有:codewarrior编程软件、写入器和mc9s08aw60实验板。2.2.1 codewarriorcodewarrior包括构建平台和应用所必需的所有主要工具 - ide、编译器、调试器、编辑器、链接器、汇编程序等。另外,codewarrior ide支持开发人员插入他们所喜爱的工具,使他们可以自由地以希望的方式工作。 codewarrior开发工作室将尖端的调试技术与健全开发环境的简易性结合在一起,将c/c+源级别调试和嵌入式应用开发带入新的水平。开发工作室提供高度可视且自动化的框架,可以加速甚至是最复杂应用的开发,因此对于各种水平的开发人员来说,创建应用都是简单而便捷的。 它是一个单一的开发环境,在所有所支持的工作站和个人电脑之间保持一致。在每个所支持的平台上,性能及使用均是相同的。无需担心主机至主机的不兼容。 codewarrior开发工作室包括完成大多数嵌入式开发项目所需的所有工具: 主要功能:1.项目管理器:为软件开发人员处理最高级别的文件管理;按照主要组别组织项目条目;追踪状态信息(例如文件修改日期);确定每个构建中特定文件的构建顺序及内容;协调插件程序以提供箱版本控制和rtos支持这样的业务。 2.文本编辑器:支持源代码和其他文本文件的创建和处理。与其他的ide功能完全集成。 3.搜索引擎:查找特定的文字串;以替代文字替换找到的文字;支持常规表达的使用;提供文件比较及差别功能。 4.源浏览器:保存用于程序的符号数据库;包括变量及功能的名称和值的符号的举例;使用符号数据库协助代码浏览;将每个符号与此符号相关代码的其他位置链接;处理目标导向和程序语言。 5.构建系统:使用编译器从源代码生成可重新定位的目标代码,并使用链接器从目标码生成最后的可执行图像。codewarrior c/c+*编译器工具包括业内领先的c/c+*语言codewarrior编译器,包括标准模板库(stl)及各种其他工具。 6.源级别调试器:提供高性能窗口的源级别调试器,配备最新的高效率增强型图形性能,缩短板的bring-up和应用开发时间;使用符号数据库,提供源级别调试;支持符号格式,例如codeview、debug with arbitrary records format(dwarf)和stabs。 7.指令组模拟器:用于jump-starting应用开发的集成指令组模拟器(仅适用于特定的结构)。 8.版本控制工具:市场中众多的版本控制工具与codewarrior产品兼容。2.2.2写入器1、usbdm简介usbdm写入调试器适用于freescale hcs8/hcs12全系列mcu。兼容于freescale codewarrior。2、接线usb线缆:将写入调试器和pc机连接起来。bdm接口:用于连接目标板。3、软件安装软件安装分为usbdm驱动程序的安装和调试器动态链接库dll的安装两部分。驱动程序的安装将设备与pc机的usb口相连,系统弹出“发现新硬件”的提示,并弹出“找到新的硬件向导”对话框,选择“从列表或指定位置安装(高级)”选项。单击“下一步”,选择“不要搜索,我要自己选择要安装的驱动程序。”,单击“下一步”,选择“windows ce usb devices”,单击“下一步”,选择“从磁盘安装”,然后选择驱动程序的路径,选择driver文件夹,单击确定将完成usb驱动的安装。dll库的安装dll库共有两个,分别为对应于codewarrior for hcs12的tbdml.dll和对应于codewarrior for hcs08的opensourcebdm.dll。对于这两个动态链接库值需要复制到最近codewarrior的proggdi目录下即可。如codewarrior for hcs12的安装位置为e:codewarrior for hcs12 v4.6,则把对应的tbdml.dll复制到e:codewarrior for hcs12 v4.6proggdi下即可。4、usbdm写入调试器使用方法若要在codewarrior中使用usbdm写入调试器,那么在创建工程时需要选择特定的连接。如图2-1所示,对于hcs12系列mcu选择的连接为tbdml。 图2-1 hc12连接选择图对于hcs08的mcu,在连接选择时,需要现在hcs08 open source bdm作为默认的连接。如图2-2所示。图2-2 hcs08连接选择图在创建完工程之后,就可以根据要求编写自己的代码了。该部分内容在此就不详细说明了。编译连接后,点击debug按钮,codewarrior就会自动调用hiwave程序进行写入以及在线调试。当hiwave与目标板通信时则会根据创建工程时选择的连接调用对应的动态链接库tbdml.dll或opensourcebdm.dll。此时,会出现如图2-2所示的设置对话框。图2-3通过对话框可以知道usbdm提供了电源控制和连接控制两部分功能可以设置。enable:通过usbdm写入调试器给目标板供电。3.3v或5v:给目标板提供3.3v还是5v电源。cycle target vdd on reset:复位过程中上电。cycle target vdd on connetion problems:当出现连接问题时,给目标板上电。leave target powered on exit:退出调试时继续给目标板供电。aotomatically re-connect:当目标板频率改变后,自动重新检测频率并连接。force bdm clock source:有些mcu支持备用bdm时间,通过该选项可以设置。guess speed if no sync:对不支持sync的mcu,进行频率猜测,该功能不可靠。通常情况下如图所示选择以上选项即可(3.3v/5v根据实际情况选择)。hcs8的设置与s12大致相同,但在连接控制中,s08没有guess speed if no sync选项,多了use reset signal选项。2.2.3 mc9s08aw601. mc9s08aw60评估板概述mc9s08aw60评估板是一款以学习hcs08系列微控制器为应用目标的评估板。mc9s08aw60评估板(简称mc9s08aw60evb)包含mc9s08aw60(以下简称aw60)最小系统、sci、led、蜂鸣器、按键、写入调试接口。评估板配套资料提供了部分硬件模块的以用于实际系统开发中。开发环境可使用codewarrior6.0,可选配写入器。2. mc9s08aw60芯片概述hcs08系列mcu是freescale 8位微处理器的主流产品,应用非常广泛。mc9s08aw60微控制器具有多种封装形式,它们分别为44脚、48脚、64脚等,本评估板使用64引脚宽脚封装。mc9s08aw60微控制器的主要特点概述如下:2k片内ram;60k片内flash程序存储器,具有在线编程能力和保密功能。时钟发生器模块,具有pll电路,可产生各种工作频率;内部总线频率最高可达20mhz。增强的hcs08 cpu结构;最高支持26个中断源。54根通用i/o脚,部分i/o口有可选择的内部上拉电阻,并且可以选择引脚的驱动能力。 两个增强型串行通讯口sci;一个串行外围接口spi;一个集成电路内部通信接口iic;两个16位双通道定时器接口模块(tim1和tim2),每个通道可选择为输入捕捉、输出比较和pwm;一个模拟信号比较器acmp;16路10位ad转换模块;8位键盘唤醒口;一个实时时钟计数器模块;一个计算机工作正常(cop)复位模块。优化用于控制应用;优化支持c语言。3. 实物图及逻辑结构图【实物图】【逻辑结构图】bdm接口iic接口蜂鸣器模块小灯模块复位按钮5v电源模块及指示灯lcd液晶接口1led数码管按键接口按键lcd液晶接口2继电器接口继 电 器串行通信口1mc9s08aw60pwmacmpadcspii/o接口串口转usb2.3 小组成员分工本小组共由胡敏、高振和董洪逾三人组成,课程设计课题共涉及键盘中断模块、lcd液晶显示器模块、定时器中断模块、蜂鸣器模块和小灯模块。其中,胡敏负责蜂鸣器模块和小灯模块,高振负责键盘中断模块和定时器中断模块,董洪逾负责lcd液晶显示器模块。三 硬件方案3.1主控mcuhcs08系列mcu是freescale 8位微处理器的主流产品,应用非常广泛。mc9s08aw60微控制器具有多种封装形式,它们分别为44脚、48脚、64脚等,本评估板使用64引脚宽脚封装。mc9s08aw60微控制器的主要特点概述如下:2k片内ram;60k片内flash程序存储器,具有在线编程能力和保密功能。时钟发生器模块,具有pll电路,可产生各种工作频率;内部总线频率最高可达20mhz。增强的hcs08 cpu结构;最高支持26个中断源。54根通用i/o脚,部分i/o口有可选择的内部上拉电阻,并且可以选择引脚的驱动能力。 两个增强型串行通讯口sci;一个串行外围接口spi;一个集成电路内部通信接口iic;两个16位双通道定时器接口模块(tim1和tim2),每个通道可选择为输入捕捉、输出比较和pwm;一个模拟信号比较器acmp;16路10位ad转换模块;8位键盘唤醒口;一个实时时钟计数器模块;一个计算机工作正常(cop)复位模块。优化用于控制应用;优化支持c语言。3.2键盘键盘是常用的输入设备,评估板以9个小按键模拟一个3*3 键盘,以掌握矩阵键盘的工作原理,如图3-1所示。图3-1 键盘原理图aw60 内部集成了键盘输入中断模块,但是数量有限,为了给用户提供更大的灵活性,评估版中使用插孔的方式,用户可以将任意i/o口接到插孔上来,这样即提高了用户编程的灵活性,又提高了i/o口的使用灵活性。3.3 lcd液晶lcd 即液晶,是常用的嵌入式输出设备。评估板上配置两种lcd,一种使用1602点阵字符型lcd,lcd管脚定义如表1所示,实物及原理图如图3-2所示。表3-1 lcd1602管脚定义管脚号符号电平方向引脚含义说明1vss电源地2vdd电源(+5v)3v0液晶驱动电源4rsh/l输入寄存器选择;1-数据寄存器 0-数据寄存器5r/wh/l输入读写操作选择:1-读操作 0-写操作6eh/lhl输入使能信号:r/w=0,e下降沿有效 r/w=1,e=1有效714db0db7三态8位数据总线15nc空脚,未定义16gnd地 此型号液晶采用并口通信方式,评估板中使用ptb口作为数据口,另外控制引脚采用pta0pta3四个引脚控制,如图9右侧所示。图3-2 lcd实物及原理图lcd部分的第二种型号是12864型lcd,具体见其实用手册,原理图如图3-3所示:图3-3 lcd2此lcd采用串行通信方式,大大减少了i/o口资源的使用,仅仅使用pta0pta3四个i/0即可完成通信,其中pta3是用来控制背光的,如果保持lcd背光常亮,则仅需要3个i/o口接口控制lcd。3.4 定时器定时器-一个2通道和一个6通道,16位定时器/脉宽调制法器。(tpm)模块:每个通道上都具有可选的input;采集,;output比较及边缘对齐pwm功能针对所有通道的缓存,居中pwm(cpwm),可对各定时器模块进行定位。3.5 小灯及蜂鸣器1.调试小灯评估板用led提供8位数字量的输出。原理图如图3-4所示vcc图3-4 调试小灯电路导线接插点导线接插点为高电平时led是暗的,低电平时led是亮的。2. 蜂鸣器输出,原理图如图3-5所示。为了节约i/o口,蜂鸣器也采用插孔方式设计,如图22所示,当使用蜂鸣器模块时,1孔插地,2孔插接控制i/o口,3孔插接vcc(5v),当控制点为高电平时蜂鸣器响,当控制点为低电平时蜂鸣器不响。图3-5蜂鸣器电路3.6 aw60最小系统1. 芯片:mc9s08aw60cb qfp封装 64引脚。2. 最小系统电路:晶振电路、电源及pll滤波、复位电路。1)晶振电路:接mcu第57、58脚之间的电路为晶振电路,这里选用的晶振频率为f=4mhz。通过内部pll电路模块,可获得小于等于24mhz的内部总线频率。电路及其元件参数是由aw60参考手册确定的。2)滤波电路的作用主要是增强电路工作稳定性。aw60芯片的21、22脚(vdd、vss)为芯片的电源输入端。接在电源与地之间的0.1f电容为滤波电容。3)复位电路:接在mcu第3脚的电路为芯片硬件复位电路。正常工作时该脚通过10k电阻接到电源正极(这里设为5v电源供电),所以应为高电平。若按下复位按钮,则第3脚通过接地,为低电平,芯片复位。3. i/o口:每个i/o口都外接到了mcu四周的接线排孔上,用户可以任意使用任何一个i/o口,但要注意不能多个模块同时使用一个口。注意:电路板上adc模块、液晶模块和数码管模块共用一些i/o口,使用时要防止冲突。图3-6 mc9s08aw60最小系统电路图四 软件方案4.1 模块结构图本实验共使用了键盘中断模块、lcd液晶显示器模块、定时器中断模块、主控模块、蜂鸣器模块和小灯模块。如图4-1所示。图4-1 模块结构图模拟简易计算器液晶模块键盘模块定时器模块蜂鸣器模块小灯模块主控模块4.2 模块划分课程设计课题共涉及键盘中断模块、lcd液晶显示器模块、定时器中断模块、蜂鸣器模块和小灯模块。4.2.1 键盘中断模块在main.c函数中,通过kb_init(); enablekbint();开放键盘中断;键盘模块使用系统默认的“ptg0ptg4、ptd2ptd3、ptd7 ”8个引脚,通过定义键值码表来显示“05、-、+、=”字符;在vectors.c函数中来调用蜂鸣器、lcd和小灯模块。4.2.2 lcd液晶显示器模块在main.c函数中,通过lcdinit();函数初始化lcd液晶显示器;定义lcdshow();和lcdshow1();两个显示函数,把从键盘获取的数据显示出来。4.2.3 定时器中断模块在main.c函数中,通过 t1init();初始化定时器模块;定时器默认中断间隔时间为tpm1mod=0x7a12,即每隔1秒中断一次;在vectors.c中,通过全局变量int8u z=0;z+;if(z%30=0) lcdinit(); /初始化lcd,作用:清屏 if(z=60000) z=0; /达到30秒清屏的目的。4.2.4 蜂鸣器模块在main.c里将蜂鸣器初始化:buzzerinit();蜂鸣器初始时不发声,将蜂鸣器的三个引脚分别接在gnd、vcc、e2口,引脚为buzzer_pin 2,要实现按键即蜂鸣器发声,需在vectors08.c中的键盘中断加入蜂鸣器发声的程序:buzzer_n_f(n); /蜂鸣器发声(on)delay(60000);buzzer_n_f(f); /蜂鸣器不发声(off)4.2.5 小灯模块在main.c里将小灯初始化:ledinit();小灯初始时为暗,将小灯引脚接在实验板的f口,引脚为light_pin 1,即f1口;实现小灯亮暗,需在vectors08.c中的键盘中断加入小灯闪烁的程序,即能实现按键时小灯就亮。4.3 键盘中断模块和定时器中断模块4.3.1键盘中断模块键盘中断模块流程图如图4-2所示:键盘中断模块在这次课程设计中占据枢纽地位。程序通过键盘中断模块调用小灯、蜂鸣器、lcd液晶显示器模块,完成计算器的计算、显示和计算信息的表现。其中突出的特点是键盘每按一次键,小灯闪烁一次,蜂鸣器鸣叫一次。4.3.2定时器中断模块定时器中断模块流程图如图4-3所示:定时器模块在timer.c中定义每次中断间隔时间为1秒,通过定义全局变量z来改变中断跳出时间。我们的程序中设定定时中断时间为301秒,即每次计算时间最长为30秒,320秒后lcd液晶显示器清屏。定义定时器模块禁止中断定义全局变量zz+z是30的倍数lcdinit(); 初始化lcd,清屏z=0定时器中断溢出开放总中断y 图4-3 定时器工作流程图p=0小灯闪烁、蜂鸣器鸣叫一次禁止总中断、禁止键盘中断定义kbtable等相关变量lcd显示键值j0报错获取键盘值p=1p=2p=3data=+ | data=-data != =data=0 & data=5num0=j0-0; num1=j2-0;j1 = +num2=num0+num1;num2=0 & data=5ynnnum0 num1输出计算结果nyynnyy图4-2 键盘中断模块流程图五 运行结果分析与系统改进本次实验的运行结果如下几幅截图所示:1、按复位键时,lcd液晶上即显示logo动画:2、3*3键盘分别表示1、2、3、4、5、+、-、=,即按这几个键输出运算表达式,如:“5+5=10”3、若不按规则按键时,即报错。液晶上会显示:4、若要再计算时,请再按复位键六 遇到的问题和解决方法1、怎样获取数字并还原成字符?怎样解决data数据的类型?value=kb_scan();(取得扫描键值)data=kb_def(value);(把键值转换成定义值并赋值给data)若按下“5”键,此时data中存放的是字符5,此时的字符5不可以直接参与运算,还需要把字符5转换成数字5,这样才可以进行运算。把字符5转换成数字5的方法就是将字符5减去字符0,获取他们ascii值的差,这个差就是数字5。2、怎样解决复杂的逻辑判断?if的缺点、switch的优点?基于实验时间的限制,我们设计的计算器的计算能力有限,只能进行单位数之间的简单计算。及时是相对简单的运算,所需要的代码却不怎么简单。首先程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南阳工艺美术职业学院《微分方程II》2023-2024学年第一学期期末试卷
- 江苏省无锡市新区重点名校2024-2025学年初三下学期质量调研(一模)英语试题含答案
- 内江卫生与健康职业学院《体育赛事组织与管理》2023-2024学年第二学期期末试卷
- 四川化工职业技术学院《信息可视化设计》2023-2024学年第二学期期末试卷
- 陕西省榆林市绥德重点中学2024-2025学年初三第三次诊断考试英语试题理试题含答案
- 西安建筑科技大学华清学院《露天开采新技术》2023-2024学年第二学期期末试卷
- 满洲里市2025年小学六年级第二学期小升初数学试卷含解析
- 云南昆明一中2025届高三第三次模拟练习物理试题含解析
- 阳光学院《医学寄生虫》2023-2024学年第二学期期末试卷
- 江苏省无锡市青阳片重点名校2025年初三下学期第一次质量考评语文试题试卷含解析
- 人际交往与沟通课件第一章 人际交往与沟通概述
- 养老院安全知识培训
- 煤炭行业的信息化与智能化转型
- 抗生素合理应用课件
- 2024年广西广投资本管理有限公司招聘笔试参考题库含答案解析
- 酒店露营基地项目计划书
- 小学趣味科学 3D打印技术 课件
- 轻量化目标检测模型的研究
- 医疗器械人因工程与可用性测试总结
- 管道中的流量与压强的关系及特殊情况分析
- 完整版工资条模板
评论
0/150
提交评论