AOVX环境监测技术单片机中快速生成真随机数方法
随着社会经济水平的不断提升,人们对于物资的要求不仅局限在可以用了。人们希望能够在衣食住行上有质量的提升,包括生活在舒适的环境上,品尝新鲜的食物等。作为相关企业和机构,也在不断提升自身对于办工作业环境的要求,以保证货物的品质与工作人员的舒适度。在此背景下,以物联网技术为基础的环境监测设备逐渐被市场所认可。
环境监测设备简介: 环境监测设备的主要作用是帮助用户实现温湿度监测以及实时位置监测,避免资产在运输过程中质量受到影响,或存储环境不当,影响资产的质量。AOVX环境监测设备的应用场景包括了:冷链生鲜运输、仓库监测、实验室监测、药物运输监测等。在运输过程中用户只需要登录云端后台即可对相关数据进行监测,并且环境监测设备可设置阈值,当温湿度达到阈值时,系统后台会自动报警提醒用户确认资产的状态。对于运输过程中发生的碰撞等情况后台也会在第一时间报警。
对于环境监测设备功能的实现离不开单片机,单片机中经常需要使用快速生成真随机数方法,对于该问题相关用户可以参考以下解决方式:
真随机数通常由硬件方式生成,比如单片机中的RNG硬件,但是这种生成方式比较慢。伪随机数通常是有软件算法生成,但是因为遵循一定规则,所以称为伪随机数,生成速度快。例如C库中的rand()函数。如果给定相同的熵源,生成的随机数则相同。在单片机中可以使用硬件方式生成熵源,再调用伪随机数方法来生成随机数,则可以既保证速度也保证随机数的是真随机数。
希望该内容能够帮助到更多用户。
初学单片机,组合函数有参照,数据手册是样板
通过前面的学习,我们已经初步了解了24cxx器件手册里的部分内容,也初步了解了编写程序函数语句的方法,今天我们看如何把它们组合起来,形成一个个完整的读写模式代码,然后就可以运用到我们的各种程序里面去了。
下面我们举例编写两个函数,一个是字节写模式:
图1.字节写模式函数写法
通过上面的图,我们可以看出,编写函数其实就是“照猫画虎写程序”,似乎有点简单?我们在网上下载别人的代码看的时候,包括很多非常普及的教程,我们会发现很多语句都是没有实质意义的,编程者只是想象那里应该有一条延时,其实真正是否需要并不确定。当然我们自己也避免不了经常写出一些无效的语句,这里只是想说明我们写函数语句的根据是器件手册。在后面调试过程中,还需要根据实际情况做出修改。
下面再对照时序图编写一个随机读模式的函数:
图2. 随机读模式函数写法
上图中Set_WriteCommand和Set_ReadCommand是两个带参数的宏定义,用到了我们前面文章中提到的知识,定义如下:
#definei_BusAddr_U1 0x00
// #definei_BusAddr_U2 0x04 //总线接多个从机(24cxx)
#define Set_WriteCommand(uiAddr) (0xa0 | ((uiAddr & 0x0100) >> 7) | i_BusAddr_U1 << 1) //24C04
#define Set_ReadCommand(uiAddr) (0xa1 | ((uiAddr & 0x0100) >> 7) | i_BusAddr_U1 << 1) //24C04
因为24c04的地址超过了一个字节(0xff),所以int型的地址变量uiAddr中的高位存储了24c04的高位地址,通过公式转换把它赋值到控制字节的bit1位,也就是A0的位(1, 0, 1, 0, A2, A1, A0, Ack)。
i_BusAddr_U1是硬件地址(A2,A1,A0)。(24c04的A0硬件管脚无效,程序中代表高位地址。)
另外,在不使用多个从机的情况下, i_BusAddr_U1就用不到,单硬件管脚连接(VCC或GND)和程序控制字节里的bit位(1/0)要一致。
下面我们看一下几种读写模式的对比:
图3. 几种读写模式的对照
从上图中我们可以看出,只要有图表,然后有了翻译词典软件,即使不会英语,也能准确的使用英文器件手册。反过来,在我们查看翻译的过程中,不知不觉的熟悉了很多英文单词,以后会越来越熟悉那些曾经陌生的单词。这就是我们前面一篇文章中聊的学习单片机和英语的关系。
今天就聊到这里,下次我会把前面的函数放在一起,给大家贴出一个完整的测试程序,并通过实际电路测试。
感谢阅读以上小文,如果您喜欢,可以关注头条号/春天说,欢迎在评论区发表留言,如果您觉得有用,也欢迎分享给更多朋友。。。
相关问答
51 单片机 用C语言产生一个100以内的 随机 数,怎么生成?C语言本身并不能产生随机数。介绍一个比较简单的随机数获取方法:启动单片机的定时器,让它自己跑不要发生溢出中断,用户操作时直接读计数器数值,那基本上就是...
单片机 中断 函数 和 主函数 他们是按怎么的顺序运行的?_作业帮[最佳回答]举个例:楼主你每天要写作业,写作业的时候可能有电话来,也可能没电话来,电话来了你可以接也可以不接,接完电话你肯定要做点什么(至少要记在脑子里吧)...
如何提高 单片机 的算法?多做练习,如果你现在用的C语言开发单片机,想提高自己的算法能力,那建议你多看看C语言的常用算法,然后用单片机板子上的LCD,LED等来验证自己的算法程序。举...多...
单片机 是用什么编程的?1.什么事单片机编程:就是硬件是单片机,基于单片机进行的程序开发,在有周围外设支持的情况下,用软件来控制的部分就是能过单片机编程来实现。单片机能识别的...
基于51 单片机 的游戏程序设计1.基本功能实现如下游戏规则:(1)...[最佳回答]你的功能都可帮实现的
555定时器是 单片机 吗?555定时器不是单片机,它是一种基于模拟电路技术的集成电路,由国际整流器公司(NationalSemiconductor)于1971年设计推出。555定时器主要应用于脉冲、频率和...
单片机 名词解释?单片机是指一种集成电路芯片,具有微型计算机的全套系统,可以独立完成各种控制任务的微型控制系统。单片机中包括中央处理器、闪存、随机存储器、计数器、定时...
单片机 中JNBTF0?1.这是51单片机的一条汇编语言指令,其中J代表"跳转JUMP",N代表"非NO",B代表"位BIT";2.如果TF0为0,那就跳转到本句...
单片机 的三大组成?单片机是指一个集成在一块芯片上的完整计算机系统。具体来说就是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器R...
单片机 是什么专业学习的?单片机是电气工程专业的,单片机是一种集成电路芯片是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM等集成到一...