基于单片机的温室大棚设计可编辑.doc

上传人:田海滨 文档编号:56520 上传时间:2025-07-09 格式:DOC 页数:37 大小:139.50KB
下载 相关 举报
基于单片机的温室大棚设计可编辑.doc_第1页
第1页 / 共37页
基于单片机的温室大棚设计可编辑.doc_第2页
第2页 / 共37页
基于单片机的温室大棚设计可编辑.doc_第3页
第3页 / 共37页
基于单片机的温室大棚设计可编辑.doc_第4页
第4页 / 共37页
基于单片机的温室大棚设计可编辑.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、基于单片机的温室大棚设计 专业课程设计基于单片机的温室大棚控制系统学院:物理与电气工程学院姓名:指导老师:丁电宽 摘要 随着社会的进步和工农业生产技术的发展,许多产品对生产和使用环境的要求越来越严,人们对温度、湿度、光强、二氧化碳浓度、灰尘等环境因素的影响越来越重视了。大棚技术的普及,使得温室大棚数量不断增多,对于蔬菜大棚来说,最重要的一个管理因素是温湿度控制。温湿度太低,蔬菜就会被冻死或则停止生长,所以要将温湿度始终控制在适合蔬菜生长的范围内。传统的温度控制是在温室大棚内部悬挂温度计,工人依据读取的温度值来调节大棚内的温度。如果仅靠人工控制 既 耗 人 力 ,又 容 易 发 生 差 错 。现

2、 在,随 着 农 业 产 业 规 模 的 提 高,对于 数 量 较 多 的大棚,传统的温度控制措施就显现出很大的局性。为此,在现代化的蔬菜大棚管理中通常有温湿度自动控制系统,以控制蔬菜大棚温度,适应生产需要。本论文主要阐述了基于AT89C52单片机的温室大棚温湿度控制系统设计原理,主要电路设计及软件设计等。该系统采用AT89C52单片机作为主控制器,SHT11作为温湿度数据采集系统,可对执行机构发出指令实现大棚温湿度参数调节,根据实际需求设计了单片机硬件系统,该系统能够实现数据采集,数据处理,数值显 示 等 功 能 。同 时介 绍 了 温 湿 度 传 感 器 ,单 片 机 接 口,及 其 应

3、用 软件的设计,该基于单片机的大棚温湿度控制系统性能可靠,结构简单,能实现对温室内温湿度的自动调节。关键词:AT89C51;大棚;温湿度;传感器; 目录绪论4 1.1系统设计背景5 1.2系统功能、优势及特点5设计内容5 2.1设计思想52.2系统组成53、系统主要部分设计5 3.1 AT89c52简介及最小系统53.2温度控制模块传感器DS18B2083.3湿度传感器DHT1183.4 12864液晶显示模块93.5 光敏BH1750FVI模块103.6 总电路原理图及PCB图11系统软件的设计114.1系统主程序134.2 控制系统的程序13参考文献321. 绪论 1.1 系统设计背景 植

4、物的生长都是在一定的环境中进行的,其在生长过程中受到环境中各种因素的影响,其中对植物生长影响最大的是环境中的温度和湿度。环境中昼夜的温度和湿度变化大,其对植物生长极为不利。因此必须对环境的温度和湿度进行监测和控制,使其适合植物的生长,提高其产量和质量。本系统就是利用价格便宜的一般电子器件来设计一个参数精度高,控制操作方便,性价比高的应用于农业种植生产的温室大棚温湿度测控系统。 本系统温湿度的监控包括以下步骤:感应环境温湿度;判断感应到的温湿度是否异常;若感应到的温湿度异常,判断异常是否超过预设时间;若异常超过预设时间,则异常报警;判断异常是否处理完毕;若异常处理完毕,解除报警。并可以利用控制器

