ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:1.75MB ,
资源ID:8065320      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8065320.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LCD单片机原理及接口技术 课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LCD单片机原理及接口技术 课程设计.docx

1、LCD单片机原理及接口技术 课程设计一、前言1一、设计要求及任务 3二、设计的基本步骤及方案 3三、硬件电路设计及描述 3 开关控制部分 3 LCD液晶显示部分 4 温度测量部分 4四、程序框图 5Lcd1602 5时间,闹铃设置 5温度显示5总流程图6部分程序说明7五、硬件的调试过程及调试方法10六、课程设计体会11七、参考资料11附录11前 言本学期期末,我们进行了单片机实训,对于我们机械设计制造及其自动化专业的学生来说,单片机是自动控制装置中不可缺少的一部分,在当今制造业中有着不可替代的作用。所谓单片机,就是把CPU、存储器、输入设备、输出设备、定时,计数器、等计算机的主要部件集成在一小

2、块硅片上的单片微型计算机。因为它体积小可靠性高性价比高等诸多有点,在机电一体化产品领域有着广泛地应用。本次单片课程实训我们选择的题目是设计一个LCD智能电子时钟,也就是在生活中有着广泛应用的电子表的部分功能电路,虽然在单片机的电路中,此电路属于相对简单的一个,但是在我们制作电路过程中,对我们的启发是很大的。首先这是我们把理论适用于实践的一次尝试,我们学习的目的是为了实用,也就是通常说的学以致用。本次实训,我们选择了生活中应用广泛的电子时钟电路的原因也就在于此!通过LCD电子时钟的设计,我们相信,可以积累更多的实际运用单片机的经验!便于我们在以后的工作中更好的适应工作环境,更加顺利的进行工作过程

3、,更加熟练的掌握进单片机的应用技术。其次实训过程也是我们巩固所学知识的过程。在我们实训过程中,会遇到这样或那样意想不到的问题,需要对设计进行一遍又一遍的改动,在改动和检错的过程中,我们需要向其他通许或老师请教许多关于已知错误的知识,而这些知识大部分是我们平时学习所不掌握或掌握不熟练指之处,因此通过查阅资料和请教他人,我们不仅温习了已学的部分知识,更重要的是接触到了大量的课外知识。孔子有句话:“温故而知新,可以为师矣”。说的就是这个道理!再次单片机的实训中,培养了我们吃苦耐劳的精神和一丝不苟的学习工作态度。单片机的实训过程是很辛苦的,要想做好必须要付出极大的努力。在机的开放期间,几乎在整个实践段

4、都有许多同学在刻苦学习,用心设计。为了更好更快的完成任务,大家废寝忘食的查找设计过程中的错误和不足,虽然同学们的水平有限,但是大家都尽了自己最大的努力。单片机的电路设计复杂而繁琐,每一根线都要细心考虑,精心检查,以保证设计电路尽可能的减少错误,因此没有认真严谨的学习态度是很难完成的!虽然实训的过程很辛苦,但是我们的指导老师更加辛苦,他们在实训的每天都按时到达机房,时刻为我们解答疑难问题!是我们能够完成任务的保证!因此要感谢老师的精心指导和无私帮助!一、设计任务及要求1.设计任务:制作一个的智能电子钟。2.设计要求:1.使用文字型LCD显示当前时间;2.显示格式为“时时:分分:秒秒;3.用4个功

5、能键操作来设置当前时间,功能键K1K4功能如下;K1选择设置时/分/秒;K2加一;K3减一;K4确认完成设置。4.程序执行后工作指示灯LED闪动,LCD显示“00:00:00“;5.增加万年历显示“年月日”;6.增加温度传感器显示当前的温度;3.设计原件AT89C51单片机LCD采用LM16L16*2字符型LCD液晶显示器;采用定时器;温度传感器18b20;五个开关; 一个LED指示灯;一个10k排阻;二、设计的基本步骤及方案1方案:本课题采用单元电路设计硬件电路分为4个部分。1)4个开关控制进行时间设置;2)LCD采用LM16L16*2字符型LCD液晶显示器显示时间,温度,日历;3)用18b

