LCD电子广告屏

2024-05-25 版权声明 我要投稿

LCD电子广告屏(精选4篇)

LCD电子广告屏 篇1

一、设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。

1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与 用》《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。

2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完 整的实用程序,并仿真运行,保证设计的正确性。

3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器 件、布线、编程、调试、撰写报告等。

二.设计内容

1、设计要求

单片机控制的LCD 1602的电子广告牌

用单片机控制字符型LCD 1602显示字符信息“Hello everyone!”和“Welcome to Harbin”。字符信息“Hello everyone!”、“Welcome to Harbin”分别从LCD 1602右侧第一行、第一行滚动移入,然后再从左侧滚动移出,循环显示。

2、设计思路

液晶模块用命令控制显示由模块本身已经给出,AVR、LCD 的VSS、VDD、VEE 不需连接,默认VSS=0V、VDD=5V、VEE=-5V、GND=0V,液晶模块与单片机的连接不采用添加多个与非门的方式,而采用更直接、清晰的方式,使WR、RD直接与LCD的R/W、RS相连,使能端与P3^5相连,由软件给出下降沿。

3、功能说明

1)给LCD写命令、送数据等均需要进行选中寄存器、发送命令或数据代码、使能端有效等过程,若逐一写出会使程序混乱冗长,因此将写命令、写数据、初始化等分别封装在子函数中,方便随时调用。

2)为实现滚动显示,使用命令打开整体显示移动。

3)显示字母只需将相应的ASCII代码发送给LCM即可,将需要显示的字符直 接设为数组中的元素,显示时逐一写入液晶。

4)若数组中只有相应的字符,显示的末尾会出现预料之外的字符,因此加入足 够的空格避免这种现象发生。

5)为实现循环不断显示的功能,只需将函数整体放入while(1)中即可,但应注 意下一次循环开始前将DDRAM的地址回复为第一行。

四.实验原理图

三、硬件电路元件介绍

1、AT89C51单片机:

AT89C51是一种低电压、高性能CMOS 8位微处理器,它自带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory),俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪存存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它的部分引脚功能介绍如下。

P0口:P0口为一个8位漏级开路双向I/O口。当P1口的管脚第一次写1时,被定义为高阻输入。P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输出,由于外部下拉为低电平,它将输出电流。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

2、液晶模块

液晶模块简单点说就是屏+背光板+PCB板+铁框。

电力终端、仪器仪表等的显示部件就是液晶模块,其地位相当于CRT中的显像管。

其它部分包括电源电路,信号处理电路等,当然还有外壳什么的。

模块主要分为屏和背光灯组件。两部分被组装在一起,但工作的时候是相互独立的(即电路不相关)。

液晶显示的原理是背光灯组件发出均匀的面光,光通过液晶屏传到我们的眼睛里。屏的作用就是按像素对这些光进行处理,以显示图像。

3、排阻

排阻,是一排电阻的简称,就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。内存在处理、传输数据时会产生大小不一的工作电流。而在内存颗粒走线的必经之处安装一排电阻,则能够帮助内存起到稳压作用,让内存工作更稳定。从而提升内存的稳定性,增强内存使用寿命。

四、软件部分的程序流程图

五、源程序清单

C语言程序: #include

#define uchar unsigned char #define uint unsigned int #define LCDPORT P0 uchar code tab[]=“Hello everyone!”;

uchar code tab1[]=“Welcome to Harbin ”;//字符后面加若干个空格,防止滚动显示时出现不该出现的字符

sbit LCDE=P3^5;sbit LCDRW=P3^6;sbit LCDRS=P3^7;

void WriteCMD(uchar);

//定义写命令函数

void init();

//定义初始化函数

void WriteData(uchar);

//定义写数据函数

void Delay();

//定义延迟函数

五、源程序清单

C语言程序:

#include

#define uchar unsigned char #define uint unsigned int

