基于凌阳单片机的电子时钟设计2Word文件下载.docx

上传人:b****6 文档编号:20172795 上传时间:2023-01-17 格式:DOCX 页数:14 大小:276.48KB
下载 相关 举报
基于凌阳单片机的电子时钟设计2Word文件下载.docx_第1页
第1页 / 共14页
基于凌阳单片机的电子时钟设计2Word文件下载.docx_第2页
第2页 / 共14页
基于凌阳单片机的电子时钟设计2Word文件下载.docx_第3页
第3页 / 共14页
基于凌阳单片机的电子时钟设计2Word文件下载.docx_第4页
第4页 / 共14页
基于凌阳单片机的电子时钟设计2Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于凌阳单片机的电子时钟设计2Word文件下载.docx

《基于凌阳单片机的电子时钟设计2Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于凌阳单片机的电子时钟设计2Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

基于凌阳单片机的电子时钟设计2Word文件下载.docx

电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。

随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。

在城市的主要营业场所、车站、码头等公共场所使用LCD数字电子钟已经成为一种时尚。

但目前市场上各式各样的LCD数字电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点。

因此有必要对数字电子钟进行改进。

本设计基于单片机技术原理,以SPCE061A单片机作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个LCD多功能数字时钟系统。

该时钟系统主要由时钟模块、计时模块、语音播报模块、液晶显示模块、键盘控制模块组成。

系统具有简单清晰的操作界面,能够准确显示时间以及日期,并且实现同步播报功能,可随时进行时间调整。

小组分工:

本小组成员有赵红,王瑞、吴勃庆、王鹏。

组长为赵红,其中小组四人共同设计主框架、搭建硬件电路;

王瑞和吴勃庆负责主程序的编写,赵红和王鹏负责Lcd子程序部分以及中断部分;

所有组员分工明确,齐心协力共同完成本次课程设计。

三系统设计

3.2硬件设计

试验箱

总体接线

1.1PLCD501模组的硬件平面图

这一模块可以使用lcd或者led数码管来实现。

我组最后选择用lcd液晶显示来显示时间以及日期。

之所以选择lcd来实现,是因为它具有很多优点。

低压微功耗,平板型结构,被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳)而且显示信息量大(因为像素可以做得很小)无电磁辐射(对人体安全,利于信息保密)。

具体的实现方法是利用C语言的编程(代码见程序system.c)。

下面的硬件设计将详细的介绍lcd的模块的接口电路以及具体的接线方法。

1.2模组的内部设置的点阵图

3.2.1Lcd的电路

这部分的主要接线如下:

IOA8-15接液晶显示模块DB0-DB7

IOB4接液晶显示模块AO

IOB5接液晶显示模块的R/W

IOB6接液晶显示模块的EP

DB0-DB7为双向数据口,AO为数据/使命控制位,R/w为读/写信号,EP是全能端(低电平有效)

要这部分工作时Key接线与IOA低八位相连就可以了。

Lcd模块接口电路

程序下载后会显示日期、时间。

按Key1可以进入时间调整界面。

3.2.3按键电路

按键电路直接与IOA口连接。

其原理图如下:

3.2.5常用功能函数介绍

液晶显示控制类:

LCD501_Init液晶初始化

LCD501_ClrScreen清屏

LCD501_ReverseColor显示翻转

LCD501_SetPaintMode设置图形显示模式

LCD501_GetPaintMode获取当前显示模式

LCD501_FontSet设置文本字体

LCD501_FontGet获取当前文本字体

LCD501_PutChar显示单个字符

LCD501_PutString显示字符串

LCD501_PutPixel画点

LCD501_Line画直线

LCD501_Circle画圆

LCD501_Rectangle画矩形

LCD501_Bitmap位图显示/汉字显示

SPCE061A与SPLC501的接口采用6800并行接口电路,即8位数据总线、1个读写选通端口、1个数据指令选通端口、1个信号使能端口,具体接法如下图:

按键采用凌阳61板上提供的三个按键,接口电路如下:

3.3软件设计及流程图

