绘本馆网站建设wordpress 扫描工具

pingmian/2026/1/21 19:32:08/文章来源:
绘本馆网站建设,wordpress 扫描工具,公司概况,具备网站维护与建设能力一、系统方案 本设计采用STC89C5单片机作为主控制器#xff0c;从机采用DHT11传感器采集温湿度、按键设置报警阀值#xff0c;液晶1602显示#xff0c;蜂鸣器报警#xff0c;无线NRF2401模块。 二、硬件设计 原理图如下#xff1a; 三、单片机软件设计 1、首先是系统…一、系统方案 本设计采用STC89C5单片机作为主控制器从机采用DHT11传感器采集温湿度、按键设置报警阀值液晶1602显示蜂鸣器报警无线NRF2401模块。 二、硬件设计 原理图如下 三、单片机软件设计 1、首先是系统初始化 init_io(); // 初始化IO RX_Mode(); // 设置为接收模式 LCD_Initial(); //液晶初始化 2、液晶显示程序 //1602程序 //内部等待函数************************************************************* unsigned char LCD_Wait(void) { RS0; RW1; nop(); E1; nop(); E0; return DBPort; } //向LCD写入命令或数据******************************************************** #define LCD_COMMAND 0 // Command #define LCD_DATA 1 // Data #define LCD_CLEAR_SCREEN 0x01 // 清屏 #define LCD_HOMING 0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) { E0; RSstyle; RW0; nop(); DBPortinput; nop();//注意顺序 E1; nop();//注意顺序 E0; nop(); LCD_Wait(); } //设置显示模式************************************************************ #define LCD_SHOW 0x04 //显示开 #define LCD_HIDE 0x00 //显示关 #define LCD_CURSOR 0x02 //显示光标 #define LCD_NO_CURSOR 0x00 //无光标 #define LCD_FLASH 0x01 //光标闪动 #define LCD_NO_FLASH 0x00 //光标不闪动 void LCD_SetDisplay(unsigned char DisplayMode) { LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } //设置输入模式************************************************************ #define LCD_AC_UP 0x02 #define LCD_AC_DOWN 0x00 // default #define LCD_MOVE 0x01 // 画面可平移 #define LCD_NO_MOVE 0x00 //default void LCD_SetInput(unsigned char InputMode) { LCD_Write(LCD_COMMAND, 0x04|InputMode); } //初始化LCD************************************************************ void LCD_Initial() { E0; LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动 } //液晶字符输入的位置************************ void GotoXY(unsigned char x, unsigned char y) { if(y0) LCD_Write(LCD_COMMAND,0x80|x); if(y1) LCD_Write(LCD_COMMAND,0x80|(x-0x40)); } //将字符输出到液晶显示 void Print(unsigned char *str) { while(*str!‘\0’) { LCD_Write(LCD_DATA,*str); str; } } 3、按键检测程序 void key() { if (k10) //调整按键检测 { delay(10); if (k10) { presskeynum; if(presskeynum5) presskeynum0; while(k10); LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 } } if(presskeynum1)//温度上限设置 { if(k20)// 加 { delay(10); temp_high; if (temp_high99) temp_high0; if (temp_high0) temp_high99; while(k20); //加上此句必须松按键才处理 } if(k30)//减 { delay(10); temp_high–; if (temp_high99) temp_high0; if (temp_high0) temp_high99; while(k30); //加上此句必须松按键才处理 } } if(presskeynum2)//温度下限设置 { if(k20)// 加 { delay(10); temp_low; if (temp_low99) temp_low0; if (temp_low0) temp_low99; while(k20); } if(k30) { delay(10); temp_low–; if (temp_low99) temp_low0; if (temp_low0) temp_low99; while(k30); } } if(presskeynum3)//湿度上限设置 { if(k20)// 加 { delay(10); humi_high; if (humi_high99) humi_high0; if (humi_high0) humi_high99; while(k20); } if(k30) { delay(10); humi_high–; if (humi_high99) humi_high0; if (humi_high0) humi_high99; while(k30); } } if(presskeynum4)//湿度下限设置 { if(k20)//加 { delay(10); humi_low; if (humi_low99) humi_low0; if (humi_low0) humi_low99; while(k20); } if(k30)// 减 { delay(10); humi_low–; if (humi_low99) humi_low0; if (humi_low0) humi_low99; while(k30); } } if(k40)// 退出键 { delay(10); if(k40) { while(k40); presskeynum0; LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏}} } 4、核心算法程序 /**************************************************/ /************************************************** *函数名 SPI_RW *函数功能 读写一个字节 *输入 无 *输出 无 // uchar SPI_RW(uchar byte) { uchar i; for(i0; i8; i) // 循环8次 { MOSI (byte 0x80); // byte最高位输出到MOSI byte 1; // 低一位移位到最高位 SCK 1; // 拉高SCK,nRF24L01从MOSI读取1位数据,同时从MISO输出1位数据 byte | MISO; // 读MISO到byte最低位 SCK 0; // SCK置低 } return(byte); // 返回读取一个字节 } // /************************************************** *函数名 SPI_RW_Reg *函数功能 写数据到reg *输入 无 *输出 无 // uchar SPI_RW_Reg(uchar reg, uchar value) { uchar status; CSN 0; // CSN置低开始传输数据 status SPI_RW(reg); // 选择寄存器同时返回状态字 SPI_RW(value); // 写数据到寄存器 CSN 1; // CSN拉高结束数据传输 return(status); // 返回状态寄存器 } // /************************************************** *函数名 SPI_Read *函数功能 从reg寄存器读字节 *输入 无 *输出 无 /**************************************************/ uchar SPI_Read(uchar reg) { uchar reg_val;CSN 0; // CSN置低,开始传输数据SPI_RW(reg); // 选择寄存器reg_val SPI_RW(0); // 然后从该寄存器读数据CSN 1; // CSN拉高,结束数据传输return(reg_val); // 返回寄存器数据} /**************************************************/ /************************************************** *函数名 SPI_Read_Buf *函数功能 从reg寄存器读数据 *输入 无 *输出 无 // uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN 0; // CSN置低开始传输数据 status SPI_RW(reg); // 选择寄存器同时返回状态字 for(i0; ibytes; i) pBuf[i] SPI_RW(0); // 逐个字节从nRF24L01读出 CSN 1; // CSN拉高结束数据传输 return(status); // 返回状态寄存器 } // /************************************************** *函数名 SPI_Write_Buf *函数功能 把缓存的数据写入NRF *输入 无 *输出 无 // uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN 0; // CSN置低开始传输数据 status SPI_RW(reg); // 选择寄存器同时返回状态字 for(i0; ibytes; i) SPI_RW(pBuf[i]); // 逐个字节写入nRF24L01 CSN 1; // CSN拉高,结束数据传输 return(status); // 返回状态寄存器 } // /************************************************** *函数名 RX_Mode *函数功能 将nrf设置为接收模式 *输入 无 *输出 无 // void RX_Mode(void) { CE 0; SPI_Write_Buf(WRITE_REG RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 接收设备接收通道0使用和发送设备相同的发送地址 SPI_RW_Reg(WRITE_REG EN_AA, 0x01); // 使能接收通道0自动应答 SPI_RW_Reg(WRITE_REG EN_RXADDR, 0x01); // 使能接收通道0 SPI_RW_Reg(WRITE_REG RF_CH, 40); // 选择射频通道0x40 SPI_RW_Reg(WRITE_REG RX_PW_P0, TX_PLOAD_WIDTH); // 接收通道0选择和发送通道相同有效数据宽度 SPI_RW_Reg(WRITE_REG RF_SETUP, 0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益 SPI_RW_Reg(WRITE_REG CONFIG, 0x0f); // CRC使能16位CRC校验上电接收模式 delay_ms(150); CE 1; // 拉高CE启动接收设备 } // /************************************************** *函数名 TX_Mode *函数功能 将nrf设置为发送模式 *输入 无 *输出 无 // void TX_Mode(uchar * BUF) { CE 0; SPI_Write_Buf(WRITE_REG TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写入发送地址 SPI_Write_Buf(WRITE_REG RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 应答接收设备接收通道0地址和发送地址相同 SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH); // 写数据包到TX FIFO SPI_RW_Reg(WRITE_REG EN_AA, 0x01); // 使能接收通道0自动应答 SPI_RW_Reg(WRITE_REG EN_RXADDR, 0x01); // 使能接收通道0 SPI_RW_Reg(WRITE_REG SETUP_RETR, 0x0a); // 自动重发延时等待250us86us自动重发 SPI_RW_Reg(WRITE_REG RF_CH, 40); // 选择射频通道0x40 SPI_RW_Reg(WRITE_REG RF_SETUP, 0x07); // 数据传输率1Mbps发射功率0dBm低噪声放大器增益 SPI_RW_Reg(WRITE_REG CONFIG, 0x0e); // CRC使能16位CRC校验上电 delay_ms(150); CE 1; } // /************************************************** *函数名 Check_ACK *函数功能 检查接收设备有无数据包设定没有应答信号重发 *输入 无 *输出 无 /**************************************************/ uchar Check_ACK(bit clear) { while(IRQ); sta SPI_RW(NOP); // 返回状态寄存器 if(TX_DS) { //blink(3); } //blink(5); if(MAX_RT) if(clear) // 是否清除TX FIFO没有清除在复位MAX_RT中断标志后重发 SPI_RW(FLUSH_TX); SPI_RW_Reg(WRITE_REG STATUS, sta); // 清除TX_DS或MAX_RT中断标志 IRQ 1; if(TX_DS) return(0x00); else return(0xff); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