#define LCDPORT P0 uchar code tab[]=“Hello everyone!

”;

uchar code tab1[]=“Welcome to Harbin

”;//字符后面加若干个空格,防止滚动显示时出现不该出现的字符

sbit LCDE=P3^5;sbit LCDRW=P3^6;sbit LCDRS=P3^7;void WriteCMD(uchar);

//定义写命令函数

void init();

//定义初始化函数

void WriteData(uchar);

//定义写数据函数

void Delay();

//定义延迟函数 void mydelay(int);

void main()

{ uint i;

//定义无符号整形变量

init();

//液晶模块的初始化

while(1)

//使之一直进行滚动显示程序,不断循环

{ for(i=0;i<32;i++){

WriteData(tab[i]);

//显示第一行字符

mydelay(50);

//每显示一个字符后停留一会,越过液晶的“忙”状态

}

mydelay(50);

WriteCMD(0x01);

//清屏,准备进行下一行显示

WriteCMD(0x80+0x40+15);//改变DDRAM的地址,更改为第二行末尾,从此处开始进入字符

for(i=0;i<33;i++)

//开始输入第二行字符

{ WriteData(tab1[i]);

mydelay(50);

}

mydelay(50);

WriteCMD(0x01);

WriteCMD(0x80+15);

//DDRAM的地址改回第一行,准备 进入下一次循环,显示重新开始

} }

void Delay()

{

uint uiCount;

for(uiCount=0;uiCount<250;uiCount++);}

void WriteCMD(uchar Command)

//写命令函数,用于修改液晶的状态 寄存器

{ Delay();

//先延时,越过液晶“忙”状态

LCDE=1;

//使能端先置1

LCDRS=0;

//设置RS为0,打开指令寄存器

LCDRW=0;

//设置为写寄存器状态

LCDPORT=Command;

//输出命令

LCDE=0;

//使能端由1变0,出现下降沿有效,执行命令

}

void WriteData(uchar dat)

//写数据函数,用于提供液晶的显示 的字符