5、和单片机机来达到机房温湿度的远程控制,从而实现温室大棚温湿度管理的实时性和有效性。 为此,在现代化的温室大棚管理中通常有温湿度自动控制系统,以控制大棚温度,适应生产需要。它以先进的技术和现代化设施,人为控制作物生长的环境条件,使作物生长不受自然气候的影响,做到常年工厂化,进行高效率,高产值和高效益的生产。1.2 系统功能、优势及特点 该检测系统充分利用AT89C52单片机的软、硬件资源,辅以相应的测量电路,能实现多任务、多通道的检测和输出。它具有测量范围广、测量精度高等特点,前端测量用的传感器类型可在该基础上修改为其他非电量参数的测量系统。温度检测系统采用DS18B20测量元件,湿度检测系统采

6、用DHT11湿度传感器,光度检测采用光敏BH1750FVI模块。系统在硬件设计上充分考虑了可扩展性,经过一定的添加或改造,很容易增加功能。根据温室大棚内的温湿度传感器等采集到的信息,利用数据总线将传感器信息送给单片机,再通过12864液晶显示。当系统报警时监控中心可向现场控制器发出控制指令,监测仪根据指令控制风机、水泵、等设备进行降温除湿补光等动作,以保证大棚内作物的生长环境。监控中心也可以通过报警指令来启动现场监测仪上的声光报警装置,通知大棚管理人员采取相应措施来确保大棚内的环境正常。2、设计内容2.1 设计思想 大棚温湿度控制系统上电工作后,单片机进入主程序后,开始以查询的方式检测温湿度传

7、感器的温湿度状态,并将相应的数值通过显示器显示输出。当温室内的温度光照湿度等小于或大于设置的初值时,单片机将通过控制各电机设备开始工作。 2.2 系统组成 系统由单片机电源电路、温度传感器DS18B20、湿度传感器DHT11、光敏BH1750FVI模块、电机、12864液晶显示和控制模块(AT89C52)组成。1、温湿度传感器:负责检测并采集各控制点温湿度数据。数据通讯转换器:负责温湿度数据采集数据的信号转换,复位等。 3、软件部分:软件部分负责对所有数据进行读取分析,并执行各项管理功能。控制部分(即温湿度调节系统):执行指令,由各直流电动机完成。系统主要部分设计 3.1 AT89c52简介及

8、最小系统 89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出I/O口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此

9、外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP40pin和PLCC44pin两种封装形式。管脚介绍:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须

10、被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给