校园网站开发需求文字seo 新旧网站 两个域名

阿里妹导读:一年多前,Java 界最近发生了一件大事,阿里开源 Spring Cloud Alibaba,并推出首个预览版。Spring Cloud 本身是一套微服务规范,并不是一个拿来即可用的框架,而 Spring Cloud Alibaba 的开源为开发…

微网站php源码公司网站的实例

这个话题我曾经写过文章,也在一些场合做过专题分享。今天换一种方式,你可以直接点击下面这个小程序,用十分钟左右的时间,听我再讲一讲吧。你需要在微信里面才能看到下面的小程序链接,并且可以直接点击你可以打开该文档…

织梦高清电影网站模板系统搭建流程

电脑犹如汽车,在使用过程中需要正确的方法,否则就会有win10系统potplayer经常弹出自动更新提示的情况出现,要处理win10系统potplayer经常弹出自动更新提示的问题,对于电脑专业人士来说并非难事;新手小白翻遍了整个网络…

杭州网站设计公司有哪些做公司 网站建设

vue页面使用html2canvas截图 vue使用vue-esign画布签名

建设厅网站沙场限期通知书建设部网站统计

Redis哨兵机制可以保证Redis服务的高可用性。它通过启动一个或多个哨兵进程,监控Redis主服务器是否宕机,如果宕机,哨兵进程会自动将一个从服务器(Slave)升级为主服务器(Master),并通…