6、20进行测温;4)工作指示灯;总体设计框图:2.步骤:A. 首先根据设计要求,分析闹钟工作原理,然后查阅相关元件资料及文献。如lcd液晶显示器,温度传感器18b20;B针对实现的功能,利用protues软件来画硬件图。C结合硬件图,写出相关硬件的的程序框图,然后进行编写程序。D用keil软件进行程序编译,调试,然后再送给protues仿真。实现各部分硬件的仿真运行。E最后将各个部分程序组合,调试,编译,实现整体仿真。三、硬件电路设计及描述开关控制部分:K1,K2,K3,K4分别闭合时分别给P1.0,P1.1,P1.2,P1.3一个低电平信号。K1-控制时间时分秒设置;K2-加一;K3-减一;K

7、4-完成设置;lcd液晶显示部分:由于P0口为漏极,所以加个排阻;D0D7连接P0口;lcd的使能信号端接P2.2,数据/命令端(H/L)接P2.1,读/写选择端(H/L)接P2.0;温度测量部分:DS1820 数字温度计以9 位数字量的形式反映器件的温度值。DS1820 通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820 之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。因为每个 DS1820 都有一个独特的片序列号,所以多只DS1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在HVAC 环境控制

8、、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。数据DQ端接在P2.3口四、程序框图:Lcd1602:时间,闹铃设置:温度显示:总流程图:部分程序说明:Lcd相关资料:void init()/lcd初始化 uchar num; rw=0;/写功能; lcden=0; write_com(0x38);/显示模式设置 write_com(0x0c);/显示开 write_com(0x06);/关标设置 write_com(0x01);/清除原数据; write_com(0x80);/首地址指针写操作时序图:void write_com(uchar com) /写命令 rs=0; l

9、cden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_date(uchar date)/写数据 rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; 关于18b20资料介绍:初始化时序图1.先将数据线置高电平1;2.延时(该时间要求尽可能小一点);3.数据线拉到低电平0;4.延时750us(该时间范围480960us);5.数据线拉到高电平1;6.延时等待,如果初始化成功则在1560us内产生一个由ds18b20返回的低电平0,据该状态可以确定它的存

10、在.但是应注意,不能无限的等待,不然会使程序进入死循环,所以要进行超时判断;7.若cpu读到数据线上的低电平0后;还要进行延时,其延时的时间从发出高电平算起(第5步的时间算起)最少要480us8.将数据线再次拉到高电平1后结束.void delay_18B20(unsigned int i)/延时1微秒 while(i-); void ds1820rst()/ds1820复位 unsigned char x=0; DQ = 1; /DQ复位 delay_18B20(4); /延时 DQ = 0; /DQ拉低 delay_18B20(100); /精确延时大于480us DQ = 1; /拉高

11、delay_18B20(40); DS18B20写数据时序图1.数据线先置低电平0;2.延时确定的时间为15us;3.按从低位到高位的顺序发送数据(一次只发送一位);4.延时时间为45us;5.将数据线拉到高电平1;6.重复15步骤,直到发送完整个字节;7.最后将数据线拉高到1;void ds1820wr(uchar wdata)/写数据 unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; DS18B20读数据时序图1.将数据线拉高到1;2.延时2us;3

12、.将数据线拉低到0;4.延时6us;5.将数据线拉高到1;6.延时4us7.读数据的状态得到一个状态位,并进行数据处理;8.延时30us.9.重复17步骤,直到读完一个字节;uchar ds1820rd()/读数据 unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);五、硬件的调试过程及调试方法硬件用protues仿真实现功能运行。每用keil编译一次生成hex文件

13、,然后添加到51单片机中,之后运行protues。看是否实现所要的功能。调试中也遇到很多问题;1.在进行lcd显示时,编程端口定义错啦;2.进行模块组合时,出现显示冲突,各模块的显示控制混乱。3.用定时器0与18b20送数据到lcd是产生冲突。T为当前显示温度;111225为年月日;第二排为时间时分秒;温度传感器检测的当前温度;LED工作指示灯闪烁表明工作正常;六、课程设计体会虽然只有短短两个周的实训时间,但是通过这次的课程设计,在很大程度上提高了我们自主学习和思考的能力,使我们获益良多,不能用文字来表达其中的快乐。巩固了我门这学期以来所学习的单片机及其原理这门课程,让我们找到了学习的乐趣,明

