1.3.2 、显示模块选择方案和论证:
方案一:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用显示数字显得太浪费,且价格也相对较高。所以不用此种作为显示。 方案二:
采用LED数码管动态扫描,虽然LED数码管价格适中,但要显示多个数字所需要的个数偏多,功耗较大,显示出来的只是拼音,而不是汉字。所以也不用此种作为显示。 方案三:
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字符,且视觉效果较好,外形美观。LCD1602可实现显示2行十六个字符。 1.3.4、 电路设计最终方案决定
综上各方案所述,对此次作品的方案选定:采用80C51作为主控制系统; LCD1602液晶带汉字库显示屏作为显示部分。
二、硬件设计
2.1、电路设计模块图如图
2.3、 用proteus仿真软件仿真并抓图。
三、软件设计
3.1、画出各个函数流程图。
3.1.1、LCD1602液晶显示控制流程图如图
是
3.1.2、调时函数控制流程如图
实训心得:通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在
课堂上学习的不足。相信这对我们以后的学习和工作都会有很大的帮助。我们一定要在最短的时间里对这些不足加以改正! 在试训中有苦有甜,当我们为一个很难攻破的程序找出路时,心情烦躁,感觉自己很不可理喻,当程序一点一点编好后,自己从心底感觉到一点小小的安慰,看着自己的成果。感觉很欣慰。总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。
程序代码。
#include
#define uchar unsigned char #define uint unsigned int
uchar a,count,S1num,xqnum; uchar yue,ri,shi,fen,miao; uint nian;
sbit lcdrs=P2^5; sbit lcdrw=P2^4; sbit lcden=P2^3;
sbit S1=P3^0; //定义键--进入设置 sbit S2=P3^1; //定义键--增大 sbit S3=P3^2; //定义键--减小 sbit S4=P3^3; //定义键--退出设置
uchar code table0[]=
uchar code xingqi[][3]={
void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
/************************************************** 1602液晶显示器模块
*************************************************/
void write_com(uchar com)//液晶写指令 { lcdrw=0; lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }
void write_data(uchar dat)//液晶写数据 { lcdrw=0; lcdrs=1; P0=dat; delay(5); lcden=1; delay(5); lcden=0; }
/******************************************** 年月日写入1602函数
********************************************/ void write_sfm(uchar add,uchar dat)//写时分秒函数 { uchar shi,ge; shi=dat/10; ge=dat%10; write_com(0x80+0x40+add); write_data(0x30+shi); write_data(0x30+ge); }
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-26593-27.html
特别美特别浪漫的一部电影