{

Delay();

LCDE=1;

//把LCD改为写入数据状态 LCDRS=1;

LCDRW=0;

LCDPORT=dat;

//再输出数据

LCDE=0;

//使能端有效,显示数据 }

void init()

//初始化程序,模块化使程序更清晰

{

LCDRW=0;

LCDE=0;

WriteCMD(0x38);

//设置双行显示、8位数据接口

WriteCMD(0x0c);

//设置整体显示开、光标关、字符不闪烁

WriteCMD(0x07);

//设置为增量方式,整体显示移动开

WriteCMD(0x01);

//清屏

WriteCMD(0x80+15);

//设置字符进入屏幕的初始位置 } void mydelay(int x){

int i,j;

for(i=x;i>0;i--)

for(j=255;j>0;j--);}

六、仿真调试

1、软件调试

借助 Keil 和 Proteus进行单片机系统软硬件的开发、运行、仿真。由

Keil 软件集成文件管理编译环境,编译 C 语言源程序,下载、运行、调试,连接和定位目标文件和库,创建 HEX 文件,调试目标程序。利用Proteus 完成硬件设计仿真平台,实现硬件原理图的连接,并将hex文件与89c51同频,下载运行,仿真实现。

2、仿真调试

在将电路按原理图连接好之后,通过89c51将由Keil产生的hex文件下载到单片机内。运行调试,观察液晶模块上字幕的显示,符合实验设计要求。

3、难点与解决思路

设计过程中遇到程序设计问题,网上找到视频教程学习程序的编写,以及查阅C语言课本得以解决。调试过程中发现液晶不显示,电路高低电平不符合规律现象,通过检查和改变线路部分连接解决了问题。

七、课设体会

过本次实验我们认识到了单片机的应用,并掌握了单片机的构造成分,液晶模块的应用领域。而通过自己的实际动手操作,实际查书找资料提高了自己的动手实践能力和知识的储备和应用能力,认识自己的不足并加以改正,增加字自己的成就感,为以后的工作和学习打好坚实的基础。

七、参考文献

【1】《单片机原理及应用》

主编

李建忠

【2】高锋《单片微型计算机原理与接口技术》

科学出版社

【3】朱清慧、张凤蕊、翟天嵩、王志奎

《Proteus教程——电子线路设计、制板与仿真》,清华大学出版社出版

【4】李全钊、迟荣强,《单片机原理及接口技术》,高等教育出版社出版

【5】李学礼,《基于Proteus的80C51单片机实例教程》,电子工业出版社出版

【6】周向红,《51系列单片机应用与实践教程》,北京航空航天大学出版社出版 【7】《单片机应用及技术》,电子工业出版社

【8】Proteus

LCD电子广告屏 篇2

关键词:LCD;NiosII;SOPC

Based on the NiosII processor LCD roller screen design

YU Yang, SUN Jin-hui

(Chinese people's Armed Police Forces Academy Foundation Department,

Hebei Langfang 065000)

Abstract: NiosII embedded processor with its flexible design advantages in embedded are widely used in the field. This paper describes a NiosII based liquid crystal display screen scroll screen display control module, gives the hardware schematic diagram and software code. The scheme for NiosII system development is had draw lessons from a meaning.

Keywords: LCD;NiosII;SOPC

Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS。Altera的Stratix 、Stratix GX、 Stratix II和 Cyclone系列FPGA全面支持Nios II处理器。Nios II系列包括3种产品,Nios II/f(快速,最高的系统性能,中等FPGA使用量);Nios II/s(标准,高性能,低FPGA使用量);Nios II/e(经济低性能,最低的FPGA使用量)。这3种产品具有32位处理器的基本结构单元——32位指令大小,32位数据和地址路径,32位通用寄存器和32个外部中断源;使用同样的指令集架构(ISA);100%二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。另外,Nios II系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合。本文采用CycloneTM器件中的EP1C6Q240C8来实现 LCD的滚屏设计。

1 系统硬件结构

本系统的硬件结构如图1所示。

1.1 处理器

本文系统中的处理器选用的是Altera 公司提供的Cyclone 系列EP1C6Q240C8。该芯片采用240 脚的PQFP(即Plastic Quad Flat Package,塑料方块平面封装)封装,提供185 个I/O 接口。该芯片拥有6030个LES;可提供239616 bit的RAM;芯片内部还自带有2 个锁相环,可以在高速运行的时候保证系统时钟信号的稳定性。

1.2 EPCS配置器件

Altera串行配置器件是工业级低成本的配置器件。它们是基于高效,低成本的要求而设计的产品,提供在系统编程(ISP)和多次编程能力,在价格敏感的大批量应用中,Altera的串行配置器件是Cyclone系列FPGA理想的配置器件,也是配置Cyclone系列FPGA最简单的方法,能够使 FPGA 和配置器件以最低的价格实现完整的可编程芯片系统 (SOPC) 解决方案。标准型配置器件,包括EPC2、EPC1、EPC1441、EPC1213、EPC1064和EPC1064V。本文使用EPC2配置器件。使用时,首先使用下载电缆将计算机生成的FPGA配置文件*.Sof使用programmer烧入EPC2配置器件中,然后由EPC2配置器件控制配置时序对FPGA进行配置,一次烧写即可重复使用,编程完后可以脱离计算机工作。

1.3 FLASH

对于较为复杂的SOPC(System-on-a-Program mable-chip)即可编程片上系统,用户程序和需要下载的文件一般较大,用EPCS来存储是不现实的。本文根据设计的具体要求采用FLASH来存储16*16的汉字点阵字库和保存工程文件.elf。一个汉字需用16×16点阵显示,一个字节(Byte)有8位(bit),一位代表一个点,故一个字节只能表示8个点,一个16×16点阵的汉字要占32(2×16)个字节。3755个一级汉字共需3755×32=120160 Byte,所以一级汉字字库需占117 kB存储空间;工程文件.elf较小,大约为40 kB;另外,为了满足未来扩充汉字字库的需要,因此,选择存储容量为2 Mbit的FLASH作为只读存储器,并可使用flash programmer将*.elf和需要下载的文件烧入FLASH中。

1.4 随机存储器

在SOPC开发中,随机存储器(RAM)主要是为了存放可执行代码和程序中用到的变量。由于所采用的处理器中的RAM的存储容量较小,根据本文中设计电路的要求,采用1048 kbit的外部SRAM。

1.5 液晶显示模块

液晶显示模块是由控制器、行驱动器、列驱动器和液晶显示屏等器件构成。其核心部件LCD控制器是可编程接口芯片,它一方面提供与微控制器(即NIOS处理器)的接口,一方面连接行/列驱动器。通过对可编程接口芯片编程来实现对LCD的操作控制。本文采用的接口可编程芯片是T6963C来控制单色点阵图形液晶LCD。

nlc202309032225

T6963C是一种内置控制器的图形液晶显示模块,其面向显示存储器的引脚有8根数据线(D7~D0)、16根地址线(AD15~AD0)和4根控制线,最多能管理64 KB大小的显示存储器。T6963C单屏可以达到640×128,双屏可以达到640×256。

2 软件设计

使用NIOS对LCD进行控制主要是通过对LCD的控制器进行编程来实现的,在本文中采用T6963c控制器,其软件方案流程图如图2所示。

2.1 LCD初始化

LCD模块的初始化就是对LCD模块的寄存器进行初始化,也就是对LCD控制器当中的寄存器写入要预设的数据,设置好LCD的特性。LCD模块的初始化包括地址指针设置,显示区域设置,显示方式设置,显示状态设置。其软件实现主要依据表1指令来实现。

T6963C模块的控制指令可带有0个、1个或2个参数。在执行每条指令时都是先送入参数(如果有的话),再送入指令代码。设计软件时无论输入哪种指令,首先进行以下操作,

(1)设置数据总线为输出模式输出

IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff); //数据总线:输出

