单片机课程设计实验报告lcd电子时钟

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

单片机原理与应用课程名称:单片机原理与应用

设计题目:LCD电子钟

院系:电子信息工程学院

班级:自动化0706

设计者:全宏宇

指导教师:

一,设计目标

LCD显示电子钟的基本功能

1,实现时钟功能;

2,实现闹铃功能;

3,实现秒表功能;

4,具有一定的计时精度。

LCD显示电子钟的基本要求

1,掌握单片机开发编程设计的基本流程;

2,了解Keil及Proteus软件的基本使用;

3,了解LCD的基本使用;

4,学习单片机硬件制作。

二,具体实现

1,软件平台

1)Keil编程

Keil 的开发工具的使用的基本过程:

○1创建 C 或汇编语言的源程序;

○2编译或汇编源文件;

○3纠正源文件中的错误;

○4从编译器和汇编器连接目标文件;

○5测试连接的应用程序。

2)Proteus仿真

Proteus软件不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。在编译方面,它也支持IAR,Keil,PLAB等多种编译器。

2,硬件开发平台

JD51开发板的基本资料

○1 LED 电路,8 只独立LED 发光管,可做指示或各种闪烁效果用。

○2数码管电路,4只共阳一体8 段数码显示管,可实现各种数据显示,如计数、时钟等。○3蜂鸣器电路,可用于设计各种提示音、演奏音乐等。

○4键盘电路,学习按键控制相关编程。

○5 LCD 显示电路,编程控制LCD 显示。

○6串口电路,学习编程实现JD51 和PC 或其他符合该通信协议的电路之间的通信。

○7红外电路,通过选配的红外遥控器,学习红外解码并可实现红外遥控JD51。

○8温度模块电路,采用一线式温度传感器实现温度的采集并可显示在数码管或者LCD 上,通过温度数据处理便可实现温度控制器功能。

○9除了以上提到的可编程电路本学习板还有一些常用的不可编程电路,包括电源电路、复位电路、晶振电路等。

本次LCD电子钟实验用到其中的蜂鸣器,按键,LCD显示接口。

3,总体设计

1)基本资源的使用

本次实验采用了89C52型单片机,1602LCD液晶显示屏,蜂鸣器。为了

实现时钟,定时,闹钟,秒表的功能,用到了单片机的外部中断,计时器中断,及I/O端口.

2

(1)程序设计的一些关键问题(具体参照后面的程序清单)

○1建立Keil工程时,注意对程序编译环境进行设置;

设置内容包括器件,频率,产生hex文件等。

○2LCD管脚及控制字;

LCD管脚的定义

控制字

1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。

指令1:清显示,指令码01H,光标复位到地址00H位置

指令2:光标复位,光标返回到地址00H

指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。

指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。

指令7:字符发生器RAM地址设置。

指令8:DDRAM地址设置。

指令9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。

○3LCD实现滚动显示;

方法一:采用LCD1602控制命令,显示后画面移动一个字符;

方法二:循环使用显示不同位置,形成滚动效果。

○5秒表

主要是产生计时基准0.01秒,有了基准之后需要解决的问题是如何实现有效的暂停,清零(达到精准动作),采用中断是很不错的结果。

○6闹铃

主要是如何实现闹铃关闭的逻辑,if(f&&g)语句可以实现这一动作。

○7提高计时精度

本程序除了调时模式外,其他模式的时候时钟都在跑动,提高了因模式转换而导致的时间精度降低。

(2)Proteus仿真

在Proteus中画出如下电路图,添加hex文件,进行虚拟仿真。

2)开发板运行调试

在JD51板上烧制程序,根据实际的效果,对中断的反应时间,显示效果做出了调整,整体效果不错,只是音乐的效果不佳,主要是由于如果将蜂鸣器换成扬声器效果会好

些,还可以在程序中增加节拍来增加音乐效果。

4,硬件制作

根据仿真电路图购买元件进行焊接,下载程序效果后,液晶显示器显示乱码,检查电路后已无连接错误,但功能依然没有实现,相关检查在进行中。

三,设计体会

本次课程设计系统地学习了单片编程开发及实际电路的制作。学习了Keil的C语言编程的基本知识,Proteus仿真软件的模拟仿真,JD51开发实验板的使用,本次课设,时间了较多的其他案例,比较全面的掌握了单片机的运营,包括编程,电路,LCD器件等,在知识上有了很多的长进。

本次课程设计还有很多其他收获,锻炼了自学的能力,特别是动手实践方面的东西,让我深深感受到理论与实际的差距,实际当中会有一些小的问题,这些问题是意想不到的,需要去思考,去解决,这是很锻炼人的。

四,程序

#include

#include

#define uchar unsigned char

#define ulong unsigned long

#define uint unsigned int

uchar idata welcome[16]={" clock "}; //定义第一行显示数组uchar idata lwelcome[16]={" clock "}; //定义第一行显示数组

uchar idata llwelcome[16]={" clock "}; //定义第一行显示数组uchar idata lllwelcome[16]={" clock "}; //定义第一行显示数组uchar idata sslcdtimer[16]={" 00:00:00 "};

uchar idata tsslcdtimer[16]={" 00:00:00 "};

相关文档
最新文档