14、白了带我们的的老师们的良苦用心和殷切希望。论文中所涉及的很大部分的知识并不是从书本上,而是在已有的知识基础上,借助书籍和网上资源,经过反复思考而得出的,将书本知识运用到实际生活中体现了其价值所在。七、参考资料1单片机原理与应用技术。北京:清华大学出版社,20092吴亦锋. 单片机原理与接口技术。北京:电子工业出版社,20103 DS1820 单线数字温度计说明书。4 smc1602A LOM 使用说明书。附录:#include#define uchar unsigned char#define uint unsigned int/sbit BLK=P10;sbit DQ=P23;sbit rs

15、=P20;sbit rw=P21;sbit lcden=P22;sbit s1=P10;sbit s2=P11;sbit s3=P12;sbit s4=P13;sbit led=P14;sbit l=P24;/sbit been=P30;unsigned char code str1=t: 11-12-25;unsigned char code str2= 00:00:00;uchar data disdata5;uint tvalue;/温度值uchar tflag;/温度正负标志uchar count,s1num,s2num;char miao,shi,fen;/*lcd1602程序*/v

16、oid delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com) / 写命令 rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_date(uchar date) /写数据 rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; void init() uchar num; rw=0; lcden=0; write_com(0x3

17、8); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num16;num+) /第一排 write_date(str1num); delay(5); write_com(0x80+0x40); for(num=0;num0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/写数据 unsigned char

18、i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; read_temp()/读取温度值并转换 uchar a,b; ds1820rst(); ds1820wr(0xcc);/跳过读序列号 ds1820wr(0x44);/启动温度转换 ds1820rst(); ds1820wr(0xcc);/跳过读序列号 ds1820wr(0xbe);/读取温度 a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tv

19、alue0x0fff) tflag=0; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小? return(tvalue); /*/void ds1820disp()/温度值显示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;/小数位 if(tflag=0) flagdat=0x

20、20;/正温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata0=0x30) disdata0=0x20;/如果百位为0,不显示 if(disdata1=0x30) disdata1=0x20;/如果百位为0,十位为0也不显示 write_com(0x80+2); write_date(flagdat);/显示符号? write_com(0xc1); write_date(disdata0);/显示百位 write_com(0x80+3); write_date(disdata1);/显示十位 write_com(0x80+4); write_date

21、(disdata2);/显示个位 write_com(0x80+5); write_date(0x2e);/显示小数点 write_com(0x80+6); write_date(disdata3);/显示小数位 /*时间设置*/void timer0_init() TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; void write_sfm(uchar add,uchar date) uchar shi,ge; shi=date/10; ge=date%10; write_com(0x8

22、0+0x40+add); write_date(0x30+shi); write_date(0x30+ge);void keyscan() rw=0; if(s1=0) delay(5); /消除抖动 if(s1=0) s1num+; while(!s1); if(s1num=1) TR0=0; / EA=0; write_com(0x80+0x40+10); /秒的位置 write_com(0x0f); /光标闪烁 if(s1num=2) write_com(0x80+0x40+7); /分的位置 if(s1num=3) write_com(0x80+0x40+4); /时的位置 /dela

23、y(500); /s1num=0; if(s1num=4) s1num=1; write_com(0x80+0x40+10); / write_com(0x0c); / TR0=1; if(s1num!=0) /k1不按时候,k2,k3,k4,无作用 if(s2=0) delay(5); /防抖 if(s2=0) while(!s2); if(s1num=1) miao+; if(miao=60) miao=0; write_sfm(10,miao); write_com(0x80+0x40+10); if(s1num=2) fen+; if(fen=60) fen=0; write_sfm(7,fen); write_com(0x80+0x40+7); if(s1num=3) shi+; if(shi=24) shi=0; write_sfm(4,shi); write_com(0x80+0x40+4); if(s3=0) delay(5); if(s3=0) while(!s3); /防抖 if(s1num=1) miao-; if(miao=-1) miao=59; write_sfm(10,miao); write_com(0x80+0x40+10); if(s1num=2) fen-; if(fen=-1) fen=59; write_sfm(7,fen);

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

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