(2)设置片选信号有效

IOWR_ALTERA_AVALON_PIO_DATA (LCD_ CS_BASE,0);

(3)设置写信号有效

IOWR_ALTERA_AVALON_PIO_DATA (LCD_ WR_BASE,0);

然后根据不同指令,编写程序。

对于无参数指令,

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ CD_BASE,1); //选择命令,即T6963C内部通过一根地址线来确定两个寄存器,当地址线为低电平,选择DATA寄存器;当地址线为高电平,则选择COMMAND/STATUS寄存器。

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ DB_BASE,无参数指令);

对于一个参数指令,首先输入参数,然后输入指令,即

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ CD_BASE,0); //选择数据

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ DB_BASE,参数数据);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ CD_BASE,1); //选择命令

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ DB_BASE,指令);

对于两个个参数指令,首先输入2个参数,然后输入指令,即

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ CD_BASE,0); //选择数据

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ DB_BASE,参数数据1);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ DB_BASE,参数数据2);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ CD_BASE,1); //选择命令

IOWR_ALTERA_AVALON_PIO_DATA(LCD_ DB_BASE,指令)。

2.2 显示汉字

汉字显示的基本方法有两种,即文本显示方式和图形显示方式。二者显示的方法不同,但都必须先在程序区设定汉字的字模数据。

本文采用的是图形方式下显示汉字,使用的液晶显示屏是240*128。该液晶显示屏横向的8个点即8×1点阵(也称图形显示单位)是一个字节数据,每个字节在显示缓冲区中均有对应的地址,液晶屏幕的左上角横向8个点对应液晶模块显示缓冲区的首地址。16*16点阵汉字对应32个图形显示单位。采用图形显示方式时,根据汉字的存储规律将32个图形显示单位信息写入存储单元,则对应的位置就会显示出汉字。

