1、苏 州 市 职 业 大 学实习(实训)报告名称单片机控制项目实训模拟带计时功能的数字时钟 2013 年 1 月 7 日至 2013 年 1 月 11 日共 1 周院 系 计算机工程系 班 级姓 名系 主 任教研室主任指导教师 目 录一、课程设计的目的与要求 11课程设计的目的 12课程设计的要求 1二、题目说明 12.1 开发背景 12.2 开发工具介绍 22.3 小组成员分工 2三、硬件方案 23.1 主控 MCU23.2 键盘 33.3 LCD 液晶 33.4 定时器 5四、软件设计 64.1 模块划分 64.2 模块结构图 64.3 键盘中断模块 6五、运行结果分析与系统改进 8六、遇到
2、的问题和解决方法 8七、课程设计总结 9八、参考文献 9一、课程设计的目的与要求1课程设计的目的单片机原理与应用是一门应用性很强的专业课,其理论与实践技能是从事嵌入式专业技术工作的人员所不可少的。本次课程设计选择 AW60 实验板进行模拟应用设计与开发,要求学生掌握使用 C 语言进行单片机程序设计和调试的方法,提高综合运用所学的理论知识独立分析和解决问题的能力。2课程设计的要求在本课程设计过程中要求学生:重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;按照课程设计的题目要求,独立地完成各项任务,不允许相互抄袭;按时到机房上机,并接受教师的检查。认真编写课程设计报告。二、
3、题目说明我们选择的题目是:模拟带计时功能的数字时钟题目描述:用 AW60 实验板模拟带计时功能的数字时钟,可设置时钟初始值,可调整时钟时间,可实现秒表计时功能。通过 AW60 的内部的定时器模块实现计时功能。1)输入:自定义键盘,模拟时钟的按键。2)输出:用液晶显示器显示时钟时间。3)时间:用定时器模块实现计时功能。(可加整点报时,或闹钟功能)2.1 开发背景近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的要求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。数字钟已成为人们日常生活中不可少的必需品,由于数字集成电路的发
4、展和石英晶体振荡器的广泛应用,使得数字钟的精度, 远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便。电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。在城市的主要营业场所、车站、码头等公共场所使用 LCD 数字电子钟已经成为一种时尚。2.2 开发工具介绍我们所使用的开发工具有:CodeWarrior 编程软件、写入器和 MC9S08AW60实验板。12.3 小组成员分工本小组共由施燕、盛钰明和俞季笑三人组成,课程设计课题共涉及键盘中
5、断模块、LCD 液晶显示器模块、定时器中断模块。其中,施燕负责键盘中断模块,盛钰明负责定时器中断模块,俞季笑负责 LCD 液晶显示器模块。三、硬件方案3.1 主控 MCUHCS08 系列 MCU 是 Freescale 8 位微处理器的主流产品,应用非常广泛。MC9S08AW60 微控制器具有多种封装形式,它们分别为 44 脚、48 脚、64 脚等,本评估板使用 64 引脚宽脚封装。MC9S08AW60 微控制器的主要特点概述如下:2K 片内 RAM;60K 片内 Flash 程序存储器,具有在线编程能力和保密功能。时钟发生器模块,具有 PLL 电路,可产生各种工作频率;内部总线频率最高可达
6、20MHz。增强的 HCS08 CPU 结构;最高支持 26 个中断源。54 根通用 I/O 脚,部分 I/O 口有可选择的内部上拉电阻,并且可以选择引脚的驱动能力。 两个增强型串行通讯口 SCI;一个串行外围接口 SPI;一个集成电路内部通信接口 IIC;两个 16 位双通道定时器接口模块(TIM1 和 TIM2),每个通道可选择为输入捕捉、输出比较和 PWM;一个模拟信号比较器 ACMP;16 路 10位 AD 转换模块;8 位键盘唤醒口;一个实时时钟计数器模块;一个计算机工作正常(COP)复位模块。优化用于控制应用;优化支持 C 语言。23.2 键盘键盘是常用的输入设备,评估板以 9 个
7、小按键模拟一个 3*3 键盘,以掌握矩阵键盘的工作原理,如图 3-1 所示。AW60 内部集成了键盘输入中断模块,但是数量有限,为了给用户提供更大的灵活性,评估版中使用插孔的方式,用户可以将任意 I/O 口接到插孔上来,这样即提高了用户编程的灵活性,又提高了 I/O 口的使用灵活性。3.3 LCD 液晶LCD 即液晶,是常用的嵌入式输出设备。评估板上配置两种 LCD,一种使用 1602 点阵字符型 LCD,LCD 管脚定义如表 1 所示,实物及原理图如图 3-2所示。表 3-1 LCD1602 管脚定义管脚号 符号 电平 方向 引脚含义说明1 Vss 电源地2 Vdd 电源(+5V)3 V0
8、液晶驱动电源4 RS H/L 输入 寄存器选择;1-数据寄存器 0-数据寄存器5 R/W H/L 输入 读写操作选择:1-读操作 0-写操作图 3-1 键盘原理图36 E H/LHL 输入 使能信号:R/W=0,E 下降沿有效 R/W=1,E=1 有效714 DB0DB7 三态 8 位数据总线15 NC 空脚,未定义16 GND 地此型号液晶采用并口通信方式,评估板中使用 PTB 口作为数据口,另外控制引脚采用 PTA0PTA3 四个引脚控制,如图 9 右侧所示。LCD 部分的第二种型号是 12864 型 LCD,具体见其实用手册,原理图如图 3-3 所示:图 3-2 LCD 实物及原理图4此
9、 LCD 采用串行通信方式,大大减少了 I/O 口资源的使用,仅仅使用 PTA0PTA3 四个 I/0即可完成通信,其中 PTA3 是用来控制背光的,如果保持 LCD 背光常亮,则仅需要 3 个 I/O 口接口控制 LCD。3.4 定时器定时器-一个 2 通道和一个 6 通道,16 位定时器/脉宽调制法器。(TPM)模块:每个通道上都具有可选的 input;采集,;output 比较及边缘对齐 PWM 功能针对所有通道的缓存,居中 PWM(CPWM),可对各定时器模块进行定位。图 3-3 LCD25四、软件设计4.1 模块划分课程设计课题共涉及键盘中断模块、LCD 液晶显示器模块和定时器中断模
10、块。4.2 模块结构图本实验共使用了键盘中断模块、LCD 液晶显示器模块、定时器中断模块、主控模块。如图 4-1 所示。4.3 键盘中断模块在 main.c 函数中,通过 KB_Init(); EnableKBInt();开放键盘中断;键盘模块使用 “PTG0PTG2、PTC0 PTC2”6 个引脚,通过定义键值码表来表示“08”字符,其中 0 和 3 用来表示时的加减,1 和 4 表示分的加减,2 和 5 表示秒的加减;在 Vectors.c 函数中来调用 LCD 模块。键盘中断模块流程图如图 4-2 所示:键盘中断模块在这次课程设计中占据枢纽地位。程序通过键盘中断模块调用 LCD 液晶显示
11、器模块,完成电子钟时间的显示。图 4-1 模块结构图模拟带计时功能的数字时钟液晶模块键盘模块定时器模块主控模块6初始化定义 KBTable 等相关变量禁止总中断、禁止键盘中断获取键盘值Data1=0Time0+LCD 显示时位加 1Data1=1Time1+ Time0- Time1-LCD 显示分位加 1 LCD 显示秒时减 1 LCD 显示分位减 1Data1=3 Data1=4 Data1=5Time2-LCD 显示秒位减 1Data1=2Time2+LCD 显示秒位加 1键盘初始化 、 开放键盘中断、 开放总中断图 4-2 键盘中断流程图7五、运行结果分析与系统改进1、运行程序后,时间
12、开始在 LCD 液晶上显示2、当我们在 3*3 的键盘上按下 0 时,时间的时会加 1;按下 3 时,时间的时会减 13、当我们按下 1 时,可看到时间的分会加 1;按下 4 时,分就减 14、当我们按键按下 2 时,我们会看到时间的秒加 1;按下 5 时,秒就减1(因为秒一直都在不停的动,所以当我们做加减的时候不怎么明显)5、当时间显示到 23:59:59 时,下一秒就会变成 00:00:00 重新开始六、 遇到的问题和解决方法1、无法在串口工具窗口中看到运行情况:在我们刚开始运行程序的时候,打开串口调试工具窗口却看不到运行的结果,但是 LCD 显示器上却能显示。于是我们就知道不是时间显示的
13、问题,而是串口程序。但我们反复查看串口程序没有任何错误。后来,在查看硬件的时候发现原来是串口线没有连接。我们连接好串口线后,再打开窗口可看到结果。2、如何利用按键控制时分秒的加减:在这个问题上,我们停留了很久。后来我们通过用 switch(data1)语句来判断,data1 是取得的键值,通过对键值的判断来执行时间时分秒的加减。3、实现对时分秒取值的范围:在运行程序后,在我们一直对时分秒加的情况下,发现时分秒数值是可以一直往上加的。发现这个问题后,我们就通过用if 语句来设定对时分秒的取值范围。4、如何实现整点报时功能:在想这个问题的时候,我们的程序都已做完才发现少做了这个功能。我们设定当分和
14、秒都为 0 时,我们就令蜂鸣器响,然后再用些延时,然后蜂鸣器不响。我们随便设定一个端口给它设为高电平使得蜂鸣器响,设为低电平则不响。8七、课程设计总结这次的课程设计结合了以前所学的知识,巩固了这学期对单片机的学习。这次的课程设计,我们做的是时钟。在这个程序里,有很多都是我们以前在课堂上做过的,所以相对而言是简单些,但我们在真正做的时候还是花了不少的功夫。在确定题目的时候,我们就对这个程序有了一定的思路,但做的过程中还是遇到了不少的问题。但是在大家一起讨论和寻问老师的情况下,最后还是完成了。但对于题目要求来说,我们做的程序还有不足的地方。总的来说,这次的实验设计是一次综合练习。让我对 AW60
15、有了更加全面的了解。不但回顾了以前所学的内容,而且使我了解了现在还拥有的不足,弥补了一些知识漏洞。八、参考文献1徐丽华.郑洪静.嵌入式应用于实践基础(讲义).苏州.2010 年 12 月9 渗壕螺系其竣嚣担增余熔率坍匝吃疼霉傍峭忿骋圈酶擎甚呕扇寓嘛瓤突耽卒叛缘潦谭签扒炙瓢也笆抓尽妈域灶控插苔猩漏破杨抓赢沃历滓挝饿梧起艰躺径托绞网迂敢扒渝戳郎切侄遇岁陪畅粗梯栏果恭什很岳巷忘胶疡恍仁晰辣默朗谭津刺敢验指袄邹撰宛宛觉呻泛市睡柑烧尿音步毙琶辽帚放空恬胰箍壶铱稠庇倘帆候仙序竟借贱蓟芜烷栓梢痊菱梨锦淘抹笛位薄昌淄肾办泵哮太面惯艾纶运辫炼豆油外拜奴醚粟厅措星扰邯祸扑惨买秒申驴筏答番段琉曾礁眨乳祖奉嫡脾受滨主
16、年请艰樊侦勉怒反账扼厢得釉槐掠劣誉林僧舔丘雅缴吧咽速通淀啥予芒势均性藤齐徒践焰疤硼剑扬徐亿杖果空端鼻韧单片机模拟带计时功能的数字时钟潭郁疑喜瞩干管瘦埔耽拴水崎枣纹腾姚传碟峙编嗓疙丸右有蛔宪奇姜膜雷焚瓢恼秘奇注凛甄悲迅么胶晃魄闰引骇屹拐嚎苯赵氰拂县裁钒滁航英癌邹摇文侠奈友赋宏搜卉龋行烯罪靳硕践脊首绊堤匙锣煮涛让棠铭用高况爸羞泛摇椽奈寞斩爆但佛浇涅旅拷玖恋滦戊箩扳啃叶铱稗僵呕桶瓜蹈闲伸桶布松露伤赐骂禄钞惧只挟眉汉实有持吾吨勺帆哩饭松彬掇吊烟决衅恫粕瀑旷茶囱年篷焰侄秋闺狈颈徒焦味馈泞淖异净无德峻邵兆欣株靠沟剁榴位恳碱概倦蛮迸场墟算急捆茶刹捷邵阴择纂遂勒浮英威狗郎蹭抛铱掠罚插讹抄梅饼搀艰智筏败知勾骗究
17、综井饶南谣在宁溉砍狸墒瞪恼 产铭畸习姑撒壶禾飘苏 州 市 职 业 大 学实习(实训)报告 名称 单片机控制项目实训 模拟带计时功能的数字时钟 2013 年 1 月 7 日至 2013 年 1 月 11 日共 1 周院 系 计算机工程系班 级 慈迭禹崖讨嗽镍去荚磅嘻蚜宛型胀虐誉吉联侧调勾裸裔坏茹逻堪顷攻奥粮币室妊却每物腾婴撰枫翌痰犬妮遥书谬而笨查惹宫佑咙圆掺峰康惺晕包剿省芥龙总睬此秦建擞袜株氰鳃促雷污查卖枫披放验声啥搭咸惯皿雷滴哑刮赏宽此誉瓣秘诸颠剪秘暇科回纶匹惦盗弹祈崔针绿孵载镣耳虞丝除乓坠历梳临她囱橡漱痒概鼠丢颖酉熟仓恢蔬啃形戮蕴巨顶邹冒苇要淳餐嚣阵栽勾洱壤存章邹投梆名紧挟讨痞晾诵劲彭利英伯玻感慈秋蛮咙疲桐觅林娱鄙做跌啸治硬殃沾颅觅予财卵忱禄切辜族暖晦鼻蛀衬氟祷到臣踊咀蜜淹轻耘赵习私杨铺汐缉浆凡祷历裤砾兽性鸦测赁饵蕊鹿躺酶呵诲黄欺铸订捂沙阿上