遥控灯设计报告概要

上传人:风*** 文档编号:65433639 上传时间:2022-03-23 格式:DOC 页数:29 大小:261KB
收藏 版权申诉 举报 下载
遥控灯设计报告概要_第1页
第1页 / 共29页
遥控灯设计报告概要_第2页
第2页 / 共29页
遥控灯设计报告概要_第3页
第3页 / 共29页
资源描述:

《遥控灯设计报告概要》由会员分享,可在线阅读,更多相关《遥控灯设计报告概要(29页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上目录摘要1第一章 系统的结构及功能介绍2引言21.1 系统设计任务与要求21.1.1 设计任务21.1.2 设计要求21.2 系统结构介绍21.3 系统的工作原理3 1.3.1 红外线遥控原理3 1.3.2 光亮度采集3 1.3.3 灯光控制器31.4 系统设计方案论证4 1.4.1 从机设计方案4 1.4.2 主机设计方案41.5系统设计方案选定4 1.5.1 从机方案选定4 1.5.2 主机方案选定41.6 系统的特点和使用说明5 1.6.1 系统特点5 1.6.2 系统使用说明5第二章 系统硬件电路设计52.1 从机红外遥控单元电路设计52.2 主机控制单元电路

2、设计6第三章 系统软件设计63.1 从机遥控功能软件流程图73.2 主机控制功能软件流程图8第四章 系统测试94.1 测试仪器94.2 测试方法94.2.1 检测红外线的发射与接收94.2.2 检测PWM的输出占空比94.3测试结果94.4系统功能及指标参数分析10第五章 设计总结10参考文献10附录11附录 1 元件明细表12附录 2 电路图纸13附录 3 程序13专心-专注-专业摘要:随着现代建筑和照明技术的发展,传统的照明设计方法已经不能解决实际场景对照明效果的不同需求,简单的控制方式更不便于管理和维护。红外线无线遥控调光灯,以节能环保为目的,与现代通信技术、计算机技术、控制技术等相结合

3、的智能照明技术,满足了“绿色照明”的设计要求,具有较大的发展空间。本文主要介绍了遥控调光灯的基本原理和硬件电路设计,由主机和遥控从机两部分组成。本系统基于红外线无线遥感技术,以高亮度LED灯为光源,以AT89S52单片机为从机的核心器件实现红外线远程控制,以ATMEGA16L单片机作为主机的核心器件主要负责调光,采用PWM节能法来实现对LED灯启停、亮度等多种工作状态进行快速而准确地控制。电路结构简单、成本低、操作方便、遥控距离在8m左右,可广泛应用于家庭照明。关键字:红外线无线遥控,节能环保,LED灯,PWM节能法 第一章 系统的结构及功能介绍引言:近年来,全球性的能源短缺和环境污染问题日益

4、突出,人们迫切希望应用节能环保的新技术。当今绝大部分照明控制系统都是利用各类普通的手动开关来控制灯具的开关状态,其亮度调节也是通过普通的调光开关进行相应的调节,每次操作都必须走到开关处才能完成。在日常生活中,人们往往因离电灯开关较远,即使在暂时不需要照明的时候,人们也懒得去熄灯,任其亮着,直到睡觉前或外出才关灯。这种情况非常普遍,从而造成电能的大量浪费。基于上述原因,为了更方便生活,本文设计出了一遥控调光灯,其不仅可以遥控开、关灯,还能根据需要任意调节灯光的亮度,有记忆存储功能,可分为睡眠/工作两种模式。此外,本设计还有一大亮点采用高亮度LED灯作为光源。半导体照明以寿命长、节能、环保等显著优

5、点而倍受人们关注,被认为是21世纪最有价值的新光源。为满足控制需要,本系统从机部分采用AT89S52单片机为核心控制器件,通过按键控制红外线遥控来控制LED灯的开关和亮度调节;主机部分以ATMEGA16L单片机为核心控制器件,利用自带的A/D转换功能将光敏二极管采集到的数据进行转换,从而通过控制PWM来准确而快速地控制灯启停与亮度的调节。本设计的主要特点:1、采用高亮度LED灯作为光源;2、采用PWM调光方式更节能;3、电路结构简单、成本低、易操作;4、LED灯,具有寿命长、安全、节能环保、耐闪烁、色彩多样、调控方便等显著特点;5、本系统具有记忆存储功能,分为睡眠/工作两种模式。1.1 系统设

6、计任务与要求1.1.1 设计任务以“环保、节能、成本控制”为主题,设计并制作一遥控调光灯。1.1.2 设计要求 1、以高亮度LED为光源,以单片机为主控芯片;2、系统分为主机和遥控从机,主机负责调光,从机负责远程控制,采用红外遥控的方法;3、遥控从机上要有四个按键,按键1,是开关,按一下灯开,再按灯关;按键2,是低亮度;按键3,是中亮度,按键4,是高亮度。4、主机也有调光功能,通过旋转亮度旋钮可以任意调节光的亮度。1.2 系统结构介绍遥控调光灯的设计,主要分成两个部分:从机和主机。从机以AT89S52单片机为控制核心,通过按键控制红外遥控的方法来远程控制LED灯的开关和亮度级别,当从机发射红外

7、线时,工作指示灯会闪烁提示;主机以ATMEGA16L单片机为核心,对接收到从机的命令后,接收到的不同指令而控制高亮度LED灯(下文统一称为LED灯)的不同亮度级别。主机也有调光功能,通过旋转亮度旋钮可以任意调节光的亮度,通过主机上的按键也可以控制LED灯的开关和亮度级别,还控制其他的装置实现不同的功能。系统结构框图如图1所示。 VCC从机按键GNDVCC主机按键控制LED灯亮度光亮度采集工作指示灯LED亮度控制旋钮工作指示灯图11 系统结构框图1.3系统的工作原理1.3.1 红外线遥控原理红外线遥控通常是将受控信号(二进制脉冲码)调制在38kHz的载波上,经缓冲放大后送至红外发光二极管,转化为

8、红外信号发射出去的。红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度(红外解码)。当接收到从机的指令后,采用不同占空比的PWM来控制LED灯。1.3.2 光亮度采集光亮度采集,是通过光敏二极管对光线的敏感作用而实现的。当外部光线越强,光敏二极管的阻值就越小。通过ADC0803的A/D转换功能检测光敏电阻的两端的电压变化,单片机将采集到的数据进行转换,从而输出不同的PWM来控制LED灯的亮度,就可以实现根据外部光线自动调整LED灯的亮度。1.3.3 灯光控制器通过主机上的LED亮度控制旋钮控

9、制LED灯的亮度。当旋钮转动时,其电阻值改变,从而引起旋钮两端的电压值发生改变,通过 ADC0803采集旋钮两端电压值,将其转换后,进而控制输出不同占空比的PWM,达到控制LED灯亮度的效果。1.4 系统设计方案论证1.4.1 从机设计方案方案一:用专用芯片进行红外线的发射,HT6221为专用红外线编码发射芯片,可以有32个不同的编码,芯片内部已有固定的编码,外部元件只要一个455KHz的晶振和两片瓷片电容,上电后即可工作,价格便宜。方案二:用单片机直接进行红外编码发射,都采用软件编程实现,51系列单片机价格相对也比较便宜,可以采用软件控制,功能强大,编码灵活,安全性高。1.4.2 主机设计方

10、案方案一:AT89S52单片机+红外接收头+A/D转换芯片。红外接收头将收到的编码数据输送到AT89S52单片机中进行解码处理,然后对LED灯进行PWM方式控制亮度。主机上的亮度调节旋钮通过DAC0832的A/D转换芯片将模拟电压转换成数字信号,将信号传送到单片机中进行处理,然后对LED灯进行PWM方式控制亮度。方案二:ATMEGA16L单片机。采用单片机进行红外线解码,直接在单片机内部进行数据处理,产生不同的PWM对LED灯进行控制。ATMEGA16L自带A/D转换功能,可以直接采集亮度调节旋钮两端的电压,处理成不同的数据,然后对LED灯进行PWM方式控制亮度。 1.5 系统设计方案选定权衡

11、各方案的利弊并结合实际情况系统方案选定如下:1.5.1 从机方案选定系统采用方案二,用单片机直接进行红外编码发射,元件比较简单。红外线发射载波和编码都能通过软件编写,编码比较灵活,使得红外线的编码具有一定得独特性,安全性也更高。1.5.2 主机方案选定系统采用方案一,用AT89S52单片机直接用外部中断端口连接红外线接收头,通过软件解码,解码相对简单。AT89S52通过ADC0803的A/D转换通道直接连接亮度调节旋钮,采集电压,输出控制PWM。第二个ADC0803直接连接光敏电阻,外界环境光线变化,影响光敏电阻的阻值,引起其两端电压的变化。因此,可以增设其他的功能。1.6 系统的特点和使用说

12、明1.6.1系统特点1、系统用单片机进行编码解码,实现的难度也比较大,但它的安全性能也非常的高,也可以灵活的改变红外线的编码;2、系统具有自动调整LED灯亮度的功能,通过采集外界环境的光线亮度变化而自动改变LED灯亮度。 1.6.2 系统使用说明从机上设置有多个功能按键,按键主要设有:LED灯的开/关、低亮度控制、中亮度控制、高亮度控制,4个功能键。1、“LED灯的开/关”按键:该按键按一下灯开,再按灯关。2、“低亮度”、“中亮度”、“高亮度”按键:三个按键,每个按一个按键都可以控制LED灯的一个亮度级别。3、主机上也设置了从机上的一些功能键,是为了防止从机丢失而无法进行控制。还有一个亮度旋钮

13、可以任意调节LED灯亮度。 第二章 系统硬件电路设计2.1 从机红外遥控单元的电路设计从机主要的功能是实现红外线远程控制LED灯的开关及亮度级别。从机的硬件电路结构简单,功能的实现主要靠软件编程实现。硬件电路主要由AT89S52单片机最小系统、按键和红外发射管组成,其原理框图如图2所示。电路原理图如附录A图所示。P00-P03 52 单片机 最小系统 P204个按键红外发射管工作指示灯图2-1 从机电路原理框图从机通过按键发送给单片机,单片机接收到不同的按键指令,从而使单片机通过红外线发送不同的指令编码。按键主要设有:LED灯的开/关、低亮度控制、中亮度控制、高亮度控制。2.2 主机控制单元电

14、路设计主机主要是对LED灯的控制作用,通过产生不同的PWM脉宽信号传送给LED灯,LED灯就会产生不同的亮度变化。主机硬件电路的设计简易而又可以完成特定的功能,其原理框图如图3所示。电路原理图如附录B图所示。AD转换器P10 51单片机P32最小系统光亮度采集按键红外线接收头LED亮度控制旋钮控制LED灯亮度工作指示灯AD转换器图2-2 主机电路原理框图主机上可分为几个部分:1、主机通过红外接收头接收从机的红外线编码调制脉冲,AT89S52单片机直接与红外接收头相连接,通过内部软件将红外线调制脉冲进行解码,得到不同的指令数据,从而执行不同的操作;2、主机上还有功能按键与单片机相连,可以通过按键

15、直接控制主机进行操作;3、通过光敏二极管对外部环境的光线亮度进行采集,ADC0803的A/D转换功能将感受到的电压转换为数字信号并传送给单片机进行处理并根据指令的不同而完成不同的功能操作; 第三章系统软件设计3.1 从机遥控功能软件流程图在从机遥控工作过程中,单片机在一分钟内没有检测到有按键按下时,就会自动进入省电模式,当检测到唤醒按键按下,单片机有进入正常工作模式,并判断是哪个按键按下的。单片机软件控制流程图如图4所示。在流程图中的低级显示、中级显示和高级显示是从机传输给主机的红外线编码控制LED灯的显示低、中和高亮度级别。NYNNYY开始1分钟有按键按下吗?进入省电模式唤醒键按下?LED灯

16、开/关低亮度中亮度高亮度亮度存储模式转换LED灯关LED灯开低级显示中级显示高级显示存储数据调出存储数据红外线编码发射LED开吗?返回图3-1 从机遥控功能流程图3.2 主机控制功能软件流程图主机采用AT89S52单片机,红外接收头接收到数据时,通过单片机外部中断端口向单片机传送数据。主机上的红外接收和按键同时扫描,只要一有指令输入时,单片机就会做出判断,执行相应的功能。其工作流程图如图5所示。流程图中的,低级显示、中级显示、高级显示分别是对LED灯执行低、中、高亮度级别显示,逐步显示为亮度旋钮的任意调光显示。YNYNYN判断是否接收到红外线开始系统初始化,设置中断收到哪个键值扫描指令输入判断

17、执行指令判断执行指令开/关控制低亮度 中亮度高亮度手动调节亮度LED灯是开?LED灯关LED灯开低级显示中级显示高级显示逐步显示返回图3-2 主机控制功能流程图 第四章系统检测4.1 测试仪器系统使用到的测量仪器有:示波器、万用表、网络摄像头。4.2 检测方法4.2.1 检测红外线的发射与接收首先检测红外发射管和红外接收管的好坏。1、用网络摄像头观察上电后的红外发射管是否发出红外光;用示波器探头检测单片机给红外发射管的载波频率,载波一定要在38KHz-40KHz的频率上,才能将红外编码发射出去。2、用示波器探头检测红外接收头的数据端,数据端口的电平会被拉低,即可在示波器上观察到,也说明红外线已

18、经成功发射和接收到。4.2.2 检测PWM的输出占空比直接用示波器接到单片机的I/O端口,当从机、主机有按键按下或者亮度旋钮旋动时就会产生不同占空比的PWM。4.3 测试结果1、从机用单片机实现红外编码,通过6个功能按键向主机发射不同的脉冲编码,主机通过单片机解码,进行数据处理产生不同的PWM控制LED灯的亮度。其从机遥控实现功能如表1所示。表4-1 从机遥控发射功能对照表按键码数据码控制指令0x010x01LED灯开/关状态0x020x02LED灯低亮度控制0x030x03LED灯中亮度控制0x040x04LED灯高亮度控制0x050x05LED灯任意调节亮度控制2、主机的控制功能实现红外线

19、的解码及产生控制功能外,主机上也有按键,主机可以脱离从机而独立工作,实现对LED灯的控制作用。主机上还有一个LED灯亮度旋钮,通过单片机的A/D转换功能,将旋钮旋转而产生的不同电压采集处理,从而可以产生不同占空比的PWM实现对任意LED灯亮度的控制。4.4 系统功能及指标参数分析系统设计实现的功能可以完成我制作的技术要求,系统设计分从机和主要两大部分,主机负责调光,从机负责远程控制。从机实现了红外遥控功能,从机上有四个按键,按键1,是开关,按一下灯开,再按灯关;按键2,是低亮度;按键3,是中亮度,按键4,是高亮度。主机也有调光功能,通过旋转亮度旋钮可以任意调节光的亮度。如所示。表4-2 指标参

20、数分析从机遥控控制的有效范围8米LED灯的控制电压0-5V同时系统的设计理念可以说是从几个方面出发:1、设计的低成本性;2、设计的安全性;3、设计的便携性;4、设计的使用简易性。 第五章设计总结本系统主要以单片机(AT89S52)为主要控制芯片,采用光敏电阻采集光亮度,并运用PWM技术实现灯的亮度调节。在设计过程中力求硬件电路简单,充分发挥软件设计的优势编程灵活方便来满足系统的要求。在作品的制作当中,遇到的主要困难是红外线的编码与解码,遥控编码脉冲信号采用ppm码,ppm码通常包括三大部分,即引导码(起始码)、系统码(即识别码,用户码或设备码)和功能码(键位数据码)。编码的安全性主要体现在了系

21、统码和功能码的编程,在解码上也有自己的独特之处。因此,单片机编码难以破解,接收端也不容易被其它红外发射装置所控制。参考文献:【1】 模拟电子线路基础,华成英、童诗白著,北京:高等教育出版社,2006年;【2】 数字电子技术基础,康华光著,北京:高等教育出版社,2005年;【3】 通信电子线路基础,严国萍、周龙占著,北京:科学出版社,2006年;【4】 单片机基础,李广弟、朱月秀、王秀山著,北京:北京航空航天大学出版社,2001年;【5】 AVR单片机C语言高级程序设计,周兴华著,北京:中国电力出版社,2008年;【6】 热红外遥感,田国良著,北京: , 2006年。附录:附录1 元件明细表序号

22、 器件名称 数量(单位:个)1 AT89S52 22 ATMEGA16 13 光敏二极管 14 滑动变阻器 15 按键 136高亮度LED灯 1(组)7红外发射和接收管 1(对)附录2 电路图纸 图一 从机电路原理图图二 主机电路原理框图附录3 程序清单#include nokia_5110.h#include bmp_pixel.h#definedelay_time25767void fun1(void) LCD_write_english_string(0,0,TEST PROG YZL);LCD_write_english_string(0,1,NOKIA 5110LCD );LCD_w

23、rite_english_string(0,2,amy-);LCD_write_english_string(0,3, Nokia5110 LCD);LCD_write_chinese_string(12,4,12,4,0,5); void main(void) LCD_init(); /初始化液晶 LCD_clear();while(1) /fun1(); delay_nms(500);LCD_clear();delay_nms(500); LCD_draw_bmp_pixel(0,0,gImage_bmp1,40,40);delay_nms(500);LCD_clear(); /LCD_d

24、raw_bmp_pixel(0,0,AVR_bmp,66,40);/x,y,*pointer,pixx,pixy LCD_write_chinese_string(0,0,12,4,0,0);delay_nms(500);LCD_clear(); #include #include #include #include nokia_5110.h #define TURE 1 #define FALSE 0 sbit IR=P32;/红外接口标志sbit LEDEN = P00; unsigned char irtime;/红外用全局变量 bit irpro_ok,irok; unsigned c

25、har IRcord4; unsigned char pwmt,genepwm; unsigned char irdata33; void Delay(unsigned char mS); void Ir_work(void); void Ircordpro(void); void generatewave(unsigned char a) if (pwmt(a+1) LEDEN=1; else if (pwmt10) LEDEN=0; else pwmt=0; pwmt+; void tim0_isr (void) interrupt 1 using 1/定时器0中断服务函数 irtime+

26、; if (genepwm) generatewave(IRcord2); void ex0_isr (void) interrupt 0 using 0/外部中断0服务函数 static unsigned char i; static bit startflag; if(startflag) if(irtime=33)/引导码 TC9012的头码 i=0; irdatai=irtime;/一次存储32位电平宽度 irtime=0; i+; if(i=33) irok=1; i=0; else irtime=0;startflag=1; void TIM0init(void)/定时器0初始化

27、TMOD=0x02;/定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00;/reload value TL0=0x00;/initial value ET0=1;/开中断 TR0=1; void EX0init(void) IT0 = 1; / Configure interrupt 0 for falling edge on /INT0 (P3.2) EX0 = 1; / Enable EX0 Interrupt EA = 1; /*/ void Ircordpro(void)/红外码值处理函数 unsigned char i, j, k; unsigned char cor

28、d,value; k=1; for(i=0;i4;i+)/处理4个字节 for(j=1;j7)/大于某值为1 value=value|0x80; else value=value; if(j1; k+; IRcordi=value; value=0; irpro_ok=1;/处理完毕标志位置1 unsigned char i8;unsigned char i74=1,2,3,4 ; void main(void) LEDEN=0; LCD_init(); /初始化液晶 LCD_clear(); EX0init(); / Enable Global Interrupt Flag TIM0init

29、();/初始化定时器0 while(1)/主循环 / LEDEN=0; for( i8=0;i8250;i8+); /LEDEN=1;for( i8=0;i8250;i8+); if(irok) /等待按键 Ircordpro();/码值处理 irok=0; if(irpro_ok) LCD_write_english_string(0,0,KEY VALUE: );/wr4char(0,0,IRcord); Ir_work(); wr2hex(64,0,(IRcord2+1); if (IRcord28) genepwm=1; else genepwm=0;LEDEN=0; /码值识别散转

30、i7 #include nokia_5110.h#include english_6x8_pixel.h#include write_chinese_string_pixel.h/*-LCD_init : 3310LCD初始化编写日期 :2004-8-10 最后修改日期 :2004-8-10 -*/void delay_1us(void) /1us延时函数 unsigned int i; for(i=0;i1000;i+); void delay_1ms(void) /1ms延时函数 unsigned int i; for (i=0;i1140;i+); void delay_nms(unsi

31、gned int n) /N ms延时函数 unsigned int i=0; for (i=0;in;i+) delay_1ms(); void LCD_init(void) / 产生一个让LCD复位的低电平脉冲 LCD_RST = 0; delay_1us(); LCD_RST = 1; / 关闭LCD LCD_CE = 0; delay_1us();/ 使能LCD LCD_CE = 1; delay_1us(); LCD_write_byte(0x21, 0);/ 使用扩展命令设置LCD模式 LCD_write_byte(0xc8, 0);/ 设置偏置电压 LCD_write_byte(

32、0x06, 0);/ 温度校正 LCD_write_byte(0x13, 0);/ 1:48 LCD_write_byte(0x20, 0);/ 使用基本命令 LCD_clear(); / 清屏 LCD_write_byte(0x0c, 0);/ 设定显示模式,正常显示 / 关闭LCD LCD_CE = 0; /*-LCD_clear : LCD清屏函数编写日期 :2004-8-10 最后修改日期 :2004-8-10 -*/void LCD_clear(void) unsigned int i; LCD_write_byte(0x0c, 0); LCD_write_byte(0x80, 0)

33、; for (i=0; i504; i+) LCD_write_byte(0, 1); /*-LCD_set_XY : 设置LCD坐标函数输入参数:X :083 Y :05编写日期 :2004-8-10 最后修改日期 :2004-8-10 -*/void LCD_set_XY(unsigned char X, unsigned char Y) LCD_write_byte(0x40 | Y, 0);/ column LCD_write_byte(0x80 | X, 0); / row /*-LCD_write_char : 显示英文字符输入参数:c :显示的字符;编写日期 :2004-8-10

34、 最后修改日期 :2004-8-10 -*/void LCD_write_char(unsigned char c) unsigned char line; c -= 32; for (line=0; line6; line+) LCD_write_byte(font6x8cline, 1); /*-LCD_write_english_String : 英文字符串显示函数输入参数:*s :英文字符串指针; X、Y : 显示字符串的位置,x 0-83 ,y 0-5编写日期 :2004-8-10 最后修改日期 :2004-8-10 -*/void LCD_write_english_string(

35、unsigned char X,unsigned char Y,char *s) LCD_set_XY(X,Y); while (*s) LCD_write_char(*s); s+; void wr4char(unsigned char x,unsigned char y,char *s) unsigned char i; LCD_set_XY(x,y);for (i=0;i4;i+) LCD_write_char(*s)+0x30);s+; void wr2hex(unsigned char x,unsigned char y,unsigned char v)unsigned char v

36、1,v2;v1=v/10;v2=v%10;LCD_set_XY(x,y);LCD_write_char(v1+0x30);LCD_write_char(v2+0x30);/*-LCD_write_chinese_string: 在LCD上显示汉字输入参数:X、Y :显示汉字的起始X、Y坐标; ch_with :汉字点阵的宽度 num :显示汉字的个数; line :汉字点阵数组中的起始行数 row :汉字显示的行间距编写日期 :2004-8-11 最后修改日期 :2004-8-12 测试:LCD_write_chi(0,0,12,7,0,0);LCD_write_chi(0,2,12,7,0,

37、0);LCD_write_chi(0,4,12,7,0,0);-*/ void LCD_write_chinese_string(unsigned char X, unsigned char Y, unsigned char ch_with,unsigned char num, unsigned char line,unsigned char row) unsigned char i,n; LCD_set_XY(X,Y); /设置初始位置 for (i=0;inum;) for (n=0; nch_with*2; n+) /写一个汉字 if (n=ch_with) /写汉字的下半部分 if (

38、i=0) LCD_set_XY(X,Y+1); else LCD_set_XY(X+(ch_with+row)*i),Y+1); LCD_write_byte(write_chineseline+in,1); i+; LCD_set_XY(X+(ch_with+row)*i),Y); /*-LCD_draw_map : 位图绘制函数输入参数:X、Y :位图绘制的起始X、Y坐标; *map :位图点阵数据; Pix_x :位图像素(长) Pix_y :位图像素(宽)编写日期 :2004-8-13最后修改日期 :2004-8-13 -*/void LCD_draw_bmp_pixel(unsign

39、ed char X,unsigned char Y,unsigned char *map, unsigned char Pix_x,unsigned char Pix_y) unsigned int i,n; unsigned char row; if (Pix_y%8=0) row=Pix_y/8; /计算位图所占行数 else row=Pix_y/8+1; for (n=0;nrow;n+) LCD_set_XY(X,Y); for(i=0; iPix_x; i+) LCD_write_byte(mapi+n*Pix_x, 1); Y+; /换行 /*-LCD_write_byte : 使

40、用SPI接口写数据到LCD输入参数:data :写入的数据; command :写数据/命令选择;编写日期 :2004-8-10 最后修改日期 :2004-8-13 -*/void LCD_write_byte(unsigned char dat, unsigned char command) unsigned char i; /PORTB &= LCD_CE ; / 使能LCD LCD_CE = 0; if (command = 0) / PORTB &= LCD_DC ; / 传送命令 LCD_DC = 0; else / PORTB |= LCD_DC ; / 传送数据 LCD_DC = 1;for(i=0;i8;i+)if(dat&0x80)SDIN = 1;elseSDIN = 0;SCLK = 0;dat = dat 1;SCLK = 1; / SPDR = data;/ 传送数据到SPI寄存器 /while (SPSR & 0x80) = 0); / 等待数据传送完毕 /PORTB |= LCD_CE ;/ 关闭LCD LCD_CE = 1;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!