奉新网站制作wordpress home index

摘要: 搭配ECS云服务器使用, ESSD可提供单盘高达100万IOPS的随机读写能力和低至0.1毫秒的单路时延,相比SSD云盘分别提升了50倍性能上限和降低80%读写时延,单台云服务器整体存储性能提升500%. 点此查看原文:http://cli…

虚拟货币网站建设沈阳工程信息招标网

我们很高兴地告诉大家,ONLYOFFICE 桌面编辑器现已上架麒麟软件商店。请阅读下文了解详情。 关于麒麟 麒麟是一款国产操作系统,主要是为了满足中国市场的需求和偏好而设计的。 它能够与各种硬件平台和软件应用程序的广泛兼容,因而受到认可。…

网站被做跳转怎么办购买域名之后怎么做网站

java运行中修改代码不能改变立刻应用到本次运行中转载于:https://www.cnblogs.com/Pusteblume/p/10211110.html

单职业传奇网站做图表的网站知乎

自从今年3月末AMD锐龙4000系列处理器正式登陆移动平台以来,目前已有多款机型上市,并涌现出了不少高热度、高性价比的机型。我们也体验测试了其中数款机型,总体上给用户的印象是是价格香、性能强。而今天牛叔要聊的这款机型,也是搭…

html5移动网站开发实例wordpress多个标签