在显示汉字时,关键是确定要读取的存储单元的位置。本文中采用的汉字存储方式是按照区位的顺序排列的,前一个字节为该汉字的区号,后一个字节为该字的位号。每一个区记录94个汉字,位号则为该字在该区中的位置。因此,汉字在汉字库中的具体位置计算公式为:

94*(区号-1)+(位号-1)(1)

这是以汉字为单位得到的该汉字在汉字库中的位置,由此可得到16*16点阵字库以字节为单位的该汉字在汉字库中的位置:

(94*(区号-1)+(位号-1))*32(2)

这样通过将字模数据逐个字节地写入图形显示区,即可在显示屏上坐标为(X,Y)处顺序显示出汉字。软件实现如下。

alt_u32 m_Addr=图形区地址高八位*256+图形区地址高八位+y*30+x;

alt_u32 i;

alt_u32 *Font_Addr=(alt_u32*)((内码/256-0xa1)*94+(内码%256)-0xa1)*32;

for(i=0;i<8;)

{

IOWR_ALTERA_AVALON_PIO_DATA (LCD_CD_BASE,0); //设置当前地址

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, m_Addr&0xff);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, m_Addr/256);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE,1);

IOWR_ALTERA_AVALON_PIO_DATA (LCD_DB_BASE, 0x24);

IOWR_ALTERA_AVALON_PIO_DATA (LCD_CD_BASE,0); //读取第一个字节

nlc202309032225

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, Font_Addr [i++]);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE,1);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, 0xc0);

IOWR_ALTERA_AVALON_PIO_DATA (LCD_CD_BASE,0); //读取第二个字节

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, Font_Addr[i++]);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE, 1);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, 0xc4);

m_Addr+=30;

}

2.3 LCD滚屏设计

定时间、定间隔地修改文本显示区与图形显示区首地址将会产生显示画面滚动显示效果。软件实现如下:

Delay(自行设定延时时间);

alt_u32 Text_stadd;

alt_u8 Text_stadd_newL,Text_stadd_newH;// 调整后的文本显示区低8位地址和高8位地址

Text_stadd_new=文本区地址高8位*256+文本区地址低8位+0x14 //0x14表示每行可显示30个字符

Text_stadd_newL= Text_stadd_new/256;

Text_stadd_newH= Text_stadd_new%256;

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, Text_stadd_newL);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, Text_stadd_newH);

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE,1);

IOWR_ALTERA_AVALON_PIO_DATA (LCD_DB_BASE,40H)。

图形显示区首地址的调整方法同文本区的调整方法相同。

3 结束语

本文阐述基于NiosⅡ嵌入式处理器控制液晶显示器的硬件设计方案和软件设计方法,充分体现了NiosⅡ嵌入式处理器在LCD设计中的灵活性。

参考文献

[1] 周立功.SOPC嵌入式系统基础教程,北京航空航天大学出版社,2006.

[2] 侯建军,郭勇.SOPC技术基础教程, 北京交通大学,2008.

[3] 王伟,卢博友,刁修慧,刘平.基于嵌入式系统的LCD汉字显示,微计算机信息,2008.[17]

LCD电子广告屏 篇3

基于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、可以实现自己设定的初始时间和跨年效果;

目 录

摘要................................................................................................................................3 第一章系统设计............................................................................................................4 第一节课题目标及总体方案..................................................................................5 第二节相关组件说明..............................................................................................5 第三节项目设计模块描述及流程图......................................................................7

1.主函数模块...................................................................................................8 2.时钟表盘的构建模块...................................................................................9 3.表盘下日期的显示模块...........................................................................11 4.任

模块………………………………………………………………………………….12 第二章 结果与讨论..................................................................................................12 1.结果显示.....................................................................................................13 2.讨论.............................................................................................................13 心得体会......................................................................................................................14 参考文献......................................................................................................................16 附 录..........................................................................................................................16