软件部分由三个部分组成:

主程序部分、2Hz时基中断部分、1KHz时基中断部分,主程序部分主要负责初始化LCD和显示界面,2Hz时基中断部分负责时间的计数,1KHz时基中断部分负责按键的扫描,下面是这三个程序的流程图:

2.2.1程序流程图:

2Hz时基中断

1KHz时基中断

主程序(main.c)由王瑞和吴勃庆负责编写,王鹏和赵红负责LCD以及中断模块

3.3.2Lcd和中断程序:

F_SPLC501_Initial_IO:

//LCD对应IO口设置程序,作用是把Lcd对应的IO口设置为输出

pushr1to[sp]

r1=[P_IO_Data_Di]

r1|=M_IO_DATA_MASK

[P_IO_Data_Di]=r1//设置对应的数据口为输出

r1=[P_IO_Data_A]

[P_IO_Data_A]=r1//设置对应的数据口为悬浮输出

r1=[P_IO_Data_B]

[P_IO_Data_D]=r1

r1=[P_IO_Ctrl_Di]

r1|=(M_IO_EP+M_IO_AO+M_IO_RW+M_IO_CS)

[P_IO_Ctrl_Di]=r1//设置对应的控制口为输出

r1=[P_IO_Ctrl_A]

[P_IO_Ctrl_A]=r1//设置对应的控制口为悬浮输出

r1=[P_IO_Ctrl_B]

r1|=~(M_IO_EP+M_IO_AO+M_IO_RW+M_IO_CS)

[P_IO_Ctrl_D]=r1

popr1from[sp]

retf

F_SPLC501_Write_Com:

//单片机向LCD写指令

pushr2,r3to[sp]//入栈保护

pushr5to[sp]

r2=[P_IO_Ctrl_B]//得到IOB口的状态

r2&

=~(M_IO_EP+M_IO_CS)//EP、CS变低电平

[P_IO_Ctrl_B]=r2

r2=[P_IO_Ctrl_B]

=~(M_IO_AO+M_IO_RW)

[P_IO_Ctrl_B]=r2//AO、RW变低电平

.ifdefDATA_PORT_HIGHT

r1=r1lsl4

.endif

r3=[P_IO_Data_B]

r3&

=~M_IO_DATA_MASK

r1&

=M_IO_DATA_MASK

r1=r1+r3

[P_IO_Data]=r1//往数据口送数据

nop

r2|=M_IO_EP//EP变高电平

[P_IO_Ctrl]=r2

=~M_IO_EP//EP变低电平

r2|=M_IO_CS//CS变低电平

popr5from[sp]//出栈

popr2,r3from[sp]

retf

F_SPLC501_Write_Data:

/*单片机向LCD写数据,该函数与F_SPLC501_Write_Com类似只是A0设置为高电平,在此不多加描述*/

voidLCD501_Init(unsignedintInitialData)//初始化LCD,参数为LCD的初始化时显示的数据

{

unsignedinti,j;

F_SPLC501_Initial_IO();

//InitialLCDIO

F_SPLC501_Write_Com(M_LCD_ON);

//LCDOn

F_SPLC501_Write_Com(M_LCD_POWER_ALL);

//设置上电控制模式

F_SPLC501_Write_Com(M_LCD_ELE_VOL);

//电量设置模式(显示亮度)

F_SPLC501_Write_Com(0x0012);

//指令数据0x0000~0x003f

F_SPLC501_Write_Com(M_LCD_VDD_SET);

//V5内部电压调节电阻设置

F_SPLC501_Write_Com(M_LCD_COM_NOR);

//Com扫描方式设置

F_SPLC501_Write_Com(M_LCD_SEG_REV);

//Segment方向选择

F_SPLC501_Write_Com(M_LCD_ALL_LOW);

//全屏点亮/变暗指令

F_SPLC501_Write_Com(M_LCD_ALL_NOR);

//正向反向显示控制指令

F_SPLC501_Write_Com(M_LCD_STATIC_OFF);

//关闭静态指示器

F_SPLC501_Write_Com(0x0000);

//指令数据

F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+0);

