嵌入式课程设计报告---基于LCD的电子时钟

合集下载

嵌入式课程设计-- 基于LCD的电子时钟实验

嵌入式课程设计-- 基于LCD的电子时钟实验

课程设计报告题目嵌入式系统项目设计课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容学习LCD与ARM的LCD的控制器的接口原理,掌握内置LCD控制器驱动编写方法和RTC控制方法,在可行性分析的基础上实现以下功能:1、编写程序实现电子时钟功能,通过实验系统的LCD将时间显示出来;2、仿照给定图形在LCD上显示类似的时钟界面;3、动态显示当前的时间,包括:年、月、日、时、分、秒,时针,分针、秒针必须为动态实时指示当前的时间。

一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生的编程能力、用计算机解决实际问题的能力。

3、培养学生遇到问题,解决问题的能力。

二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、实验设备有L-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆;3、PC操作系统WIN98或WIN2000或WINXP,ARM SDT2.5或ADS1.2集成开发环境,仿真器驱动程序;4、本实验使用实验教学系统的CPU板,在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。

三、课程设计预期效果1、完成实验环境搭建;2、分模块调试和编译;3、组合并完善程序;4、联合仿真软件运行程序;5、液晶显示器显示时钟图样,时,分,秒能指向正确的时间。

学生姓名:严维锋专业年级:自动化2008级目录前言 (3)第一章系统设计 (4)第一节课题目标及总体方案 (4)第二节原理框图 (5)第三节程序和芯片的初始化 (5)第四节构建功能模块 (7)第五节 MAIN函数的局部原理分析 (8)第二章实验(测试)结果及讨论 (13)第一节 ADS1.2软件的编译,连接和运行 (13)第二节程序调试 (14)第三章结论 (14)心得体会 (15)参考文献 (16)附录 (17)源程序 (17)前言近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,其强大的控制能力和专业性在通讯、网络、工控、电子等领域发挥着越来越重要的作用。

基于LCD1602电子时钟

基于LCD1602电子时钟

信息与电子工程学院课程设计报告录目一、课程设计概述 (3)1.1 课程设计背景 (3)1.2 课程设计内容 (3)1.3 课程设计技术指标 (3)二、方案的选择及确定 (3)2.1 单片机芯片的选择 (3)2.2 显示模块的选择 (4)2.3 实时时间计算模块的选择.42.4 实时环境温度采集模块选择 (4)2.5 电路设计最终方案决定 (5)三、系统硬件设计 (5)3.1 主控模块 (5)3.2LCD显示模块设计 (6)3.3 时间计算模块设计 (6)3.4 实时环境温度检测模块 (7)3.5 报警模块 (7)3.6 设置模块 (8)3.7 电源接口部分 (8)四、系统软件设计 (8)4.1 主函数 (8)4.2 设置模块 (9)4.31602 液晶屏 (10)4.4 软件原理图 (11)五、系统调试过程 (11)5.1 软件调试 (11)5.2 硬件调试 (12)六、结论 ..................................12七、遇到的问题及解决方法和总结 (12)7.1 硬件方面 (12)7.2 软件方面 (13)7.3 总结 (13)1八、参考文献 (13)九、附录 (14)课程设计概述1.1 课程设计背景随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。

单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。

因为它有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。

而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。

1.2 课程设计内容利用单片机、时钟芯片DS1302温度传感器DS18B20 16O2液晶屏等实现日期、时间、温度的显示,即是一个电子时钟。

嵌入式实验报告_电子钟实验报告

嵌入式实验报告_电子钟实验报告

嵌⼊式实验报告_电⼦钟实验报告电⼦钟实验报告班级电⼦班学号******* 姓名**实验名称电⼦钟⼀、设计⽬标和要求:1、理解rtc模块的结构,并掌握rtc的配置和读写操作。

2、学习使⽤UC GUI。

3、对⽆操作系统的应⽤,设计任务的切换和协调运⾏。

4、完成考核要求:①驱动RTC模块,设置和读取RTC时间(在液晶上⽤⽂字显⽰当前时间,年⽉⽇、星期⼏、时分秒)。

②添加液晶绘图函数,在液晶上绘制电⼦表表盘。

