基于lcd的电子时钟实验课程设计报告毕设论文Word下载.docx
《基于lcd的电子时钟实验课程设计报告毕设论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于lcd的电子时钟实验课程设计报告毕设论文Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
2、培养学生的编程能力、用计算机解决实际问题的能力。
3、学习LCD与ARM的LCD的控制器的接口原理;
4、掌握内置LCD控制器驱动编写方法;
5、RTC控制方法。
二、研究方法及手段应用
1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;
2、查阅网上的相关素材,查阅相关论文资料,进行比较、研究;
3、在独立思考的基础上,请教老师,和同组同学讨论、学习;
4、运用Proteus仿真环境、S3C44B0x实验箱实验平台进行实验调试;
5、学习并使用使用ADS1.2编译汇编语言和C语言,连接生成Hex文件和Axf文件。
三、课程设计预期效果
1、完成实验环境搭建;
2、分模块调试和编译;
3、组合并完善程序。
4、联合仿真软件运行程序
5、显示时钟界面;
6、动态显示当前的时间,包括:
年、月、日、时、分、秒,时针,分针、秒针必须为动态实时指示当前的时间;
学生姓名:
刘晓婷专业年级:
电信、10级
目录
前言………………………………………………………………………………………………1
第一章系统设计…………………………………………………………………………………2
第一节课题目标及总体方案…………………………………………………………………..2
………………
第二节……………………………..
…………………
第二章实验(测试)结果及讨论……….……………………………………………………….5
第三章结论………………………………………………………………………………………10
心得体会…………………………………………………………………………………………42
参考文献…………………………………………………………………………………………43
附录…………………………………………………………………………………………44
一、源程序………………………………………………………………………………………60
二、其他………………………………………………………………………………………61
前言
计算机技术及集成电路技术的飞速发展,嵌入式技术的日渐普及,使其在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。
通常我们常用的LCD显示模块,有两种,一是带有驱动电路的LCD显示模块,一是不带驱动电路的LCD显示屏。
大部分ARM处理器中都集成了LCD的控制器,所以,针对ARM芯片,一般不使用带驱动电路的LCD显示模块。
S3C44B0X中具有内置的LCD控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。
实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。
RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。
随着集成电路技术的不断发展,RTC器件的新品也不断推出。
这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。
通过S3C44B0X实验系统板实现LCD电子时钟的设计,可以增强我们的自学能力和思考能力,掌握科学研究的方法,提高信息检索的能力以及获取与时俱进知识的能力。
同时,使我们深刻学习了ARM的相关知识,增强对实际电路的感性认识,提高了分析问题,处理问题的能力。
关键字:
S3C44B0X、嵌入式、电子时钟
第一章系统设计
第一节课题目标及总体方案
本实验是基于ARM处理器而设计的实时时钟,综合性较强,涉及到RTC外部中断,C语言编程等知识。
需使用到中断,涉及对外部中断进行初始化,其中有规定优先级,中断触发方式,中断地址分配。
采用液晶模块LCD显示实时时间,同样要对它进行初始化,包括检查总线忙与闲,传送地址,传送数据及显示函数的编程。
运用ads1.2编译汇编语言和C语言,连接生成Hex文件和Axf文件。
使用PROTEUS仿真,选用ARM7LPC2106芯片和LCD12864,导入Hex文件,然后进行软件仿真调试。
将Axf文件下载到S3C44B0试验箱上,通过LCD实物调试程序,完成电子时钟计时功能。
第二节相关组件说明
一、LCD显示原理
它支持单色、4级、16级灰度LCD显示,以及256彩色LCD显示。
在显示灰度时,它采用时间抖动算法(time-basedditheringalgorithm)和帧率控制(FrameRateControl)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。
通过软件编程,可以实现233或332的RGB调色的格式。
对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD控制器中的相应寄存器写入不同的值,来配置不同的LCD显示板。
本次课设的显示模式设置为8bit单扫描模式。
二、proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。
前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。
它的元器件、连接线路等却和传统的单片机实验硬件高度对应。
这在相当程度上替代了传统的单片机实验教学的功能,例:
元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
三、S3C44B0X实验系统简介
EL-ARM-830型教学实验系统属于一种综合的教学实验系统,该系统采用了目前在国内普遍认同的ARM7TDMI核,32位微处理器,实现了多模块的应用实验。
它是集学习、应用编程、开发研究于一体ARM实验教学系统。
用户可根据自己的需求选用不同类型的CPU适配板,在不需要改变任何配置情况下,完成从ARM7到ARM9的升级,同时,实验系统上的Tech_V总线能够拓展较为丰富的实验接口板。
用户在了解Tech_V标准后,更能研发出不同用途的实验接口板。
除此之外,在实验板上有丰富的外围扩展资源(数字、模拟信号发生器,数字量IO输入输出,语音编解码、人机接口等单元),可以完成ARM的基础实验、算法实验和数据通信实验、以太网验。
其功能框图如下所示。
四、USOSII操作系统简介
μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。
μC/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。
CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。
用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。
μC/OS-II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。
μC/OS-II已经移植到了几乎所有知名的CPU上。
第三节流程框图
第4节主要程序分析
1、程序中初始化包括
1.Lcd的初始化:
U16LCD_Init(U8Lcd_Bpp)
{
switch(Lcd_Bpp)
Case8:
rLCDCON1=(0)|(2<
<
5)|(MVAL_USED<
7)|(0x1<
8)|(0x1<
10)|(CLKVAL_COLOR<
12);
rLCDCON2=(LINEVAL)|(HOZVAL_COLOR<
10)|(10<
21);
rLCDSADDR1=(0x3<
27)|(((U32)Video_StartBuffer>
>
22)<
21)|M5D((U32)Video_StartBuffer>
1);
rLCDSADDR2=M5D((((U32)Video_StartBuffer+(SCR_XSIZE*LCD_YSIZE))>
1))|(MVAL<
21)|1<
29;
rLCDSADDR3=(LCD_XSIZE/2)|(((SCR_XSIZE-LCD_XSIZE)/2)<
9);
rREDLUT=0xfdb96420;
rGREENLUT=0xfdb96420;
rBLUELUT=0xfb40;
rDITHMODE=0x0;
rDP1_2=0xa5a5;
rDP4_7=0xba5da65;
rDP3_5=0xa5a5f;
rDP2_3=0xd6b;
rDP5_7=0xeb7b5ed;
rDP3_4=0x7dbe;
rDP4_5=0x7ebdf;
rDP6_7=0x7fdfbfe;
rDITHMODE=0x12210;
rLCDCON1=
(1)|(2<
7)|(0x3<
8)|(0x3<
break;
default:
return1;
}
return0;
}
2.中断向量的初始化:
voidKeyINT_Init(void){
if((rINTPND&
BIT_EINT4567))
{
SPC=BIT_EINT4567;
}
rINTMSK=~(BIT_GLOBAL|BIT_EINT4567);
3.RTC的初始化:
voidRtc_Tick_Init(void)
BIT_TICK))
rI_ISPC=BIT_TICK;
rINTMSK&
=~(BIT_GLOBAL|BIT_TICK);
rRTCCON=0x0;
rTICINT=1|(1<
7)