//设置显示起始行对应RAM

for(i=0;

i<

8;

i++)//往LCD中填充初始化的显示数据

{

F_SPLC501_Write_Com(M_LCD_COL_PAGE+i);

F_SPLC501_Write_Com(M_LCD_COL_LINE_LOW);

F_SPLC501_Write_Com(M_LCD_COL_LINE_HIG);

for(j=0;

j<

128;

j++)

{

F_SPLC501_Write_Data(InitialData);

}

}

CurPaintMode=0;

CurPowerMode=1;

CurLCDSet=8;

CurScroll=0;

CurScrMode=1;

CurASCIIFont=1;

}

voidLCD501_Bitmap(unsignedintx,unsignedinty,unsignedint*word)/*让LCD在指定位置画出位图和文字*/

unsignedintuntype,Shift_Num,Read_Back;

inti,j,m,n;

unsignedintx_low,x_hight;

unsignedinty_whide,y_Number,y_Number_8;

Shift_Num=y&

0x07;

untype=*(word++);

i=untype>

>

j=(untype&

0xff);

if((x+j)>

128||(y+i)>

64||y>

64)

return;

y=(y>

3)+M_LCD_COL_PAGE;

x=x+4;

y_whide=i>

4;

if(i&

0x000f)y_whide+=1;

//test

F_Cover_Initial(i,Shift_Num);

y_Number=i+Shift_Num;

y_Number_8=y_Number;

i=y_Number&

0x0f;

y_Number=y_Number>

if(i)y_Number++;

i=i&

y_Number_8=y_Number_8>

3;

&

y_Number_8!

=8)y_Number_8++;

for(n=0;

n<

j;

n++)

x_low=(x&

0x000f);

//定位列地址设置的低位指令

x_hight=((x>

4)&

0x000f)+0x10;

//定位列地址设置的高位指令

x++;

for(m=0;

m<

m++)Shift_Data_buf[m]=0;

y_Number_8;

m++)

F_SPLC501_Write_Com(y+m);

F_SPLC501_Write_Com(x_low);

//设置初始地址

F_SPLC501_Write_Com(x_hight);

Read_Back=F_SPLC501_Read_Data();

untype=m>

1;

if(m&

0x01)

Shift_Buff[3-untype]=Shift_Buff[3-untype]|(Read_Back<

<

8);

else

Shift_Buff[3-untype]=Read_Back;

F_Data_Cover(word,Shift_Num,y_Number,(y_whide<

4));

Read_Back=Shift_Data_buf[3-untype]>

Read_Back=Shift_Data_buf[3-untype];

word=word+y_whide;

voidLCD501_PutString(intx,inty,unsignedint*string)//让LCD在指定位置显示字符串

unsignedintx_err=6,y_err=8;

if(CurASCIIFont)

x_err=8;

y_err=16;

while(*string!

=0)

if((x+x_err)>

127)

x=0;

y=y+y_err;

if(y>

63)y=0;

LCD501_PutChar(x,y,*string);

string++;

x+=x_err;

四、调试说明

程序开始运行后,会显示两个界面,第一个界面显示出“课程设计计算机接口数字电子时钟”,经过一定的延时,就自动进入第二界面,第二界面将一直持续下去,进入时钟界面,时钟正常计时,当有用户按下KEY1,则进入选择调试模式,循环按KEY1,课选择不同的模式调整,在调试时间参数是可按KEY2来增加参数和KEY3减少参数。

如果在进入第二界面没有按下KEY1键,可以通过按KEY2和KEY3来增加或减少LCD的对比度。

四总结及心得体会

《凌阳16位单片机C语言开发》李晓白北京航空航天大学出版社

《单片机实验与实践教程》夏继强北京航空航天大学出版社,2001

《单片机高级教程》第1版何立民北京航空航天大学出版社,2001

《单片微型计算机原理接口与应用》第1版徐惠民、安德宁北京邮电大学出版社,1996

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1