1、 嵌入式嵌入式 C C 语言课程设计报告语言课程设计报告 目录目录 一、设计方案一、设计方案 1 1 1 1、功能简介、功能简介 1 1 2 2、开发测试环境选择、开发测试环境选择 1 1 二、液晶时钟程序设计二、液晶时钟程序设计 1 1 1 1、功能状态转换图、功能状态转换图 1 1 2 2、主要功能模块、主要功能模块 . . 2 2 2.12.1 主显示模块主显示模块 2 2 2.22.2 功能选择模块功能选择模块 2 2 2.32.3 时间修改模块时间修改模块 3 3 2.42.4 闹铃修改模块闹铃修改模块 3 3 2.62.6 其他辅助模块函数以及变量其他辅助模块函数以及变量 4 4
2、三、小结三、小结 4 4 四、附录四、附录 5 5 1 1、使用说明、使用说明 5 5 2 2、参考文献资料、参考文献资料 . . 5 5 3 3、附表、附表 1 1 6 6 1 一、设计方案一、设计方案 1、功能简介、功能简介 本文所设计的简易电子时钟可输出当前时间以及闹铃时间, 并可通过机械按键来实现修 改当前时间、修改闹铃时间、退出修改以及控制闹铃的打开和关闭,并通过 1602 型号的液 晶屏显示出不同操作时的不同界面。本程序共设计按键 5 个,按键及功能分别是 1 键:选择 功能界面下选择时间修改、时间和闹铃修改状态下的增加“1”计数;2 键:选择功能界面 下选择闹铃修改、时间和闹铃修
3、改状态下的减少“1”计数;3 键:主显示界面下进入选择 功能界面、时间和闹铃修改状态下切换修改项目、修改完成退回主显示界面;4 键:时间和 闹铃修改状态下直接退回主显示界面;5 键:主显示界面下控制闹铃的开关。 2、开发测试环境选择、开发测试环境选择 开发软件选 择了 ARM 公 司的 KeiluVision4 ,仿真软 件选择了 英国 Labcenter electronics 公司的 proteus7 professional,测试硬件选择了普中的 HC6800 开发箱。首先 在 KeiluVision4 下进行程序设计,编译通过后用 proteus7 professional 进行仿真并
4、尝试 下载到开发箱中进行操作,最后下载到开发箱中进行操作演示。 二、液晶时钟程序设计二、液晶时钟程序设计 1、功能状态转换图、功能状态转换图 2 2、主要功能模块、主要功能模块 注:本文中提到的函数均见附表 1 的液晶时钟源程序中,本次使用的是 1602 液晶。 2.1 主显示模块主显示模块 主显示模块包含了时间显示模块 void TimeDisplay(void)函数,其运行过程为首先读 取初始值,再通过定时器中断 TO 的中断服务函数 void T0_int () interrupt 1 来进行秒 计时并通过void TimeRunning(void)函数进行时间的加计数和进位运算; 闹铃
5、显示模块void AlarmDisplay(void),其运行过程为首先读取初始值,再通过 void AlarmRunning(void)来 进行比较,如果预设时间与当前时间相等就将响铃标记变量 SoundFlage_1 置为 1,进而引 发主函数中的响铃事件。 在闹铃显示模块还包含了闹铃开关控制模块, 用于控制闹铃是否开 启,若闹铃开启会,闹铃时间后就会显示“P”字母。主显示界面仿真结果如 图 2: 2.2 功能选择模块功能选择模块 功能选择模块包含了 void Menu_display (void)函数,其运行过程为当按键 3 时间触 发,切换到功能选择界面是显示时间修改及闹铃修改的提示,
6、并等待按键 1(时间修改)事 件或者按键 2(闹铃修改)事件。功能选择界面仿真结果如图 3: 3 2.3 时间修改模块时间修改模块 时间修改模块主要通过调 用时间显示函数 和按键响应函数: 按键读值 uchar GetKey(void)和响应 void QueryKeyboard(void),并通过时间设置标记变量 SetTimeFlage 的值来判断是否执行时间修改。时间修改模式下计时会暂停,按键 1、按键 2、按键 3 以及 按键 4 会响应,实现时间的加减、项目切换及退回主界面的操作。进行时间加减时,计数会 循环变化,如:当时间为 23:59:59 时,时加会变为 00,分加会变为 00 并且时会加 1,秒同 理;当时间为 00:00:00 时,时减会变为 23,分减会变为 59 并且时会减 1,秒同理。同时, 当进入时间修改界面后三盏指示 LED 灯就会分别点亮, 第一盏点亮表示时修改, 第二盏点亮 表示分修改,第三盏点亮表示秒修改(初始为时修改,可按按键 3 进行切换) 。时间修改界 面仿真结果如图 4: 2.4 闹