摘要

近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。

实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。

关键字:嵌入式系统、实时时钟RTC

Abstract

In recent years, as computer technology and integrated circuit technology, the growing popularity of embedded technology in the telecommunications, networking, industrial control, medical, electronics and other fields are playing an increasingly important role.Embedded systems will undoubtedly become the most popular of the most promising areas of IT applications.RTC has a timing accuracy, low power consumption and small size and other characteristics, especially for embedded systems in a variety of loyalty and the time recorded event-related information, especially in communication engineering, electric power automation, industrial control and other areas of higher degree of automation unattended environment.With integrated circuit technology continues to evolve, RTC also has introduced new devices.These new products not only have accurate RTC, there is a large-capacity memory, temperature sensor and A / D data acquisition channel, etc., has become a set of RTC, data collection and storage functions in one integrated device, particularly applicable to micro-controller core embedded systems.Keywords: embedded systems, real-time clock(RTC)

第一章系统设计 第一节课题目标及总体方案

随着嵌入式技术的发展,我们身边充斥着各类各样的嵌入式电子产品。实时时钟(RTC)就是一种在现代电子设备中应用非常普遍,可以帮助人们实时、准确的掌握时间的器件,如手机、PDA及一些智能仪表都提供了时钟显示。我们本次课题的目标就是要基于S3C44BOX芯片设计出一个实时时钟,编写汇编语言可以通过Code Warrior for ARM软件调试,然后下载至实验箱内进行观察。在试验箱中的LCD液晶屏幕上显示出时钟的圆盘和动态的指针,并在时钟下方显示出当前的年份和日期,为了可以使老师更直观的观察到时钟可以跨年、跨月、跨日、二十四制,我们直接将时间设定至2011年12月31日23:59:55,这样,时钟一旦运行就可以经过五秒就可以观察到时间跳至2012年1月1日00:00:00。另外,我们将要实现的系统分为几个模块实现,每个模块间相对独立而又相互联系,在主函数中进行调用。最终在LCD上显示如图1所示的类似的时钟界面。

图1

第二节相关组件说明

一、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.mcp,在UCOSII系统上操作。图2为该项目 在ADS1.2环境下的目录结构组成。图3为打开该文件夹后,项目在ADS1.2环境下呈现出的目录及源文件结构组成框架。

图2

图3

该项目添加了包含LCD驱动程序的文件夹Gui,其中,包括四个文件夹,Font中存放的是字体文件,Glib中存放绘图的中层和上层的函数,上层函 数是直接供用户调用的API,Init中存放GUI初始化的函数,Lcddriver中存放的是LCD的底层驱动函数。以及对LCD控制器的初始化函数。把LCD驱动程序加入的过程,也就是把整个GUI文件夹加入该项目里,同时,还要在ApplicationINC目录下的config.h文件中,加入GUI程序的头文件,#include “....GuiGlibGlib.h”,这是为了在应用中方便调用画图的API函数。如果,要在LCD上显示英文或汉字,还要在ApplicationSRCMain.c

中声明引用的是

extern GUI_FONT CHINESE_FONT12;等外部定义过的字体。这样,编译就能通过,就把LCD的驱动程序以及小型的GUI图形库,加载到了UCOSII操作系统上了。

三、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 上。

第三节项目设计模块描述及流程图

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

2.流程图:

一、主函数模块

二、时钟表盘的构建模块

(1)设置液晶全屏背景色

(2)绘制时钟表盘形状并着色

(3)绘制表盘内12个点的形状并着色

(4)绘制表盘内指针的形状并着色(以秒针为例)

三、表盘下日期的显示模块

(1)定位表盘下时间和日期的坐标(仍以秒计时为例)

(2)日期显示函数的编写

四、任务运行模块

第二章 结果与讨论

一、结果显示