JAVA入门级教学之(多态) 怎么理解多态:你本身就该喊你爹叫爹,你让你爹叫你爹就是强制认做爹 多态的使用: A a new D(); D类继承A类,父类型引用指向子类型对象 * 关于java语言汇总的多态语法机制&#x…

毕业设计 旅游网站建设二 网站建设的重要性

你是否曾读过一本让你欲罢不能的计算机书籍?它可能为你打开了新的技术世界大门,或者是帮助你解决了棘手的编程难题。 你可以从以下几个维度进行创作,也可以自由发挥。 此为内容创作模板,在发布之前请将不必要的内容删除 方向一…

五华建设银行网站个体户可以做网站么

这里写自定义目录标题 PL端 纯Verilog语言创建IP核实现点亮LED灯工使用设备 ZYNQ 7010,选择设备型号XC7Z010CLG400-1根据以下流程完成本次创建时钟频率50MHZ,周期T20ns,因此计数50_000_000次,1sLED灯闪烁一次 PL端 纯Verilog语言创…

鹰潭公司做网站啪啪男女禁做视频网站

文章目录 前言一、访客预约功能二、安全性保障三、智慧小区生活 前言 二维码地址门牌管理系统的出现不仅提升了小区的安全性,还为访客提供了更便捷的预约服务,让亲朋好友轻松进入小区。 一、访客预约功能 该系统提供了访客预约功能,业主可为…

深圳做公司英文网站多少钱影视传媒公司网站模板

力扣labuladong一刷day59天动态规划 文章目录 力扣labuladong一刷day59天动态规划一、509. 斐波那契数二、322. 零钱兑换 一、509. 斐波那契数 题目链接:https://leetcode.cn/problems/fibonacci-number/description/ 思路:这是非常典型的一道题&#x…

广东网站建设加工学校网站怎么做推广方案

进程间通信就是在不同进程之间传播或交换信息,进程间控制信息的交换称为低级通信,进程间大批量数据的交换称为高级通信。 进程通信分为3种: 1.共享存储器系统:为了传送大量数据,在存储器中划出一块共享存储…

大连门户网站建设网站中数据库教程

组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 Text 、 Button 等,也可以是自定义组件,本节笔者简单介绍一…

洛阳微信网站建设购买一个小程序多少钱

理解AQS必须要理解同步队列和等待队列之间的同步机制,简单来说流程是: 获取锁失败的线程进入同步队列,成功的占用锁,占锁线程调用await方法进入条件等待队列,其他占锁线程调用signal方法,条件等待队列线程进…

网站首页设计尺寸什么软件制作视频最好

五六年级信息技术教学计划一、大纲对本册教材的要求作为小学阶段的信息技术课程,应以学生对计算机的学习心理、学习行为和学习方法为背景,把计算机基础知识和计算机最新应用融于一体,使之既体现信息技术学科的教学理论,又吸收现代…

网站制作方法动态效果网站建设技术

区块链的定义 区块链的定义,应当是:区块链是一种按照时间顺序将数据进行分布式存储的块链式数据结构,它利用共识机制进行数据验证,利用密码学进行数据保护和用户安全访问,利用智能合约来操作数据,从而成为…

广宗企业做网站网站推广费用入什么科目

高级命令 keys * 返回满足条件的所有key,可以模糊匹配exists 是否存在指定的keypersist 取消过期时间select 选择数据库 (0-15,总共16个数据库)move key index 将当前数据库的 key 移动到给定的数据库 db 当中randomkey 随机返回…