③设计任务,添加ucos2操作系统。

添加任务1(时间设置、报警闹钟设置和绘图参数)和任务2(绘制表盘),并协调2个任务。

④通过UC GUI丰富图形界⾯(添加GUI任务,添加对应任务的图像窗⼝)。

⼆、实验环境:硬件:嵌⼊式开发平台、JTAG仿真器、PC机、嵌⼊式系统实验箱,串⼝线。

软件: WinXP、RVDS集成开发环境、仿真器驱动程序、超级终端通讯程序。

三、设计思路和实现步骤、内容:1、设计思路:(1)⽤函数画出⼀个时钟表盘,写出实时的时间。

⾸先,定义边⾓点坐标,确定屏幕范围;接着,⽤清屏函数清屏;然后,⽤ILI93××程序画图,定义⼀点作为中⼼坐标,画⼀个确定半径的为R的圆;最后画三条直线,分别为秒针、分针、时针(都是使⽤坐标来确定的)。

(2)实现对时间的更改功能,并可以将更改过的时间赋值给现实的时间。

STM32中RTC模块计数器,秒针每次+1,每次+1后,秒针指向下⼀个刻度的时候,上⼀个刻度的位置⽤清屏函数清掉,然后重新画好指针;(3)⽤时钟来控制⼀个闹钟时间,中断后让液晶做出相应的反应。

在源程序中加⼊UCOS2操作系统,在系统中进⾏时间设置,报警和闹钟等等功能。