1.经过多次的调试和排查,以及总结,使用编译器编译,编译器提示编译文件正确,没有出现任何错误,没有出现任何警告,而且编译出文件容量很小,下载迅速,符合软件设计要求。

2.下面的图片是从实验箱上的LCD屏幕上显示的图像拍下来的,也就是我本次课程设计的成果。从图片显示上可以看出,所有预计实现的功能和界面都实现了。表盘显示在相对中央的地方,整个屏幕以蓝色为基调,表盘底色为黑色,表盘外环为灰色,指针为红、绿、蓝三种颜色,点数为黄色,表盘下方显示当前时间、日期,同时界面很漂亮,色彩对比很鲜明。

图4 跨年前3s

二、讨论 1.典型的嵌入式操作系统有Linux、μC/OS、Windows CE、VxWorks、Palm OS 和QNX等。其中关于μC/OS-II操作系统的特点即相比较其他几个操作系统的优势在前面的<相关组件说明>部分已给出,不再赘述。

2.关于μC/OS-II操作系统的任务调度方面

1)高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。

2)高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。

这两种调度方式在uC/OS-II的执行过程中非常普遍,一般来说前者发生在系统服务中,后者发生在时钟中断的服务程序中。

以上两个部分是我在本次课设验收之后新的了解。

心得体会

说实话,到目前为止所做的课设中,这次的嵌入式课设最不尽人意。刚开始毫无头绪,即使在查阅了大量相关资料的基础上。后来,手上有了一份参考程序,打开一看,顿时懵了。当时想如果纯粹靠我自己或者和同学讨论,恐怕很难完成这次课设吧。于是,实验室刚开放,我就立刻去调试程序,通过观察试验箱上显示的结果来理解程序。一个模块一个模块对应的理解下去之后,思路开始清晰起来。每当遇到一行程序不懂或者有疑问时,比如这行程序起什么作用、可不可以删掉或者可不可以换个位置,我都通过程序的相关改动结合实验结果的观察将这些疑问解决掉了。同时,同学的帮助也给了我很多的启发,非常感谢他们。

但不得不承认,关于μC/OS-II操作系统方面理解的很不透彻。验收时,我只是把时钟界面的构建部分理解了,没有过多的加深对操作系统μC/OS-II的学习,所以验收时对于老师的提问也是磕磕绊绊。老师让我充分认识到了自己在这次课设中的不足,谢谢老师。

因而,在编写这份报告前,我又认真地上网搜索了μC/OS-II操作系统的简介,尤其是它的优点和任务调度方面。在写这份报告时,我也许还没能完全弄懂μC/OS-II操作系统,但我相信,只要努力过,总会有收获。

参考文献

1. 吴学智,《基于ARM的嵌入式系统设计与开发》 ……人民邮电出版社,2007 2.金建设,《嵌入式系统基础实验》…………………大连理工大学出版社,2009 3.王晓薇,《嵌入式硬件基础实验与习题解答》…………电子工业出版社,2009

附 录

1.软件清单:

1)Code Warrior for ARM编译软件; 2)AXD Debugger 调试软件; 3)H-JTAG软件;

2.硬件:

经典的汽车滤光屏宣传广告词 篇4

2. 科技改变视界,智能不同凡响。

3. 视觉没烦恼,滤滤更健康。凯美霖让你见证奇迹。

4. 要视野,更有清新。

5. 液晶滤光屏,行车更安康。

6. 与您的视线紧密相连,与您的安全息息相关。

7. 凯美霖眼前一亮,引领新世界。

8. 时尚新视力,车屏凯美霖。

9. 凯美霖滤光屏,伴您飞驰天下。

10. 开车光炫目,护眼凯美霖。

11. 你让我看到我要的远方。

12. 新技术,新屏幕,新的舒适度。

13. 科技的魅力。

14. 滤光屏科技改变一切,凯美霖改变“视”界。

上一篇:经典书籍伴我成长 作文下一篇:表达美好爱情的古诗