欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机课程设计基于51单片机的红外操纵电子时钟LCD显示设计.docx

    • 资源ID:11166171       资源大小:100.37KB        全文页数:30页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机课程设计基于51单片机的红外操纵电子时钟LCD显示设计.docx

    1、单片机课程设计基于51单片机的红外操纵电子时钟LCD显示设计单片机原理及应用课程设计报告基于红外操纵电子时钟(LCD显示)设计 巩固和加深对单片机原理和接口技术知识的明白得;培育依照课题需要选学参考书籍、查阅手册和文献资料的能力;学会方案论证的比较方式,拓宽知识,初步把握工程设计的大体方式;把握经常使用仪器、仪表的正确利用方式,学会软、硬件的设计和调试方式;能按课程设计的要求编写课程设计报告,能正确反映设计和实验功效,能用运算机绘制电路图和流程图。2.课程设计要求以AT89C51单片机为核心的时钟,在1602显示器上显示当前的时刻,显示格式为“不时:分分:秒秒”,并开始计时。具体功能如下:用红

    2、外遥控器上5个按键设置当前时刻,调闹钟,操纵开关等。功能键K1K5功能如下。K1暂停。K2设置时刻。K3秒,分,时之间的切换。K4调闹钟。K5操纵开关。3. 硬件设计 设计思想51单片机1602接收头红外遥控器蜂鸣器 原理框图 接收头通过接收红外遥控器发送的数据传送给单片机,通过单片机操纵显示屏和蜂鸣器的工作。 要紧元器件介绍1) 红外线遥控是目前利用最普遍的一种通信和遥控手腕。由于红外线遥控装置具有体积小、功耗低、功能强、本钱低等特点,因此,继彩电、录像机以后,在录音机、音响设备、空凋机和玩具等其它小型电器装置上也纷纷采纳红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采纳红外

    3、线遥控不仅完全靠得住而且能有效地隔离电气干扰。红外线遥控器利用TC9012专用发射集成模块做的,用频率为38、占空比为1/3的PPM方式调制,当一个键按下超过36ms 振荡器使芯片激活若是那个键按下且延迟大约108ms,这108ms 发射代码由一个起始码9ms ,一个结果码 (结果码加起始码组成一个的引导码), 低8位地址码9ms-8ms, 8位地址码9ms-8ms ,8位数据码9ms-8ms和这8位数据的反码 9ms-8ms 组成,咱们提取的即是那8位的数据码。其数据帧如以下图:数字0和1的脉冲如下:当同意端当检测到有红外线发过来, 将接收端置低, 不然置高。解码的关键是如何识别“0”和“1

    4、”,从位的概念咱们能够发觉“0”、“1”均以的低电平开始,不同的是高电平的宽度不同,“0”为,“1”为,因此必需依照高电平的宽度区别“0”和“1”。若是从低电平事后,开始延时,以后,假设读到的电平为低,说明该位为“0”,反之那么为“1”,为了靠得住起见,延时必需比长些,但又不能超过,不然若是该位为“0”,读到的已是下一名的高电平,因此取(+)/2=最为靠得住,一样取左右都可。2)1602:要紧技术参数:显示容量:162个字符芯片工作电压:工作电流:模块最正确工作电压:字符尺寸:(WH)mm引脚功能说明1602LCD采纳标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表:编号符号

    5、引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 功能电路介绍1)以下图为红外线发射模块原理图:2)红外线接收接口: 时刻显示和调剂的软件设计软件采纳可读性强的C语言来写,通过KeilC编译通过,并最终将十六进制(HEX)文件烧写到单片机中。程序编写采取模块化、结构化设计。语言程序能够分为几个要紧功能模块程序:驱动程序,按时/计数器程序,键盘中断扫描程序,1602液晶显示程序 程序流程 时刻显

    6、示和调剂系统的整体的工作流程如下:1.由单片机通进程序对液晶进行初始化。2. 单片机的按时/计数器按时记数。当记时到60秒时,秒清零,分钟自动加1。当记时到60分钟时,分钟清零,小时加1。当记时到24小时,从头开始记时。3.利用单片机的外部中断功能。当按键开关按下时,单片机的I/O口检测到外部中断,开始依照中断指令来相应的处置数据,从而达到调整时刻的成效。 程序模块化处置相对应于硬件部份,实时钟系统的软件部份可分三个模块:显示模块,逻辑处置模块,人机交互模块(调剂时刻模块)。1. 显示模块要紧由五个子函数组成,即延时函数,按时器函数,初始化函数,读指令模块和读数据模块五个子函数。2. 逻辑处置

    7、模块是整个软件设计的核心,逻辑处置模块要紧取得从按时/计数器中溢出的数据,显示在液晶显示器上。而且当取得外部中断指令时,处置外部中断响应。由于程序简短,将其包括在人机交互模块中的时刻显示液晶程序中。3. 人机处置模块要紧由对液晶的处置函数和对按键的处置函数组成。程序先进行初始化(包括液晶的初始化也放在程序的开头)。接下来的程序是一个一直循环的循环,先挪用人机交互模块中的扫描按键程序,若是没有按下任何键,就默许进入人机交互的液晶显示实不时刻程序,其中程序中会挪用显示模块中的按时/计数器函数,进行实时的时刻显示,逻辑处置模块所要做的是:当取得从按时/计数器中溢出的数据,显示在液晶显示器上。当取得外

    8、部中断指令时,处置外部中断响应。时刻调整完成后要能够再次回到实不时刻显示页面。软件流程图1)红外线接收:开始定义两个全局变量count=0;buf=0;否是定义静态局部变量iinit_time0(); init_int0();初始化定时器0和外部中断0否P32=0是33=count63i=0否否16i1;buf=buf|0x80;count=0count7buf=buf1;count=02)1602LCD操作流程 开始 Int ii250 是否否延时4usLcd_bz()=1 是 LCD_RS=0 LCD-RW=0 Lcd_wcmd(pos|0x80)写入字符显示数据到LCD LCD_RS=1

    9、 LCD_RW=0 lcd-init() 结束3)计时显示程序display():开始buf7+否buf7=0x3abuf6=0x30buf4+buf7=0x30buf6+buf6=0x30否是是是buf3=0x30buf1+buf4=0x3a否buf4=0x30buf3+buf3=0x36否是是buf4=0x3a否buf4=0x30buf3+buf3=0x36否是是否buf3=0x30buf1+是buf1=0x3abuf1=0x30buf0+ buf1=0x30buf0=0x32&buf1=0x33&buf1=0x33buf0=buf1=buf3=buf4=buf6=buf7=0x30 bu

    10、f1=0x30结束4)显示程序:xsxs:开始Display()Lcd-pos(4)lcd_wdat(bufi)buf3=0x30buf1+i8是lcd_pos(0x44)i=0i8否否是是buf1=0x3abuf1=0x30buf0+ buf1=0x30否buf0=0x32&buf1=0x33&buf1=0x33buf0=buf1=buf3=buf4=buf6=buf7=0x30 buf1=0x30结束5)tiaonao():开始延时否按下调闹钟键键延时确定位置显示“tn”按下调闹键是是否是否按切换键i=0是i=1是否调节分调节时否是i+否去除“调闹”结束6)开闹钟程序:knz():开始否按

    11、下开关键键蜂鸣器响确定位置显示“K”闹铃时间到否是是结束7)main函数:开始init_time0();init_int0();lcd_init()lcd_pos(15)lcd_wdat(Y)xsxs()zant()tiaonao()knz()zant() 源程序:主程序初始化程序显示程序液晶写指令程序液晶写数据程序按时/计数器程序键盘子程序用于调剂时刻5. 调试运行液晶显示问题,液晶上电时显示不稳固,有时候会显现乱码。查看程序时发觉写指令前必然要考虑到LCD的实际时刻显示速度,在液晶上显示完第一行数据后应该略加几毫秒的延时。添加了延时后,显示正常。暂停程序中的语句问题:if(bufh=0x4

    12、4) bufh=0; lcd_pos(15); lcd_wdat(Z); 程序段中,刚开始没有 bufh=0;语句,电脑一直以为是接收按键发送的数据,而没有停止,接下去也没有反应了。下面的程序段中也是一样问题,加上清零以后,程序运行正常,硬件调试正常。6. 设计心得体会本次单片机设计是用单片机操纵一个简单系统的实际应用。通过单片机那个核心操纵元件,做成了一个时刻可调电子时钟。它第一具有一个实不时刻显示的功能,作用相当于一个电子钟,按时/计数器产生时刻信号,通过单片机显示在液晶上;第二具有时刻可调剂的功能,用按键调剂时刻,通过液晶上光标闪动的位置就能够够明白当前调剂的是那个数据,使系统能够人性化

    13、与个性化。 这次设计中,我深刻体会到专研的重要性,一个看似简单的系统,却需要着大量的知识储蓄和很强的专研精神,理论和实践往往是两码事,理论上很简单的情形在实际操作中往往会碰到很多意想不到的困难,学科的知识不但来自于书本知识,更来自于实践。由于水平和体会的有限,系统可能仍存在一些缺点或有更多更好的功能或方式能够加进去,望列位教师、同窗指正。7.参考书目:1 肖金球. 单片机原理与接口技术.M.北京:清华大学出版社,2 郭天祥、新概念51单片机C语言教程、2020年1月、第一版、电子工业出版社 8. 附录程序:#include#include#includevoid main() init_tim

    14、e0(); init_int0(); lcd_init(); while(1) lcd_pos(15); lcd_wdat(Y); xsxs(); zant(); tiaonao(); knz(); :#include#define unchar unsigned char unchar bufh,count;void init_time0() TMOD=0x02; /*模式选择*/ TH0=0; TL0=0; ET0=1; TR0=1;void init_int0()/口 EA=1; /*打开使能端,能响应中断*/ EX0=1; IT0=1;void timer0() interrupt 1

    15、 count+; void int0() interrupt 0 static unchar i; if(count=33) / *125000/256=48 */ i=0; if(16i&i7) bufh=bufh1; bufh=bufh|0x80; count=0; else bufh=bufh1; count=0; / if(i=25)P0=buf; i+; count=0;/要利用按时器必先初始化init_time0();/init_time0();/buf存数/count记时刻1602:#include #include typedef unsigned char BYTE;type

    16、def bit BOOL; sbit LCD_RS = P26; sbit LCD_RW = P25;sbit LCD_EP = P27;delay(int ms) / 延时子程序 int i; while(ms-) for(i = 0; i 250; i+) _nop_(); _nop_(); _nop_(); _nop_(); BOOL lcd_bz() / 测试LCD忙碌状态 BOOL result; LCD_RS = 0; /接收命令而不是数据 LCD_RW = 1; /不写 LCD_EP = 1; /打开使能端 _nop_(); _nop_(); _nop_(); _nop_();

    17、result = (BOOL)(P0 & 0x80); LCD_EP = 0; return result; lcd_wcmd(BYTE cmd) / 写入指令数据到LCD while(lcd_bz(); LCD_RS = 0; LCD_RW = 0; LCD_EP = 0; _nop_(); _nop_(); P0 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EP = 1; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EP = 0; lcd_pos(BYTE pos) /设定显示位置 lcd_wcmd(po

    18、s | 0x80);lcd_wdat(BYTE dat) /写入字符显示数据到LCD while(lcd_bz(); LCD_RS = 1; LCD_RW = 0; LCD_EP = 0; P0 = dat; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EP = 1; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EP = 0; lcd_init() /LCD初始化设定 lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据 delay(1); lcd_wcmd(0x0c); /显示开,关光标 delay(1)

    19、; lcd_wcmd(0x06); /移动光标 delay(1); lcd_wcmd(0x01); /清除LCD的显示内容 delay(1);#includesbit fmq=P15; /蜂鸣器接口BYTE buf8=00:00:00;BYTE nz8=nz 00:00;bit flag; /表示闹钟开关与否的状态量void delay2(unsigned char i) while(-i);void delay1(unsigned char t) t+; while(-t) delay2(245); delay2(241); void xsxs() BYTE i; display(); lc

    20、d_pos(4); for(i=0;i8;i+) lcd_wdat(bufi); lcd_pos(0x44); for(i=0;i8;i+) lcd_wdat(nzi); void xs2() BYTE i; display(); lcd_pos(4); for(i=0;i0x31) if(buf10x33) buf0=0x30; buf1=0x30; lcd_pos(4); lcd_wdat(buf0); lcd_wdat(buf1); delay(50); if(bufh=0x43) /切换键 bufh=0; i+; if(i=3) i=0; bufh=0; lcd_pos(14); lc

    21、d_wdat( ); void tiaonao() unchar i=0; delay(150); if(bufh=0x07) bufh=0; delay(150); lcd_pos(0x4d); lcd_wdat(t); lcd_wdat(n); while(bufh!=0x07) xs2(); delay(150); if(bufh=0x40) bufh=0; if(i=0) lcd_pos(0x4e); lcd_wdat(f); nz7+; if(nz7=0x3a) nz7=0x30; nz6+; if(nz6=0x36) nz6=0x30; / lcd_pos(10); / lcd_w

    22、dat(nz6); / lcd_wdat(nz7); else lcd_pos(0x4e); lcd_wdat(s); nz4+; if(nz4=0x3a) nz4=0x30; nz3+; if(nz4=0x32&nz3=0x34) nz3=0x30; nz4=0x30; / lcd_pos(0x07); / lcd_wdat(nz3); / lcd_wdat(nz4); / lcd_pos(0x47); / lcd_wdat(nz3); / lcd_wdat(nz4); xs3(); xsxs(); delay(150); if(bufh=0x43) bufh=0; i=i; bufh=0; lcd_pos(0x4d); lcd_wdat( ); lcd_wdat( ); void knz() delay(150); if(bufh=0x15) /开关按键 bufh=0; flag=flag; if(flag=0) lcd_pos(0x40); lcd_wdat(K); else lcd_pos(0x40); lcd_wdat( ); if(flag=0) if(buf0=nz3&buf1=nz4&buf3=nz6&buf4=nz7) fmq=0; else fmq=1; else fmq=1;


    注意事项

    本文(单片机课程设计基于51单片机的红外操纵电子时钟LCD显示设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开