2、程序流程图:3、具体实现程序:1、主程序int main(void){KEY_Init();Stm32_Clock_Init(9);//系统时钟设置delay_init(72); //延时初始化uart_init(72,9600); //串⼝1初始化LED_Init();LCD_Init();RTC_Init();EXTIX_Init();DrawClock();while(1){if(alarmflag==1)//闹钟标志Alarm(); //闹钟显⽰elseTimeshow(); //时间显⽰if(set==1) //设置时间标志{LCD_Clear(WHITE);Set_timeshow(); //设置时间}}}时钟、led、lcd、rtc初始化后,进⼊⼀个死循环,如果没有进⼊闹钟中断,就开始时钟显⽰,按下第⼀个使能按键后,进⼊第⼆个界⾯,开始时间更改,然后再返回更改值。

嵌入式课程设计报告---基于LCD的电子时钟

嵌入式课程设计报告---基于LCD的电子时钟

课程设计报告题目基于LCD的电子时钟课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生将理论知识与实际应用结合在一起;3、培养学生的自我学习能力和解决问题的能力;4、培养学生的协作意识和团队合作能力;5、培养学生的总结经验的能力。

二、研究方法及手段应用1、问题解决模块化,将任务分成若干模块,分模块调试和完成任务;2、查阅网上的相关素材,查阅相关论文资料,进行比较、研究;3、在独立思考的基础上,请教老师,和同组同学讨论、学习;4、反复调试、总结经验、排除差错;5、连接PC和EL-ARM-830实验箱,完成整个实验环境搭建;6、运用Code Warrior for ARM编译软件编译汇编语言和进行调试;7、使用H-JTAG下载至硬件进行观察、调试。

三、课程设计预期效果1、在液晶屏上显示表盘,和时间点和时、分、秒针;2、在液晶屏上显示时、分、秒、年、月、日;3、在液晶屏上实现指针的动态图像;4、可以实现自己设定的初始时间。

学生姓名:王宁专业年级:09电子信息工程目录前言 (4)第一章系统设计 (5)第一节课题目标及总体方案 (5)第二节相关组件说明 (5)第三节项目设计模块描述及流程图 (7)1.主函数模块 (8)2.时钟表盘的构建模块 (8)3. 表盘下日期的显示模块 (9)4.任务运行模块 (10)第二章结果与显示 (11)结果显示 (11)心得体会 (12)参考文献 (13)附录 (13)前言近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。

嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。

实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。

课程设计---基于LCD的电子时钟设计

课程设计---基于LCD的电子时钟设计

课程设计报告题目基于LCD的电子时钟设计专业、学号授课班号学生姓名指导教师完成时间课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟设计Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、掌握嵌入式系统设计基本原理、培养嵌入式系统设计能力;二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、使用实验箱上的S3C44BOX芯片系统和LCD作为硬件基础;3、使用ADS1.2及H-JTAG对源程序进行编译、仿真、调试,下载到芯片中实现LCD电子时钟功能。

三、课程设计预期效果1、完成实验环境搭建:学习LCD与ARM的LCD的控制器的接口原理;掌握内置LCD控制器驱动编写方法;2、设计完成电子时钟源程序;3、源程序编译、调试通过,下载到实验箱中,实现电子时钟功能,并在LCD上显示类似的时钟界面,动态显示当前的时间,包括:年、月、日、时、分、秒,时针,分针、秒针必须为动态实时指示当前的时间。

学生姓名:专业年级:目录前言 (2)第一章系统设计 (3)第一节课题目标及总体方案 (3)第二节硬件平台简介 (3)一、 S3C44B0X简介 (3)二、S3C44B0X与LCD连接 (5)第二节软件系统设计 (5)一、μC/OS-II系统模块设计 (5)二、LCD初始化模块设计 (5)三、时钟应用系统模块设计 (5)第二章实验结果及讨论 (7)第一节ADS1.2集成开发环境简介 (7)第二节调试结果与分析 (9)第三章结论 (10)心得体会 (11)参考文献 (12)附录 (13)源程序 (13)前言随着科技的发展,嵌入式系统广泛应用于工业控制和商业管理领域,在多媒体手机、袖珍电脑、掌上电脑、车载导航器等方面的应用,更是极大地促进了嵌入式技术深入到生活和工作各个方面。

嵌入式系统主要由嵌入式处理器、相关支撑硬件及嵌入式软件系统组成;本文介绍基于ARM7的嵌入式微处理器S3C44BOX和LCD显示器的电子时钟的设计,实现电子时钟的功能,并在LCD 上显示类似的时钟界面;动态显示当前的时间,包括:年、月、日、时、分、秒,时针。

基于ARM和LCD的电子时钟设计课程设计报告

基于ARM和LCD的电子时钟设计课程设计报告

指导教师评定成绩:审定成绩:重庆邮电大学移通学院课程设计报告设计题目:基于LCD的电子时钟实验学校:重庆邮电大学移通学院学生姓名:曹相凯专业:电气工程与自动化班级: 05131004学号: 02指导教师:陈龙灿设计时刻:2021 年12 月重庆邮电大学移通学院前言时钟,自从它发明的那天起,就成为人类的朋友,但随着时刻的推移,科学技术的不断进展,人们对时刻计量的精度要求愈来愈高,应用愈来愈广。

如何让时钟更好的为人民效劳,如何让咱们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。

现今,高精度的计时工具大多数都利用了石英晶体振荡器,由于电子钟,石英表,石英钟都采纳了石英技术,因此走时精度高,稳固性好,利用方便,不需要常常调校,数字式电子钟用集成电路计不时,译码代替机械式传动,用LED 显示器代替显示器代替指针显示进而显示时刻,减小了计时误差,这种表具有时,分,秒显示时刻的功能,还能够进行时和分的校对,片选的灵活性好。

时钟电路在运算机系统中起着超级重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡按时信号,要紧由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定不时钟,即定不时刻,它通常有两种实现方式:一是用软件实现,即用单片机内部的可编程按时/计数器来实现,但误差专门大,要紧用在对时刻精度要求不高的场合;二是用专门的时钟芯片实现,在对时刻精度要求很高的情形下,通常采纳这种方式,典型的时钟芯片有:DS1302,DS12887,X1203等都能够知足高精度的要求。

本文要紧介绍用单片机内部的按时/计数器来实现电子时钟的方式,本设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,组成了一个单片机电子时钟。

系统设计课题目标及整体方案通过S3C44B0X处置器的学习,能够利用其内部的RTC单元和LCD操纵器,外接LCD模块、晶振和(后备)电源实现电子实不时钟的功能。

基于单片机的LCD电子时钟设计

基于单片机的LCD电子时钟设计

基于单片机的LCD电子时钟设计随着科技的不断发展,单片机已经成为现代电子设备中的重要组成部分。

其中,LCD电子时钟的设计与应用更是受到广泛。

基于单片机的LCD电子时钟设计具有精度高、稳定性好、体积小、耗电量低等优点,被广泛应用于家居、办公、交通运输等领域。

一、设计原理基于单片机的LCD电子时钟设计主要由单片机、时钟电路和LCD显示模块组成。

其中,单片机作为主控制器,负责读取时钟信号并控制LCD显示模块。

时钟电路则产生一个高精度的实时时钟信号,LCD显示模块则负责将时间信息显示出来。

二、硬件设计1、单片机选择:单片机是整个系统的核心,负责读取时钟信号、处理数据并控制LCD显示模块。

常见的单片机型号包括STM32、PIC、AVR等。

根据实际需求,选择合适的单片机型号。

2、时钟电路:时钟电路是整个系统的核心部分,它产生高精度的实时时钟信号。

常见的时钟电路包括石英晶体振荡器、GPS模块等。

根据实际需求,选择合适的时钟电路。

3、LCD显示模块:LCD显示模块负责将时间信息显示出来。

常见的LCD显示模块包括字符型LCD和图形型LCD。

根据实际需求,选择合适的LCD显示模块。

三、软件设计软件设计是整个系统的重要组成部分,它需要实现读取时钟信号、处理数据并控制LCD显示模块的功能。

具体的软件设计流程如下:1、初始化:初始化单片机、时钟电路和LCD显示模块。

2、读取时钟信号:通过时钟电路读取实时时钟信号。

3、处理数据:对读取的时钟信号进行处理,提取出年、月、日、时、分、秒等信息。

4、控制LCD显示模块:将处理后的时间信息通过LCD显示模块显示出来。

5、循环执行:重复执行上述步骤,实现LCD电子时钟的实时更新。

四、调试与优化完成硬件和软件设计后,需要对系统进行调试和优化。

具体的调试和优化步骤如下:1、通电测试:将系统通电,检查各部分是否正常工作。

2、精度测试:检查时钟电路的精度是否满足要求。

3、LCD显示测试:检查LCD显示模块是否能正确显示时间信息。

嵌入式课设报告-LCD,LED数码时钟显示修改解读

嵌入式课设报告-LCD,LED数码时钟显示修改解读

目录1.设计目的 (2)2.设计要求 (2)3.设计内容 (2)3.1.实验电路及说明 (2)3.2.程序流程及分析 (2)3.2.1.中断程序 (2)3.2.2.主函数程序 (3)3.3.程序清单 (4)3.3.1.头文件includes.h (4)3.3.2.中断程序 (5)3.3.3.主函数main.c (7)4.调试说明 (9)4.1.调试情况 (9)4.2.程序结果及分析 (11)4.2.1.调试过程中遇到的问题及解决方法 (11)4.2.2.对程序设计技巧的总结及分析 (12)5.设计总结及体会 (12)6.参考文献 (12)1.设计目的(1)理解点阵字符型LCD的显示原理。

(2)了解UART 通信基本概念、UART 通信基本原理。

(3)理解和掌握KL25 的UART 模块的基本编程方法。

2.设计要求(1)LCD数字钟能够正常的显示24小时时间的时分秒以及正常跳变。

(2)通过串口可以重新设置数字钟的时间3.设计内容3.1. 实验电路及说明(1)硬件说明:PC机,KL25*1,UART-USB数据线。

(2)电路说明:用数据线将PC机与试验箱连接即可。

3.2. 程序流程及分析3.2.1.中断程序(1)isr_uart1_re(void)变量:ch:接受字符,length:接受字符的长度,data[]存放字符数组,g_flag:标志位,说明data[]存放字符结束(补充说明:‘#’为结束符)程序:1.ch接受字符2.判断data[length]是否为‘#’是g_flag=1;否length+1功能:把接受的字符存到data[]中(2) tpm0_isr(void)变量:TPMCounter:计时器,LEDindex:位选口声明,kbv[32]="00:00:00":LCD显示缓冲区。

程序:1.设置TPMCounter计时器2.处理LED部分:用if (LEDindex>=4) LEDindex=0实现对4个led的刷新3.如果TPMCounter>1000,TPMCounter++(每1秒循环一次)对LEDDataBuffer[6]实现时钟现实的秒+14.把LEDDataBuffer[6]赋值给kbv[],显示LCD3.2.2.主函数程序程序:1.判断g_flag是否为1,为1跳到2,为0跳到1,g_flag清零2.switch(data[0])选择操作3.length清零3.3. 程序清单3.3.1.头文件includes.h#ifndef INCLUDES_H_#define INCLUDES_H_#include "common.h"#include "gpio.h"#include "light.h"#include "uart.h"#include "sysinit.h"#include "lcd.h"#include "kb.h"#include "tpm.h"#include "led.h"//定义小灯闪烁频率#define RUN_COUNTER_MAX 1500000ul//定义使用的调试号#define UART_TEST UART_1#define TEST_UART_BAUDRATE 9600UL#define bus_clk_khz 24000 //芯片总线时钟频率,Khz//定义全局变量uint_8 LEDDataBuffer[6];uint_8 ch;uint_8 Data[10];uint_16 Length;uint_8 g_Flag;#endif3.3.2.中断程序(1)isr.h(注册中断)#ifndef ISR_H //防止重复定义(ISR_H 开头)#define ISR_H//===============用户中断向量表注册表=====================//1注册TPM0中断向量#ifdef VECTOR_033#undef VECTOR_033extern void tpm0_isr(void);#define VECTOR_033 tpm0_isr#endif//2 注册串口1中断向量#ifdef VECTOR_029#undef VECTOR_029extern void isr_uart1_re(void);#define VECTOR_029 isr_uart1_re#endif#endif //防止重复定义(结尾)(2)isr.c#include "includes.h"void tpm0_isr(void){static uint_32 TPMCounter = 0; //计时器//static uint_8 value =0; //键盘变量static uint_8 LEDindex=0; //位选口声明//LED显示缓冲区uint_8 i;//LED缓冲区赋值//LCD显示缓冲区,其中.表示按下的数字uint_8 kbv[32]="00:00:00";if((TPM_SC_REG(TPM0_BASE_PTR) & TPM_SC_TOF_MASK) == TPM_SC_TOF_MASK){TPMCounter++;}BSET(TPM_SC_TOF_SHIFT,TPM_SC_REG(TPM0_BASE_PTR)); //中断置标志位写1清0//处理LED部分LEDindex++; //位选位+1if (LEDindex>=4) LEDindex=0; //大于4位选口置0i=LEDchangeCode(LEDDataBuffer[LEDindex]-'0'); //转码LEDshow1(LEDindex,i);//显示LEDif(TPMCounter>1000){TPMCounter = 0;if(LEDDataBuffer[3]=='9'){LEDDataBuffer[3]='0';LEDDataBuffer[2]++;}else LEDDataBuffer[3]++;if(LEDDataBuffer[2]=='6'&&LEDDataBuffer[1]!='9'){LEDDataBuffer[2]='0';LEDDataBuff er[1]++;}elseif(LEDDataBuffer[2]=='6'&&LEDDataBuffer[1]=='9'){LEDDataBuffer[2]='0';LE DDataBuffer[1]='0';LEDDataBuffer[0]++;}if(LEDDataBuffer[0]=='6'){LEDDataBuffer[0]='0';LEDDataBuffer[4]++;}if(LEDDataBuffer[4]=='4'){LEDDataBuffer[4]='0';LEDDataBuffer[5]++;}if(LEDDataBuffer[5]=='3'){LEDDataBuffer[5]='0';}kbv[0]= LEDDataBuffer[5];kbv[1]= LEDDataBuffer[4];kbv[3]= LEDDataBuffer[0];kbv[4]= LEDDataBuffer[1];kbv[6]= LEDDataBuffer[2];kbv[7]= LEDDataBuffer[3];LCDShow(kbv);}}//串口1接收中断服务例程void isr_uart1_re(void){uint_8 flag = 1;enter_critical();ch = uart_re1(UART_TEST, &flag);uart_send1(UART_1,ch);if (0 == flag){Data[Length]=ch;if(Data[Length]=='#'){g_Flag = 1;}Length++;}exit_critical();}3.3.3.主函数main.c#include "includes.h" //包涵总头文件int main(void){//1.声明主函数使用的局部变量LEDDataBuffer[0]='5';LEDDataBuffer[1]='8';LEDDataBuffer[2]='1';LEDDataBuffer[3]='1';LEDDataBuffer[4]='3';LEDDataBuffer[5]='2';uint_32 run_counter; //运行计数器g_Flag=0;//2.关总中断enter_critical();// 进入临界区//3.初始化底层模块LEDInit(); //LED初始化LCDInit(); //LCD初始化KBInit(); //键盘初始化tpm_init(TPM0,TPM_CLKSRC_PLL,1000); //初始化TPM 模块,1ms中断一次uart_init (UART_TEST, bus_clk_khz, 9600); //串口1初始化, 总线时钟24000Khz,波特率9600//4.缓冲区赋值//5.开中断tpm_enable_int(0);init_critical();uart_enable_re_int(UART_TEST);uart_send_string(UART_1,"Uart Initial\r\n");uart_send_string(UART_1,"SD-FSL Library Flash Test!\r\n\r\n");uart_send_string(UART_1,"Press ? to get help\r\n");//====================================================== =====================for(;;){run_counter++;if (run_counter > RUN_COUNTER_MAX){run_counter = 0;} // end_ifif(g_Flag==1)g_Flag=0;switch(Data[0]){case '?'://命令帮助uart_send_string(UART_1,"写入格式如下:\r\n");uart_send_string(UART_1," 写入W\r\n");break;case 'w'://写入操作case 'W':LEDDataBuffer[5]=Data[1];LEDDataBuffer[4]=Data[2];LEDDataBuffer[0]=Data[3];LEDDataBuffer[1]=Data[4];LEDDataBuffer[2]=Data[5];LEDDataBuffer[3]=Data[6];break;default:break;}Length=0;}}//====================================================== =====================return 0;}4.调试说明4.1. 调试情况(1)发送?#收到帮助命令LCD显示默认的时间23:58:11LED显示分钟和秒58:11(2)发送w+6位时间+#结束,设置时间LCD显示默认的时间12:34:56LED显示分钟和秒34:564.2. 程序结果及分析4.2.1.调试过程中遇到的问题及解决方法(1)问题:输入命令如?#,输出是帮助命令无限循环,应该帮助命令只出现一次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告题目基于LCD的电子时钟课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生将理论知识与实际应用结合在一起;3、培养学生的自我学习能力和解决问题的能力;4、培养学生的协作意识和团队合作能力;5、培养学生的总结经验的能力。

二、研究方法及手段应用1、问题解决模块化,将任务分成若干模块,分模块调试和完成任务;2、查阅网上的相关素材,查阅相关论文资料,进行比较、研究;3、在独立思考的基础上,请教老师,和同组同学讨论、学习;4、反复调试、总结经验、排除差错;5、连接PC和EL-ARM-830实验箱,完成整个实验环境搭建;6、运用Code Warrior for ARM编译软件编译汇编语言和进行调试;7、使用H-JTAG下载至硬件进行观察、调试。

三、课程设计预期效果1、在液晶屏上显示表盘,和时间点和时、分、秒针;2、在液晶屏上显示时、分、秒、年、月、日;3、在液晶屏上实现指针的动态图像;4、可以实现自己设定的初始时间。

学生姓名:王宁专业年级:09电子信息工程目录前言 (4)第一章系统设计 (5)第一节课题目标及总体方案 (5)第二节相关组件说明 (5)第三节项目设计模块描述及流程图 (7)1.主函数模块 (8)2.时钟表盘的构建模块 (8)3. 表盘下日期的显示模块 (9)4.任务运行模块 (10)第二章结果与显示 (11)结果显示 (11)心得体会 (12)参考文献 (13)附录 (13)前言近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。

嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。

实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。

RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。

随着集成电路技术的不断发展,RTC器件的新品也不断推出。

这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。

关键字:嵌入式系统、实时时钟RTC第一章系统设计第一节课题目标及总体方案随着嵌入式技术的发展,我们身边充斥着各类各样的嵌入式电子产品。

实时时钟(RTC)就是一种在现代电子设备中应用非常普遍,可以帮助人们实时、准确的掌握时间的器件,如手机、PDA及一些智能仪表都提供了时钟显示。

我们本次课题的目标就是要基于S3C44BOX芯片设计出一个实时时钟,编写汇编语言可以通过Code Warrior for ARM软件调试,然后下载至实验箱内进行观察。

在试验箱中的LCD液晶屏幕上显示出时钟的圆盘和动态的指针,并在时钟下方显示出当前的年份和日期。

另外,我们将要实现的系统分为几个模块实现,每个模块间相对独立而又相互联系,在主函数中进行调用。

第二节相关组件说明一、LCD显示原理S3C44B0X 中具有内置的LCD 控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。

它支持单色、4级、16级灰度LCD显示,以及256彩色LCD显示。

在显示灰度时,它采用时间抖动算法(time-based dithering algorithm)和帧率控制 (Frame Rate Control)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。

通过软件编程,可以实现233或332的RGB调色的格式。

对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD 控制器中的相应寄存器写入不同的值,来配置不同的LCD 显示板。

本次课设的显示模式设置为8bit单扫描模式。

二、项目文件说明本实验使用实验教学系统的CPU板,液晶显示器(LCD),在LCD下方,有一个可调电阻,标号为VR2,它用来调整LCD的对比度及亮度。

在LCD的右下方,有一个黄头的按键,它用来开关LCD,它的标号为LCD_ON/OFF。

该项目添加了包含LCD驱动程序的文件夹Gui,其中,包括四个文件夹,Font中存放的是字体文件,Glib中存放绘图的中层和上层的函数,上层函数是直接供用户调用的API,Init中存放GUI初始化的函数,Lcddriver中存放的是LCD的底层驱动函数。

以及对LCD控制器的初始化函数。

把LCD驱动程序加入的过程,也就是把整个GUI文件夹加入该项目里,同时,还要在Application\INC目录下的config.h文件中,加入GUI程序的头文件,#include "..\..\Gui\Glib\Glib.h",这是为了在应用中方便调用画图的API函数。

如果,要在LCD上显示英文或汉字,还要在Application\SRC\Main.c中声明引用的是extern GUI_FONT CHINESE_FONT12;等外部定义过的字体。

图1第三节项目设计模块描述及流程图1.模块描述:我先进行了整个系统的规划,将整个系统分为四大模块:第一,主函数模块;第二,时钟表盘的构建模块,包括:设置液晶全屏背景色、绘制时钟表盘形状并着色、绘制表盘内12个点的形状并着色以及绘制表盘内指针的形状并着色;第三,表盘下日期的显示模块,包括:定位表盘下时间和日期的坐标和日期显示函数的编写;第四,任务运行模块。

2.流程图:一、主函数模块二、时钟表盘的构建模块(1)绘制时钟表盘形状并着色(2)绘制表盘内12个点的形状并着色(3)绘制表盘内指针的形状并着色(以秒针为例)三、表盘下日期的显示模块(1)定位表盘下时间和日期的坐标(仍以秒计时为例)(2)日期显示函数的编写四、任务运行模块第二章结果与显示结果显示1.经过多次的调试和排查,以及总结,使用编译器编译,编译器提示编译文件正确,没有出现任何错误,没有出现任何警告,而且编译出文件容量很小,下载迅速,符合软件设计要求。

2.下面的图片是从实验箱上的LCD屏幕上显示的图像拍下来的,也就是我本次课程设计的成果。

从图片显示上可以看出,所有预计实现的功能和界面都实现了。

表盘显示在相对中央的地方,整个屏幕以白色为基调,表盘底色为灰色,指针为红、绿、黄三种颜色,点数为绿色,表盘下方显示当前时间、日期,同时界面很漂亮,色彩对比很鲜明。

图2 效果显示图心得体会说实话,刚开始拿到课设题目的时候感觉毫无头绪,即使在查阅了大量相关资料的基础上。

后来,手上有了一份参考程序,打开一看,顿时懵了。

当时想如果纯粹靠我自己或者和同学讨论,恐怕很难完成这次课设吧。

于是,实验室刚开放,我就立刻去调试程序,通过观察试验箱上显示的结果来理解程序。

一个模块一个模块对应的理解下去之后,思路开始清晰起来。

每当遇到一行程序不懂或者有疑问时,比如这行程序起什么作用、可不可以删掉或者可不可以换个位置,我都通过程序的相关改动结合实验结果的观察将这些疑问解决掉了。

同时,同学的帮助也给了我很多的启发,非常感谢他们。

但不得不承认,关于μC/OS-II操作系统方面理解的很不透彻。

验收时,我只是把时钟界面的构建部分理解了,没有过多的加深对操作系统μC/OS-II 的学习,所以验收时对于老师的提问也是磕磕绊绊。

因而,在编写这份报告前,我又认真地上网搜索了μC/OS-II操作系统的简介,尤其是它的优点和任务调度方面。

在写这份报告时,我也许还没能完全弄懂μC/OS-II操作系统,但我相信,只要努力过,总会有收获。

参考文献1.吴学智,《基于ARM的嵌入式系统设计与开发》……人民邮电出版社,2007 2.金建设,《嵌入式系统基础实验》…………………大连理工大学出版社,20093.王晓薇,《嵌入式硬件基础实验与习题解答》…………电子工业出版社,2009附录1.软件清单:1)Code Warrior for ARM编译软件;2)AXD Debugger 调试软件;3)H-JTAG软件;2.硬件:PC和EL-ARM-830实验箱;3.程序清单:#include "..\inc\config.h"#define x_line 160#define y_line 80extern GUI_FONT CHINESE_FONT12;extern GUI_FONT CHINESE_FONT16;extern GUI_FONT GUI_Font8x16;I8 Hour[3],Min[3],Sec[3];I8 hour = 9, min = 0, sec = 0,ms;I8 YEA1[3],YEA2[3],MON[3],DAY[3];int yea1 = 20,yea2=12, mon = 5, day = 18;I8 XH1[3],XH2[3],XH3[3],XH4[3],XH5[3],XH6[3],XH7[3];int xh1=9,xh2=62,xh3=61;int xh4=02,xh5=19,xh6=22,xh7=23;//SpaceXS[61]、SpacYS[61]分别表示秒针的横坐标、纵坐标//SpaceXM[61]、SpaceXM[61]分别表示分针的横坐标、纵坐标//SpaceXH[13]、SpacYH[13] 分别表示时针的横坐标、纵坐标int SpaceXS[61]={160,165,170,175,180,185,189,193,197,201,205,206,207,208,209,210,209,208,207,206,205,201,197,193,189,185,180,175,170,165,160,155,150,145,140,135,131,127,123,119,115,114,113,112,111,110,111,112,113,114,115,119,123,127,131,135,140,145,150,155,160,},SpaceYS[61]={30,31,32,33,34,35,39,43,47,51,55,60,65,70,75,80,85,90,95,100,105,109,113,117,121,125,126,127,128,129,130,129,128,127,126,125,121,117,113,109,105,100,95,90,85,80,75,70,65,60,55,51,47,43,39,35,34,33,32,31,30},SpaceXM[61]={160,164,168,172,176,180,183,186,189,192,195,196,197,198,199,200,199,198,197,196,195,192,189,186,183,180,176,172,168,164,160,156,152,148,144,140,137,134,131,128,125,124,123,122,121,120,121,122,123,124,125,128,131,134,137,140,144,148,152,156,160},SpaceYM[61]={40,41,42,43,44,45,48,51,54,57,60,64,68,72,76,80,84,88,92,96,100,103,106,109,112,115,116,117,118,119,120,119,118,117,116,115,112,109,106,103,100,96,92,88,84,80,76,72,68,64,60,57,54,51,48,45,44,43,42,41,40},SpaceXH[13]={160,175,185,190,185,175,160,145,135,130,135,145,160},SpaceYH[13]={50,55,65,80,95,105,110,105,95,80,65,55,50},//当前要显示的时间的3个指针的坐标取地址。

相关文档
最新文档