单片机红外液晶显示系统

上传人:飞*** 文档编号:51343735 上传时间:2018-08-13 格式:PDF 页数:20 大小:783.01KB
返回 下载 相关 举报
单片机红外液晶显示系统_第1页
第1页 / 共20页
单片机红外液晶显示系统_第2页
第2页 / 共20页
单片机红外液晶显示系统_第3页
第3页 / 共20页
单片机红外液晶显示系统_第4页
第4页 / 共20页
单片机红外液晶显示系统_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《单片机红外液晶显示系统》由会员分享,可在线阅读,更多相关《单片机红外液晶显示系统(20页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告课题名称单片机原理与应用学院电子信息学院专业 电子信息工程(电子技术应用方向)班级 BX1207 学号 121003430706 姓名 周琳指导教师饶蕾目录一题目名称 . 1二内容摘要 . 1三设计任务和要求. 1四系统方案 . 11 设计思路 . 12 基于单片机红外遥控液晶显示系统的主要硬件介绍. 1五设计方法 . 21 硬件设计 . 22 软件设计 . 5六系统调试 . 71 使用的主要仪器和仪表. 72 实验步骤 . 73 测试数据 . 74 调试中出现的故障、原因及排除方法. 7七设计结论 . 8附件(源程序). 81 一题目名称红外遥控 128*64 LCD 液晶显示设

2、计二内容摘要XL2000 液晶显示屏部份挂接12864 中文汉字屏, 同时实验仪配有一个标准的 32 位 HT6221编码红外遥控器,当发射器按键按下后,即有遥控码发出,所按的 键不同,遥控编码也不同,在液晶显示屏上显示的内容也不同。三设计任务和要求按红外遥控器的 14 键, 在 12864液晶显示器上分别显示4 位不同学生的“姓 名、学号、班级、单片机原理及应用”。四系统方案1 设计思路图 1 总体思路框图红外遥控 128*64 LCD 液晶显示系统组成框图如图所示。根据设计要求和设计 思路,确定整个系统由以下三个部分组成: 单片机、液晶显示模块, 32 位 HT6221 编码红外遥控器。2

3、 基于单片机红外遥控液晶显示系统的主要硬件介绍系统硬件主要有单片机、 LCD12864液晶模块以及 32 位 HT6221编码红外遥控 器。12864 中文/ 图形点阵液晶显示模块可以显示字母、数字符号、中文字型及 图形,具有绘图及文字画面混合显示功能。内置2M-位中文字型单片机液晶显示模块红外遥控控制模块2 ROM (CGROM) 总共提供8192 个中文字型 (16x16 点阵) ,16K-位半宽字型 ROM(HCGROM) 总共提供126 个符号字型 (16x8 点阵) ,64 x 16-位字型产 生 RAM 提供多功能指令:画面清除(Displayclear) 、 光标归位(Retur

4、n home ) 、 显示打开 / 关闭( Display on/off )、光标显示 / 隐藏( Cursor on/off )、显 示字符闪烁( Display character blink )、光标移位( Cursor shift)、垂 直画面旋转(Vertical line scroll)、反白显示 (By_line reverse display )、待命模式( Standby mode )等。五设计方法1 硬件设计图 2 12864LCD的机械尺寸图3 图 3 12864 的接线原理图 在本套件中 , 所有的引脚都已经和CPU部份的相关端口连接好。通过JP41 的 15 个跳线帽

5、决定液晶是否接入电路。如果作液晶实验就必须全部闭合此15 个 跳线帽,否则应当全部断开以避免干扰。其中W3 是液晶对比度调整电阻,可以 适当调整以达到最佳显示效果。4 图 4 各引脚说明图 5 12864 LCD 的引脚定义图 6 红外线遥控的接线原理图图 7 遥控器码的“ 0”和“ 1”时序图5 采用脉宽调制的串行码,以脉宽为0.565ms,间隔 0.56ms,周期为1.125ms 的组合表示二进制的 “0”;以脉宽为 0.565ms,间隔为 1.685ms,周期为 2.25ms 的组合表示二进制的“ 1”。 接线方法:用一根1PIN 数据线一端插入CPU 部份 JP53(P3口)的 P3.

6、7,另 外一端插入红外遥控部份的输出端JP45。2 软件设计图 8 系统程序框图主程序延时子程序液晶控制程序红外遥控模块初始化程序显示程序6 N Y 图 9 程序流程图开始初始化 (lcd_init) 设定显示位置lcd_wdat 红外遥控控制12864 液晶显示延时 delay 是 否 按 下 下 一个按钮清屏7 六系统调试1 使用的主要仪器和仪表单片机开发实验仪:AT89C51、XL2000 12864 液晶显示器、 HT6221 标准红外线解码遥控器2 实验步骤图 10 实验步骤3 测试数据图 11 测试结果图图 12 测试结果图4 调试中出现的故障、原因及排除方法调试中按下红外线遥控器

7、后没有按键声音,发现连线有错误,重新连线之后得到解决。其次是在按键之后, 显示屏上的字出现乱码,然后我们将程序里面要显示的中文字重新输入了一遍,将故障解决了。系统设置总体论证软 硬 件 设计系统调试8 七设计结论这次的课程设计我们选择的是红外遥控液晶显示设计,刚拿到手的时候是无所 适从的。然后我们经过讨论和请教他人, 成功分别运行了红外遥控数码管和液晶 显示的程序,并且在实验箱上成功的运行了出来。 但是面对这两个程序, 在老师的指导下, 根据我们的课程要求, 应该是把这两 个合并在一起后稍作修改就可以了。在合并的过程中,程序上也是稍有问题的, 经过同学的帮助最后也是成功的修改成功,实验箱的运行

8、也很完美。 看到这个结 果,我们都很兴奋 , 这几天的辛苦没有白费。这次的团队合作让我更加了解了团 队的重要性和创造性,团队往往比个人更加强大!附件(源程序)红外遥控模块程序: hyx.c 9 #include #include #include “yj.h“ void IR_SHOW(); void delay11(unsigned char x); void delay1(unsigned char ms); void decode(inta,int b); void beep(); sbit IRIN = P32; sbit BEEP = P37; sbit GEWEI= P27; sb

9、it SHIWEI= P26; unsigned char IRCOM8; unsigned char code table = 0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60; void main() IE = 0x81; TCON =1; delay11(1); IRIN=1; BEEP=1; IRCOM2=0x99; lcd_init(); for(;) if(IRCOM2=0x10) yjmain(); IRCOM2=0; else if(IRCOM2=0x03) yjmain1(); IRCOM2=0; else if(IRCOM2

10、=0x01) yjmain2(); IRCOM2=0; else if(IRCOM2=0x06) yjmain3(); 10 IRCOM2=0; else if(IRCOM2=0x09) yjmain4(); IRCOM2=0; else void IR_SHOW() switch(IRCOM2) case 0x10: decode(1,0);break; case 0x03: decode(2,0);break; case 0x01: decode(3,0);break; case 0x06: decode(4,0);break; case 0x09: decode(5,0);break;

11、default:decode(0,0);break; void decode(inta,int b) P0=tablea; GEWEI=0; SHIWEI=1; delay1(4); P0=tableb; GEWEI=1; SHIWEI=0; delay1(4); void delay1(unsigned char ms) unsigned char i; while(ms-) 11 for(i = 0; i=30) EA=1;return; IRCOMj=IRCOMj 1; if (N=8) IRCOMj = IRCOMj | 0x80; N=0; if (IRCOM2!=IRCOM3) E

12、A=1;return; 12 beep(); EA = 1; void beep() unsigned char i; for (i=0;i /* 12864LCD引脚定义*/ #define LCD_Data P0 sbit LCD_RS = P20; sbit LCD_RW = P21; sbit LCD_EN = P22; sbit LCD_PSB = P23; sbit LCD_RST = P25; voidlcd_wcmd(unsigned char cmd); voidlcd_wdat(unsigned char dat); voidlcd_init(); voidlcd_pos(

13、unsigned char X,unsigned char Y); void clr_screen(void); void Delay(unsigned intnCnt); bitlcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; 13 Delay(0x08); result = (bit)(P0 LCD_EN = 0; return(result); voidlcd_wcmd(unsigned char cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; Del

14、ay(0x04); P0 = cmd; Delay(0x08); LCD_EN = 1; Delay(0x08); LCD_EN = 0; voidlcd_wdat(unsigned char dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; Delay(0x08); LCD_EN = 1; Delay(0x08); LCD_EN = 0; voidlcd_init() LCD_PSB = 1; LCD_RST = 0; Delay(0x08FF); LCD_RST = 1; Delay(0x08FF);

15、lcd_wcmd(0x34); Delay(0x0FFF); lcd_wcmd(0x30); Delay(0x0FFF); lcd_wcmd(0x0C); 14 Delay(0x0FFF); lcd_wcmd(0x01); Delay(0x0FFF); voidlcd_pos(unsigned char X,unsigned char Y) unsigned char pos; if(X=1) X=0x80; else if(X=2) X=0x90; else if(X=3) X=0x88; else if(X=4) X=0x98; pos = X+Y ; lcd_wcmd(pos); void clr_screen(void) lcd_wcmd(0x34); Delay(0x0FFF); lcd_wcmd(0x30); Delay(0x0FFF); lcd_wcmd(0x01); Delay(0x0FFF); void Delay(unsigned intnCnt) for(;nCnt0;nCnt-); unsigned char code Disp1_1 = “ 高静“; unsigned char code Disp1_2 = “02 “; unsigned char code Disp1_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号