本次实验设计采用QX—Mini最小系统开发板,DS1302时钟模块,LCD12864带字库显示屏,DHT11温湿度传感器, MQ-135烟雾传感器,ADC0832模数转换器,两路继电器、灯泡一个,其中使用Stc89C52作为主控芯片实现实时显示时钟,温湿度显示,烟雾报警器,时钟控制系统。 1、上电后12864显示: 欢迎使用XXXXXX系统 设计人:姓名、班级、学号 2、5秒后进入菜单12864显示: 0—系统时间设置 (时钟、日历等) 1---正常运行 其他设置:菜单号自定 计科班:钟控开始时间设置:显示当前时间 钟控结束时间设置:显示将要设置的时间 3、正常远行后12864显示:(计科、教育)。每2秒切换显示内容 (1)时钟显示:例如:2020年8月27日 星期四 16:30:15 (其它显示自定义) (2)温湿度、空气质量 例如:23℃ 46% (3)特殊值显示并报警 4、其它显示个人定义 3. 设计实现的方案上电后lcd12864显示第一个画面——爱心(自定义图标);然后切换下一个画面——第一行显示:欢迎使用数显系统、第二行显示:设计人:魏明、第三行显示:专业:计算机科学与技术、第四行显示:1986000291;然后切换下一个画面——菜单界面;然后停留在菜单界面等待选择;在现有的元器件上进行四个模块的划分分别如下: 时钟:显示实时的时间 温湿度:显示相对湿度以及温度 烟雾报警:空气污染检测超过设定值时产生报警 灯控系统:设计一个倒计时,在倒计时完成之前一直亮灯 2、 实验材料简介2.1 STC89c52芯片2.2.1 产品简介 STC89C52RC单片机是宏晶科技推出的新-.代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 2.2.1 引脚图 2.2.1 主要特性1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051. 2.工作电压: 5.5V~3.3V (5V单片机) /3. 8V~2.0V (3V单片机) 3.工作频率范围: 0~40MHz, 相当于普通8051的0~80MHz,实际工作频率可达48MHz 4.用户应用程序空间为8K字节5.片上集成512字节RAM 5.通用I/0口(32个) ,复位后为: P1/P2/P3/P4是准双向口/弱上拉,PO口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/0口用时,需加上拉电阻。 6. ISP (在系统可编程) /IAP (在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3. 0, TxD/P3.1)直接下载用户程序,数秒即可完成一片 7.具有EEPROM功能 8.具有看门狗功能; 9. 共3个16位定时器/计数器。即定时器T0、T1、T2 10.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒 11.通用异步串行口(UART) ,还可用定时器软件实现多个UART 12.工作温度范围: -40~+85C (工业级) /0~75C (商业级) 13. PDIP封装 2.2 LCD12864带字库显示屏2.2.1 产品简介LCD12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块,其显示分辨率为128X64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8X4行16X16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 2.2.2 引脚图
2.2.3 时序图 2.2.4 指令说明 2.3 DS1302
2.3.1 产品简介DS1302是美国DALL AS推出的一款高性能、低功耗的日历时钟芯片。DS1302是一种串行接口的实时时钟,芯片内部具有可编程的日历时钟和31个字节的静态RAM,日历时钟可以自动进行闰年补偿,计时准确,接口简单,使用方便,工作电压范围宽(2.5~5.5V) ,芯片自身还具有对备用电池进行涓流充电功能,可有效延长备用电池的使用寿命。DS1302用于数据记录,能实现数据与该数据出现的时间同时记录,因此广泛应用于测量系统中。 2.3.2 引脚图各引脚功能为:
VCC1:主电源。 VCC2: 备用电源。当VCC2大于VCC1+0.2V时由VCC2向DS1302供电否则由VCC1向DS1302供电。
SCLK: 串行时钟输入端,控制数据输入与输出; I/O :双向输入线;
CE:使能端,CE为高时允许读写DS1302数据,为低时禁止读写。 x1和x2:连接晶振。 2.3.3 DS1302寄存器的作用 时钟日历寄存器包含在7个读/写寄存器内,读/写寄存器中的数据是BCD码。秒寄存器(81h、 80h) 的BIT7定 义为时钟暂停标志(CH) 。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。 小时寄存器( 85h、 84h)的BIT7用于定义DS1302是运行于12小时模式还是24小时模式,当为1时,选择12小时模式,此时BIT5为AM/PM位, 在24小时模式时此位为小时数据位。 控制寄存器(8Fh、8Eh)的BIT7是写保护位(WP),其它7位均为0。在任何对时钟或RAM读写操作之前,WP位必须为0。当WP位为1时,不能对任何时钟日历寄存器或RAM进行写操作。 2.3.4 通讯时序DS1302读写数据时序,数据的传输是从最低位开始(BITO) 。数据是以位(BIT)为单位依次写入或读出,读写数据操作中SCLK上升沿时执行写入数据,下降沿时执行读出数据。 读数据: CE端从低到高的一个上升沿开始允许开始读数据,拉低CE端则禁止读写数据;开始的8个SCLK周期,写命令字节,数据的后8个SCLK周期读出数据。 写数据: CE端从低到高的一个上升沿开始允许开始写数据,拉低CE端则禁止读写数据;开始的8个SCLK周期,写命令字节,数据的后8个SCLK周期写入数据。 2.4 DHT11温湿度传感器2.4.1 产品简介DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在0TP内存中,传感器内:部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。 2.4.2 引脚图  2.4.3 时序图
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必
须大于18毫秒,保证DHT11能检测到起始信号。 DHT11接收到主机的开始信号后,
等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束
后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换
到输入模式,或者输出高电平均可, 总线由上拉电阻拉高 
总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后, DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。 2.5 MQ-135 空气污染检测传感器
2.5.1 产品简介MQ-135气体传感器使用的气敏材料是在清洁空气中电导率较低 的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ气体传感器对甲烷的灵敏度高,对丙烷、丁烷也有较好的灵敏度。这种传感器可检测多种可燃性气体,特别是天然气,是一款适合多种营养的低成本传感器。 2.5.2 引脚图2.5.3 特点1、具有信号输出指示。 2、双路信号输出(模拟量输出及TTL电平输出) 3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机) 4、模拟量输出0~5V电压,浓度越高电压越高。 5、对液化气,天然气,城市煤气有较好的灵敏度。 6、具有长期的使用寿命和可靠的稳定性 7、快速的响应恢复特性 8、适用于家庭或工厂的气体泄漏监测装置,适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等监测装置。 2.6 ADC0832 模数转换器2.6.1 产品简介ADC0832是NS (Nati ona1 Semiconductor) 公司生产的串行接口8位A/D转换器,通过三线接口与单片机连接,功耗低,性能价格比较高,适宜在袖珍式的智能仪器仪表中使用。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。芯片具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。 2.6.2 引脚图 2.7 两路继电器2.7.1 产品简介1、模块采用继电器,常开接口最大负载:交流250V/10A,直流30V/10A 2、采用贴片光耦隔离,驱动能力强,性能稳定;触发电流5mA 3、模块工作电压有5V、9、12V、24V可供选择;4、模块可以通过跳线设置高电平或低电平触发;5、容错设计,即使控制线断,继电器也不会动作;6、电源指示灯(绿色),继电器状态指示灯(红色) 7、接口设计人性化,所有接口均可通过接线端子直接连线引出,非常方便 8、模块尺寸: 50mm * 41mm* 18.5mm (长*宽*高) 9、设有4个固定螺栓孔,孔3.1mm,间距44.5mm*35.5mm 3、 电路设计3.1 系统总框图设计3.2 最小系统板总电路图3.3 显示模块电路
4、 程序设计流程5.2 温湿度程序设计流程图5、 实物图
单片机源程序如下:
- /********************************************************************
- 头文件//用“”,它会在当前目录文件夹找,找不到才会去系统指定位置去找
- ;用尖括号它回去系统指定的位置去找相应包含的文件
- ***********************************************************************/
- #include"config.h"
- #include"delay.h"
- #include"lcd12864.h"
- #include"viewtime.h"
- #include"ds1302.h"
- #include"key.h"
-
-
- #define uchar unsigned char
- #define uint unsigned int
- /********************************************************************
- * 名称 :main函数
- * 功能 :
- ***********************************************************************/
- int main(void)
- {
- initina2(); //调用LCD显示图片(扩展)初始化程序
- DisplayGraphic(pic1); //显示图片1
- delayms(200); //200*10ms就是延时2秒
- initina1(); //调用LCD字库初始化程序
- delay(200); //大于100uS的延时程序
- lcd_mesg(IC_DAT); ///显示中文汉字1
- delayms(200);
- initina1(); //调用LCD字库初始化程序
- delay(200); //大于100uS的延时程序
- lcd_mesg(IC_DAT3); ///显示中文汉字1
- //定时器2初始化
- while(1)
- {
-
- key();
-
-
- }
-
- return 0;
- }
复制代码
代码不完整,求大神看看,附件里面是上面贴的Word文档:
单片机51hei51hei.zip
(6.42 MB, 下载次数: 47)
|