11、出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口作为AT89C51的一些特殊功能口,管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(计

12、时器0外部输入) P3.5 T1(计时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的底位字节。 在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有

13、在执行MOVX,MOVC指令是ALE才起用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作

14、电路的输入。 XTAL2:来自反向振荡器的输出。单片机各管脚及最小系统图:单片机各管脚及最小系统图3.2 温度控制模块传感器DS18B20: 本系统所用的温度传感器为DS18B20,DS18B20是常用的温度传感器,具有体积小,硬件开消低,抗干扰能力强,精度高的特点。实物图如下: DS18B20工作原理: DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振

15、荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS18B20接线如图:3.3 湿度传感器DHT11 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,

16、它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。实物图如下:湿度传感器DHT11接线图:3.4 12864液晶显示模

17、块 12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。12864显示模块接线图:3.5 光敏BH1750FVI模块: B

18、H1750FVI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。3.6 总电路原理图及PCB图: 温控大棚系统原理图 Pcb布板图系统软件的设计 软件设计主要分为主程序、温湿度传感器数据读取子程序、LCD显示程序、键盘扫描,按键去抖动的处理、控制器控制流程。4.1系统主程序 本系统的智能核心是AT89C52,其监控程序和应用软件全部固化在EPROM内。他的工作过程是:当系统接通电源后,AT89C52单片机进入监控状态,同时完成对各个端口的初始化工作,当有按键按下时,产

19、生申请中断,进入响应的中断程序,完成键盘处理工作。当没有外部控制信息的输入时,系统会自动采集温湿度传感器的电压值,最终数据在LCD显示屏上显示。4.2 控制系统的程序: #include #include #define uchar unsigned char #define uint unsigned int /湿度 防止ht11在与硬件通信时发生死循环的计数范围 #define OK 1 #define ERROR 0 #define SIZE 5 uchar value_arraySIZE; /*可在其他的文件引用温湿度值,实际是温度的整数的 10 倍 /如 dht11 读回的温度是 2

20、6,则 temp_value 260, 湿度同理*/ uint temp_value, humi_value; /光照#defineSlaveAddress0x46 /定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改 /ALT ADDRESS引脚接地时地址为0x46,接电源时地址为0xB8 typedefunsigned char BYTE; typedefunsigned short WORD; BYTE BUF8; /接收数据缓存区 ucharge,shi,bai,qian,wan;/显示变量 uint dis_data; /变量 /引脚定义 sbit CLK_1

21、8B20P25; /18B20 sbit dht11P24;/湿度 sbit da_lightP23;/光照 sbit clk_lightP22; sbit clk_mq5P21;/气体 sbit RSP12;/12864 sbit RWP11; sbit EP10; sbit fmqP13; sbit motor1P27; float tem;/温度值 uchar a;/中断0次数记录 uchar b0;/判断主函数是否为前5次进入循环,若为前5次蜂鸣器禁止响 uchar code dd120温度湿度光照浓度; uchar Data_tem5;/暂存液晶温度值 uchar Data_hum5

22、/暂存液晶湿度值 uchar Data_lux5;/暂存液晶光照值 uchar code str1480x28,0x5b,0x09,0xd1,0x04,0x00,0x00,0x2b, 0x28,0x00,0xb1,0xd0,0x04,0x00,0x00,0x03, 0x28,0x93,0x30,0xd0,0x04,0x00,0x00,0xed, 0x28,0x05,0xa5,0xd0,0x04,0x00,0x00,0x8b;/储存4个温度传感器64位rom代码码组/延时子程序1 void delayuint ms uchar i; whilems- fori0;i124;i+; /延时子程序

23、2 void delaynopuchar us whileus- _nop_; _nop_; _nop_; _nop_; _nop_; /*/ void alarm uint i; fori0;i100;i+ fmq1; delaynop100; fmq0; delaynop100; 18B20程序 /写18B20单个字节 void write_18b20dat uchar i,k; fori0;i8;i+ kdat&0x01; CLK_18B200; CLK_18B201; ifk0x00 CLK_18B200; delaynop8; else CLK_18B201; delaynop8;

24、CLK_18B201; dat1; /读18B20单个字节 read_18b20 uchar i,dat0; fori0;i8;i+ dat1; CLK_18B200; CLK_18B201; _nop_; ifCLK_18B200 delaynop8; else datdat|0x80; delaynop8; CLK_18B201; returndat; /对18B20读写前的初始化子程序 void init_18b20 CLK_18B201; CLK_18B200; delaynop60; CLK_18B201; delaynop4; whileCLK_18B201; delaynop20

25、 CLK_18B201; delaynop1; /读取温度子程序 floatprocessing_18b20 uchar xl; uint i,xh; float x; init_18b20; write_18b200xcc; write_18b200x44; delaynop60; init_18b20; write_18b200xcc; write_18b200xbe; xlread_18b20; xhread_18b20; xh8; ixh|xl; ifxh&0xf8000xf800/为负温度 ii+1; x-i4+i&0x000f*0.0625; else xi4+i&0x000f*

26、0.0625; ifb4 iftem30|tem10 alarm;/超出温度范围发出警报 ifb4 /这两个IF语句是用来消除程序刚启动时18B20的读书不稳定 b+; temx; ifi30|i10/超标了响应电机 alarm; motor11; else motor10; Data_tem4uinttem/100; Data_tem3uinttem/10%10; Data_tem2uinttem%10; Data_tem1uinttem*10%10; Data_tem0uinttem*100%10; returnx; 湿度dht11程序 /*读一个字节的数据*/ DHT11_ReadVal

27、uevoid uchar value 0, i; fori 8; i 0; i- /高位在先 value 1; /每一位数据前会有一个 50us 的低电平时间.等待 50us 低电平结束 whiledht110; /26-28us的高电平表示该位是0,为70us 高电平表该位 1 delaynop4; /延时40us后检测数据线是否还是高电平 ifdht111 /进入这里表示该位是 1 value+; /等待剩余约 40us的高电平结束 whiledht111; return value; /读温度和湿度函数,读一次的数据,共五字节,读出成功函数返回 OK, 错误返回 ERROR DHT11_

28、ReadTempAndHumivoid uchar i 0,check_value 0; dht11 1; delaynop10; dht11 0; /拉低数据线大于 18ms 发送开始信号 delay20;/需大于 18 毫秒 dht11 1;/释放数据线,用于检测低电平的应答信号 /延时20-40us,等待一段时间后检测应答信号,应答信号是从机拉低数据线 80us delaynop8; ifdht111 /检测应答信号,应答信号是低电平 Data_hum06; /没应答信号 return ERROR; else /有应答信号 whiledht110;/等待应答信号结束 delaynop2;

29、/释放数据线 /应答信号后会有一个 80us 的高电平,等待高电平结束 whiledht111; delaynop1; /读出湿.温度值 fori 0; i SIZE; i+ value_arrayi DHT11_ReadValue; /读出的最后一个值是校验值不需加上去 ifi ! SIZE - 1 /读出的五字节数据中的前四字节数据和等于第五字节数据表示成功 check_value + value_arrayi; /end for/在没用发生函数调用失败时进行校验 ifcheck_value value_arraySIZE - 1 /将温湿度扩大 10 倍方便分离出每一位 humi_val

30、ue value_array0; temp_value value_array2*10; Data_hum06;/humi_value/10%10; Data_hum1humi_value%10; dht11 1; delay200; return OK; /正确的读出 dht11 输出的数据 else /校验数据出错 return ERROR; 光照程序 起始信号 void BH1750_Start da_light 1; /拉高数据线 clk_light 1; /拉高时钟线 delaynop2; /延时 da_light 0; /产生下降沿 delaynop2; /延时 clk_light

31、 0; /拉低时钟线 停止信号 void BH1750_Stop da_light 0; /拉低数据线 clk_light 1; /拉高时钟线 delaynop2; /延时 da_light 1; /产生上升沿 delaynop2; /延时 发送应答信号 入口参数:ack 0:ACK 1:NAK void BH1750_SendACKbit ack da_light ack;/写应答信号 clk_light 1; /拉高时钟线 delaynop2; /延时 clk_light 0; /拉低时钟线 delaynop2; /延时 接收应答信号 bit BH1750_RecvACK clk_ligh

32、t 1; /拉高时钟线 delaynop2; /延时 CY da_light; /读应答信号 clk_light 0; /拉低时钟线 delaynop2; /延时 return CY; 向IIC总线发送一个字节数据 void BH1750_SendByteBYTE dat BYTE i; for i0; i8; i+/8位计数器 dat 1; /移出数据的最高位 da_light CY;/送数据口 clk_light 1; /拉高时钟线 delaynop2; /延时 clk_light 0; /拉低时钟线 delaynop2; /延时 BH1750_RecvACK; 从IIC总线接收一个字节数

33、据 BYTE BH1750_RecvByte BYTE i; BYTE dat 0; da_light 1; /使能内部上拉,准备读取数据, for i0; i8; i+/8位计数器 dat 1; clk_light 1; /拉高时钟线 delaynop2; /延时 dat | da_light; /读数据 clk_light 0; /拉低时钟线 delaynop2; /延时 return dat; void Single_Write_BH1750uchar REG_Address BH1750_Start;/起始信号 BH1750_SendByteSlaveAddress;/发送设备地址+写

34、信号 BH1750_SendByteREG_Address; /内部寄存器地址, / BH1750_SendByteREG_data; /内部寄存器数据, BH1750_Stop; /发送停止信号 *单字节读取/* uchar Single_Read_BH1750uchar REG_Address uchar REG_data; BH1750_Start; /起始信号 BH1750_SendByteSlaveAddress; /发送设备地址+写信号 BH1750_SendByteREG_Address; /发送存储单元地址,从0开始 BH1750_Start; /起始信号 BH1750_Sen

35、dByteSlaveAddress+1;/发送设备地址+读信号 REG_dataBH1750_RecvByte; /读出寄存器数据 BH1750_SendACK1; BH1750_Stop;/停止信号 return REG_data; /连续读出光照BH1750内部数据 void Multiple_Read_BH1750void uchar i; BH1750_Start; /起始信号 BH1750_SendByteSlaveAddress+1;/发送设备地址+读信号 for i0; i3; i+ /连续读取2个地址数据,存储中BUF BUFi BH1750_RecvByte; /BUF0存储

36、0x32地址中的数据 if i 3 BH1750_SendACK1; /最后一个数据需要回NOACK else BH1750_SendACK0; /回应ACK BH1750_Stop; /停止信号 delaynop2; /初始化BH1750,根据需要请参考pdf进行修改* void init_bh1750 Single_Write_BH17500x01; void processing_bh1750 uint i; Single_Write_BH17500x01;/ power on Single_Write_BH17500x10;/ H- resolution mode delay180;

37、Multiple_Read_BH1750; /连续读出数据,存储在BUF中 iBUF0; ii8|BUF1; iuinti/1.2; ifi300 /超标了响应电机 alarm; motor11; else motor10; Data_lux0i/10000; Data_lux1i/1000%10; Data_lux2i/100%10; Data_lux3i/10%10; Data_lux4i%10; 12864程序 /查忙闲 busy bit b; RS0; RW1; E1; delaynop1; bbitP0&0x80; E0; return b; /写一个字节数据 void write_

38、1data12864uchar k /whilebusy; RS1; RW0; P0k; delaynop1; E1; delaynop1; E0; /写两个字节数据 void write_2data12864uchar k write_1data12864dd1k; write_1data12864dd1k+1; /写命令 void write_cmd12864uchar k /whilebusy; RS0; RW0; P0k; delaynop1; E1; delaynop1; E0; /读数据 void read_data12864uchar k /whilebusy; RS0; RW1

39、 E1; delaynop1; P0k; delaynop1; E0; /显示图像 void display_imguint *ddd uchar i,j; fori0;i32;i+ forj0;j8;j+ write_cmd128640x34;/绘图开上半屏(扩充指令集) write_cmd128640x80+i; /垂直坐标 write_cmd128640x80+j; /水平坐标 write_cmd128640x30; write_1data12864dddi*16+j*2; write_1data12864dddi*16+j*2+1; fori32;i64;i+ forj0;j8;j+

40、 write_cmd128640x34;/绘图开下半屏(扩充指令集) write_cmd128640x80+i-32; write_cmd128640x88+j; write_cmd128640x30; write_1data12864dddi*16+j*2; write_1data12864dddi*16+j*2+1; write_cmd128640x36; /12864初始化 void init_12864 delay10; write_cmd128640x30;/选择基本指令集 delay5; write_cmd128640x30;/ delay5; write_cmd128640x0c;/开显示(无游标,无反白) delay5; write_cmd128640x01;/清屏显示,并设定地址指针为00h delay5; write_cmd128640x06;/在资料的读取与写入时设定游标的移动方向及指定显示的移位,光标右向左加1位移动 delay5; CO检测程序 void test_co i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 论文 > 大学论文

宁ICP备18001539号-1