tag 标签: 程序

相关帖子
相关博文
  • 热度 8
    2020-2-13 15:24
    5280 次阅读|
    1 个评论
    工作之后用的最多的51单片机AT89C2051 (2)
    最近的工作主要内容是写文件,准确的说是修改文件,真的很。。。 单位文件挺乱的,关键是制度流程乱,没啥可操作性,也没培训。。。全靠个人水平编。。。 再来一个没看出有啥水平的老巫婆河东狮吼。。。 我就奇怪了,领导们就没一个实实在在能解决问题吗?还是都坏掉了? ---------------------------------------------------------------------------------------------- 说正题,AT89C2051的比较器,官网手册里,特性 On-chip Analog Comparator,片上模拟比较器 然后有框图 输入连的是P1.0、P1.1,输出连的是P3.6 然后有具体描述 P1.0、P1.1要外部上拉电阻,要写1 英文自己看哈。。。不要懒 程序挺简单的 P3.7是一个工作指示灯 P1.7也是一个指示灯,用来指示比较结果 ~~~~~~~~~~~~~~~ 没有试过比较器的精度,个人觉得,做个简单的电量指示还是可以的 AT89C2051手册的页数挺少的,也许可以参考C51的看看 ~~~~~~~~~~~~~~~ DIP-20的AT89C2051,是用下载器离线下载程序的的,用着很麻烦,而且连底座一起高度太高了 虽然,今天再看手册,发现还有个SOIC的矮很多,但是,个人觉得下载程序用的引脚太多,留插座也很占地方,还得做转接线 所以,准备换掉 看上了AT89LP4052,但是一年了一直没有时间买来试,还得先打听好买不,会不会断货等等,好多麻烦事。。。 朋友们,有其他型号推荐吗?
  • 热度 24
    2019-10-3 10:40
    1673 次阅读|
    0 个评论
    1-谭浩强 C语言程序设计 2-C语言开发入门及项目实战 3-新概念51单片机C语言教程 4-单片机的C语言应用程序设计 5-手把手教你学51单片机 6-C专家编程 7-编程之美 8-C Primer Plus 9-C和指针 10-C陷阱与缺陷 11-C语言核心技术 12-C语言编程之道 13-C语言程序设计现代方法 14-C语言嵌入式系统编程修炼之道 15-C语言深度解剖 16-C语言编程技巧 17-天狼星51单片机C语言 下载链接:https://pan.baidu.com/s/15Xjvy5M4-zJ5HUTuXmdmPA 提取码:v2m8 如果失效,评论区留言 ​
  • 热度 6
    2016-4-11 14:30
    1375 次阅读|
    5 个评论
    一、前言 很多单片机初学者与我交流时总说的一句话是我现在是单片机初学者,我怎样才能更快的学好 单片机,我该从哪方便入手。对于这个问题,现在就我自己如何学单片机,如何入门,如何熟练谈 谈想法。 先说单片机,现在用的比较多的以  51  为内核的  8  位单片机(考虑到成本及引脚资源在实际开 发中用的  51  单片机型号不一),它的学习资料非常多,且学习成本非 常低,可能有些初学者会说 企业里用的不是  51  单片机,更多的是松翰、义隆什么,但是我想说的是那些单片机的辅助开发工 具你有吗。 51  单片机对于智能电子技 术的入门学习是非常有优势,成本低,开发简单,一线下载 程序, ARM 太神秘, PLC 太高贵,想来想去还是  51 ,曾经有过 AVR 和 PIC ,但是现在  51  也不 赖。 那怎样才能更快更好的学好单片机呢? 单片机作为集电子技术与计算机编程技术为一体是一项非常重视动手实践的科目,如果你是单 片机高手,那么说明你也是计算机编程和电子技术高手。 二、学习单片机一定要看书 不能总是看书,但是学习它首先必须得看书,那这不很矛盾?因为从书中你需要了解单片机各 个功能寄存器(比如引脚控制寄存器、定时、中断、串口相关寄存 器),控制单片机的核心是用 程序去控制单片机的各个功能寄存器,给寄存器赋值二进制数据  0  或者  1 ,对于像中断、定时器、 串口、 AD 转换等内部资源寄存器, 单片机也可以通过二进制数据  0  和  1  进行设置和使用。比如单 片机引脚寄存器 P1 ,语句 P1=0xfe ;( MOV P1 , #0FEH )指控制单片机 P1  口的第 一个引脚输出 低电平, 其他引脚输出高电平, 外设电路根据高低电平工作。 比如中断允许寄存器 IE , 语句 IE=0x81;  ( MOV IE , #81H ) 则说明 控制中断打开总开关和外部中断  0  的子开关。当然了,单片机的寄存 器还可以接受位控制,这样编程更方便。 至于看书,只需大概了解单片机各管脚、各个功能寄存器是干什么的能实现什么功能就够了? 这个非常重要,这也许是看单片机参考书最主要目的之一。 第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。通过接下来的实 验就可以非常感观的认识,在这个过程一定要花时间,学习程序不能硬背,但是学习寄存器一定要 下功夫,理解他的功能所在,适当的时候当单词背下来。 推荐一本书,就这一本就足够了,书名是《列说  8051 》,有汇编语言和 C 语言两种版本,现在 已经是第三版本了。非常强悍的一本书,没有广告,没有局限,不 像培训手册,更不像教科书, 完全是一本非常好的参考书。我用一个五一假期的时间看完了这本书,真的当时看完后,觉得自己     已经是单片机高手了,很多曾经抽象 的知识不在抽象。书中图文并茂,内容安排紧张有序,并非 市面上很多说教的技术文档式的书,什么学完概念,学指令,学完指令学接口,学完接口才知道, 原来学 习单片机像在学天书,因为前面的章节已经使你头昏脑胀了,自己看还好,一讲更有问题。 那如何看书呢?第一步先根据书本的安排循序渐进的看完前两章,在你脑子开始发热,觉得自 己已经是工程师的时候,接下来一定是实践,一定是实践啊,这是非常 非常关键的,当然了实践 并非一定是左手电烙铁右手万能板的那种,也可以是仿真软件  Proteus ,或者是自己自己电路原理 路的简单单片机实验板(千万不要 用那种有贴片器件很多,看半天看不清电路连接的那种)。三 国期间,诸葛亮挥泪斩马谡的重典告诉我们纸上谈兵害人害己,学习单片机也一样,很多相关专业 的研 究生甚至博士生直到毕业都不清楚单片机的  IO  口的分布,不知分布谈何开发。 只要过了第一关,后面的路就好走,万事起步难啊。 第二:你身边如果有单片机入门者,动手能力比较强,请他帮忙,搭个简单的单片机最小电路, 哪怕是控制一个 LED 闪烁的电路。只要在你眼皮底下经过电路设 计、程序编写、程序下载都通过 了,那你就要感谢他一辈子,因为你已经在入门了。对于他们来说,做个单片机的最小系统板是轻 而易举,而对于初学者可就难多, 中间的一层窗户纸破了什么都简单了。因为在这个过程中,你 学会了如何下载程序到单片机内部,如何识别单片机,如何设计单片机最小电路。为什么有很多电 子和 计算机专业的学生不好找工作,因为他们中很多同学在将自己简历设计的眉飞色舞的时候, 他还没有见过单片机单片机。 因为只有对硬件了解,才能熟练运用。只有知道程序是如何被下载的,才会清楚为什么要写单 片机控制程序,这个动力来自于哪里,来至于心里有底。 单片机编程就是与单片机对话,如果不知道对方谁,有没有再听,你还会有说话的冲动吗。当 然了如果没有这样的人,还是那句话,在网上多找几个最小电路电路原 理图,在面包板上焊接就 可以了。当然了这个也不会的,那建议你一定要买一块功能简单的实验板,以后单片机的学习实验 及项目测试验都用的上。 四、如何迈入单片机开发世界 有了单片机实验板你就要多练习,最好是自己有台电脑,少下载几部电影,少网络游戏,把实 验板和电脑连好,安装上必备的软件 ( Keil Proteus STCisp ),下载参考程序,并修改参考程序, 从最简单的交通灯实验开始,等你发现你能控制交通灯,并了解交通的软硬设计 的时其实你已经 入门了,你会发现单片机是多么迷人的东西啊,这不是在学习知识,而是在提升自身的价值。 用途那么广的交通设计都不在话下,你还会为自己身无绝技而烦扰吗?还会觉得自己什么都不 会吗?计算机编程、电子技术的专业知识都用上了啊。 当你编写的程序按你的意愿实现时,比做什么事都开心,那种学习的收获感和成就感还有充实 感是非常难得的。然后让数码管亮起来显示你所需要的数字,都到这一步,你已经不能自拔了,你 已经开始考虑你这辈子要走哪一行了。     入门入门,什么才叫入门,要对得起自己啊。 我的要求很简单,单片机是否入门只有三点:  1 、独立掌握  Keil+Proteus 两大软件的使用方法并设计出仿真版的交通灯。  2 、独立在面包板上搭接单片机最小电路,并通过下载器将控制一个  LED 闪烁的  HEX  文件下 载进去看到效果。  3 、清楚自己单片机学的动力所在,并为自己的学习做一个规划。 但是在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,这其中你会找你之前学过 的编程的书,还有数电模电的书,你会发现原来之前学的知识还是有用 的。遇到不懂再去找以前 学过的书本查阅,这才是 “温故而知新,可以为师矣”的大道理啊。知识必须用于现实生活中,解决 实际问题,用单片机设计个简易的家 电定时器、红外遥控器什么,这样才能发挥它的作用,好好 想想,上了这么多年大学,探索了那么久,犹豫徘徊,天天上课,在课堂上学到了什么?、 是不是为了期末 60  分的考试而忙碌,侥幸靠了  90  分,很高兴啊,在别人面前吹自己专业知识 如何如何学习的好,殊不知,大学考试不像高中考试啊,拿到奖学金 又怎么样。下学期开学回来 一想,所学的知识已经忘得一干二净。学到什么了?为什么要推荐学习单片机,因为单片机是工科 生学的,集合计算机编程电子技术及多 门控制语言为一体的学科,与其说是在学习单片机,不如 说是在学习一个大学科。 五、学习单片机是汇编编程还是  C  语言编程 关于用汇编和  C  语言编程的问题。 这个问题困恼很多人, 但是我觉得学习汇编语言和  C  语言就像一个人进入社会要学习方言和普 通话一样。都要掌握,孰重孰轻自己把握。可能主要是学校教学和部分 教材引导,大一开了  C  语 言编程,没等学生知道到底  C  语言有什么实际用途,马上其他的语言一下子过来了。即使开设了专 门单片机课程,但是课程的内容与技术文 档很相识,程序虽然很多,但完整的不多,所以学完了 也不知道,到底为什么要学习编程。 很多同学大一就开设了  C  语言的课,我也上过,但是那时就是天天几乘几,几加几啊,求个阶 乘啊,  C  语言去解决小学数学问题, 用 每周两次上机, 对着书本不停的敲打, 完全在练习打字速度。 下课了也不知道自己到底掌握了什么,掌握了这个有什么用途。学完了有什么用? 如果在面试的时候,老板问,你学过编程吗,你脑子里马上是什么“ C  语言, VC  什么  VB 。很 多,什么  C  语言是基础是面向工程的,什么  VC  是高级面向对象 的”,但是老板又问,你能将你所 学习的  C  语言应用到实际开发中,比如设计一个定时报警器的  C  语言。这下傻了,老师没教过啊。 单片机编程用 C 语言或汇编语言都可以,但是我建议用 C 语言比较好,模块化管理编程方便, 移植性强,适合编写大程序。如果原来有 C 语言的基础那学起来会更 好,如果没有,也可以边学单 片机边学 C 语言。虽然很多人是从汇编语言开始接触单片机的,但是写小程序汇编语言还是简单的, 如果要实现一些算法,那汇编语言 就不简单了。虽说 C 语言编译以后代码量明显比汇编长,而且执 行效率也没有汇编语言高,但是在以前单片机开发中芯片工艺的限制,及单片机主频的限制,很多 单 片机内部存储器小的可伶,主频也小得可伶。但是现在不一样了,芯片内部的存储器根不不在 乎这点差别。主频也越来越高。 那汇编语言是不是不学了呢?不是的,一定要学习,有两方面首先入门单片机的时候要用汇编 语言,它的语法简单。第二如果你要做单片机的程序的高级设计师,那 汇编语言是非掌握不可的, 很多像高级单片机  ARM  都是汇编语言作为引导代码的,还有就是很多新出品的单片机起先也是先 有汇编语言编译器之后才有  C  语言编译 器。所以,我觉得对于单片机学习汇编语言入门, C  语言 精通,汇编语言再精通。 有句话很有道理“单片机  C  语言高手绝对是汇编语言高手,但是汇编语言高手不一定是  C  语言 高手” 最后,对于单片机的学习,入门为先,入门了以后就要去关注市场,关注企业,企业需要什么 样的人才,我想有了基础以后在面试之前了解下企业所需要的单片机类型,很快就上手了,毕竟学 习是相同的。
  • 热度 16
    2016-2-16 16:19
    1059 次阅读|
    0 个评论
    从7月10号开始到8月21号共计30天的培训结束了,感觉收获颇丰!   这30天分为三个阶段:   第一阶段 :师兄们主要给我们熟悉各种独立模块的使用,还有基本的单片机功能的使用,如: 阮联波师兄的 :结构体的理解与使用;函数指针的理解与使用;矩阵键盘的反转扫描法。 农华艺师兄的 :msOS的基本结构;串口的介绍与使用;矩阵键盘的模块化;1602液晶的模块化。 吴世景师兄的 :根据天祥单片机看懂串口程序; 王思师兄的 :根据文档与时序图自己编写串口程序;如何看懂DS18B20的文档与时序图;DS18B20的模块化等。每一次的模块,每一次课都要求把独立程序挂上系统。这样,加深了我们对系统的理解,让我们能愈发熟练的使用MS3微系统,很有收获! 第二阶段 :第二阶段主要内容是多模块的使用及与系统的链接,如: 阮联波师兄的 :MS3界面的切换理解(先显示界面“当前界面”,当有按键消息时跳转到指定界面); 吴世景师兄的 :5V电压转3.3V与NRF905无线模块的发送与接收。 农华艺师兄的 :LCD1602、超声波、DHT11温湿度传感器;LCD1602的界面切换;超声波、DHT11温湿度传感器通过LCD1602切换显示;超声波、DHT11温湿度传感器、LCD1602挂上系统通过按键切换显示。 王思师兄的 :DS18B20挂上系统;STC12C5A60S2单片机的使用;MS3软件定时器的理解与运用;DS18B20+软件定时器使用,EEPROM(掉电保存数据)。这个阶段让我学会了如何看器件、芯片数据手册,如何看它们的时序图,如何在那看懂二者的基础上学会如何编写程序。特别在农华艺师兄的界面切换超声波与温湿度传感器的学习中,对MS3系统又有了更深的理解。我对系统的理解与熟练程度在第二阶段的培训过程中又上了一个新台阶,加油! 第三阶段 :这个阶段我们要自己焊接阮联波师兄画的15单片机开发板,在焊接的过程中我们不够认真严谨,焊接技术不强,因此开发板上的一些元器件焊得不是很美观,今后一定要加强焊工! 这个阶段主要围绕着这新开发板学习的,以便熟练这块新板的使用。 阮联波师兄 :给我们讲解这块新板的功能;使用方法,使用注意事项;还有交通灯的使用。真心觉得师兄挺厉害的,独自一人完成这板的设计,所以作为师弟,应向他学习,好好努力,在学习这板的过程中,我们都很认真! 接着王思师兄 :让我们自己看着文档和时序图写出红外发送程序;紧接着就挂上系统;最后用红外发送DS18B20收集到的温度值发送到接收板并用串口显示。 紧接着农华艺师兄 :TFT屏幕的显示原理;用TFT屏幕显示点、线、面、汉字、图片;TFT屏幕挂上系统完成界面切换。 最后是吴世景师兄 :SDcard的复位、初始化、写扇区、读扇区,理解SD卡的SPI模式;用SPI模式测试micoSD卡,SD卡在初始化中判断卡种类;一次for循环写入多个数据循环4次写满。第三次培训除了SD卡测试程序难理解外,使用TFT屏的计算量较大,程序不难理解,其他的都好理解程序和使用模块。总的来说,第三阶段的培训是最难的,但是,我有了前面的一些基础,理解起来也不是很困难。   三次培训小结 : 1、培训虽然暂时告一段,但是,学到的东西自己以后要多用才行,比如第一阶段培训的东西到第二阶段培训的时候师兄们要我们再写出来,我写得,但是有好多错误! 2、看着芯片时序图写驱动程序,方便理解时序,看时序图要学会修改延时,达到芯片要求的等待时间。 3、在培训的过程中,不懂的地方我有及时补充,这就体现了培训的一个好处:让我们用学过的东西做出一些项目,达到学以致用,还有对前面学过的一些东西能及时回顾,对学了却不是很理解的知识通过请教师兄,就更明白了。 4、在看程序的过程中,看到不懂的地方自己先想一想,在自己写程序时,出错的时候也自己多想,不要一看到不懂或出错的地方就马上问师兄或者是问同学,有时就一个分号没打,有时可能是弄错变量的类型,要细心要仔细才能写好程序,这样的方法虽然老掉牙了,但是很有用,而且会让自己收获更多!   个人对msOS嵌入式微系统的小理解: 1、      系统在运作的过程中,底层设备只有通过发送消息到大循环中,到达应用层,让这系统的最高层——应用层,判断这个消息应在什么时候处理,如何处理。底层设备只能等待应用层的处理消息发送过来才能处理需要处理的函数。 2、      底层设备不能直接到达应用层来处理函数,我们如果把要处理的函数地址直接放到APP.c的main函数中,这样添进去的底层设备就不算是与系统有联系。如果每一个添进去的底层设备都不经过消息队列到达应用层,就会发生很多冲突,你想处理你的函数,我又想处理我的函数,系统就很容易崩溃了。 3、      总之:系统运作,实现功能的过程中,就应该是底层设备发出处理函数请求消息,通过一个个上级,最终到达应用层,应用层再通过一个个下级推送处理消息,直到处理消息到达这个发送处理函数消息的底层设备要求处理的函数,完成功能的实现。   培训完之后自己应该做的事 : 1、      整理好一些程序模块:如串口调试模块、超声波模块、DHT11温湿度模块、DS18B20温度测量模块、NRF905无线接收与发送模块、EEPROM(数据掉电保存)、红外通信(收、发)等 2、      将模块挂上系统,实现多模块的连用,实现更多的功能。这也可以更加熟练的使用msOS微系统,加深理解,方便灵活运用!   最后,特别感谢老师能给我这个培训的机会,这个暑假可以说是上学以来过的最充实的一个暑假,真的学到了不少东西;更要感谢师兄们, 师兄们都是尽其所能地给我们培训,他们很认真负责,只是这个暑假的时间还是少的,不然我们是可以从师兄那学到更多东西,真心的感谢他们!以后,我给下一届的师弟们培训的时候,也应像师兄们那样尽责,将这种精神传承下去!而更重要的是自己要有较厚的知识贮备!
  • 热度 27
    2014-9-28 13:17
    1249 次阅读|
    0 个评论
      在上次的文章里,我们提到了DSP编程中程序优化最常使用到的选项问题,主要提到的几个选项包括-O1、-O2、-O3、-O4等等。虽然我们是以DSP为例进行说明的,但是对于其它的处理器,例如ARM、CPU、一些高级的单片机如MSP430、PIC等等和一些编译环境,例如Keil、XilinxSDK等,它们使用的一般的优化选项和基本内容也是大同小异的,即同样的优化级别,优化的目的都是基本一致的。   这些都是基本的操作,如果我们的目的仅仅是优化代码性能或者尺寸的话。如果我们想了解优化过程中产生和使用的更多信息的话,对于DSP本身而言,它的一些其它特性对于程序的运行性能也是非常关键的,此时在基本的优化选项基础上,我们又要注意一下高级的优化选项的影响。例如,某些汇编指令在做诸如FFT变化的时候能够成倍的提高效率,所以开启高级优化选项使得编译器有针对性地生成相关的指令就非常重要。下面我们看一下编译器的高级优化选项有哪些。因为要考虑到指令集等因素,这里以C28x系列为例进行分析。   表1编译器的高级优化选项         大家可以关注一下我们集芯城的微信公众号,微信号是:icjxc520 微信二维码:                                 来源:EEChina
相关资源
  • 所需E币: 5
    时间: 2024-6-27 10:40
    大小: 390.14KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机分立器件超声波测距设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-19 10:51
    大小: 146.16KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机SHT11温湿度检测proteus仿真及电路图程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、proteus仿真。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-19 11:06
    大小: 376.69KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机8路抢答器电路图proteus仿真及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-19 11:04
    大小: 631.79KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机16路抢答器电路图及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-20 10:16
    大小: 86.84KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机步进电机正反转调速控制电路图及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-18 10:47
    大小: 354.51KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机DS18B20温度检测上下限报警设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开)、proteus仿真。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-18 10:42
    大小: 208.1KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机ADC0832双路电压0-5v检测电路图及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-18 10:07
    大小: 121.76KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机数码管数字钟电路图及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-17 10:17
    大小: 3.28MB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机0-20V电压表4094驱动数码管显示电路图及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-17 10:00
    大小: 295.64KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机0-10V电压表电路图及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2024-6-17 10:34
    大小: 439.76KB
    上传者: 物联创客
    本资源内容概要:    这是基于51单片机0-20V电压表四位共阴数码管显示电路图及proteus仿真及程序设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、proteus仿真。本资源适合人群:    单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:     可以通过查看电路学习电路设计原理,查看代码学习代码编写原理,通过电路图打样制作并烧录程序后即可复刻出实物功能。本资源使用建议:    建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 0
    时间: 2023-12-18 11:25
    大小: 4.56MB
    上传者: 浩瀚星蓝
    MATLABR2020a完全自学一本通附带程序,配合书使用
  • 所需E币: 3
    时间: 2024-3-16 22:12
    大小: 246.47KB
    上传者: 电子阔少
    STC15F104E单片机之定时器产生延时1秒程序.pdf
  • 所需E币: 3
    时间: 2024-3-16 22:13
    大小: 247.92KB
    上传者: 电子阔少
    STC15F104E单片机之定时器产生延时通7秒断13秒程序.pdf
  • 所需E币: 2
    时间: 2024-3-16 22:06
    大小: 5.11MB
    上传者: 电子阔少
    msp430G2553程序实例.pdf
  • 所需E币: 0
    时间: 2024-3-1 10:24
    大小: 3.2KB
    上传者: 开心就很好了
    深入学习小程序框架底层原理,培养双线程思维——前端高手特训从0到1带你手写一个微信小程序底层框架!无论你是一位新手,还是一位有经验的开发者,能够自研一套小程序底层框架,都是你突破技术瓶颈有效途径。我将通过本篇文章带领大家从架构设计,原理剖析,再到源码的实现,一步步地实战构建一个完整的微信小程序底层框架,让大家深度掌握小程序双线程原理,助力大家具备把握最佳机会的能力和提升获取心仪Offer的成功率,成为一个真正有实力的技术人才!! 一、首先,我们先来认识小程序,那么什么是小程序呢?小程序是一种不需要下载安装即可使用的应用,它基于某个平台(如微信)运行,用户可以通过扫描二维码或搜索关键词来打开小程序。小程序的特点包括体积小、启动速度快、使用便捷,以及能够实现“用完即走”的理念,减少了用户安装应用的数量。小程序的开发通常采用前端技术,如HTML5、CSS3和JavaScript,并通过封装和提供丰富的API接口,实现与微信生态系统的高度整合。小程序可以提供各种服务,如游戏、购物、地图、社交和学习等,同时帮助商家展示产品、推广服务以及实现线上支付等功能。二、设计思路-渲染层小程序使用的是Exparser组件模型,Exparser组件模型与WebComponents中的shadowDOM高度相似,微信为什么使用自定义组件框架,而不使用WebComponents呢?主要还是出于安全考虑,并且方便管控。既然Exparser组件框架与shadowDOM高度相似,那么我们首先来了解一下shadowDOM。shadowDOM:WebComponents的一个重要属性是封装-可以将标记结构、样式和行为隐藏起来,并与页面上的其他代码相隔离,保证不同的部分不会混在一起,可使代码更加干净、整洁。其中,shadowDOM接口是关键所在,它可以将一个隐藏的,独立的DOM附加到一个元素上。三、Exparser组件模型Exparser组件模型参考了shadowDOM并进行了一些修改,像事件系统就是完全复刻的,slot插槽,属性传递等都基本一致。但同时它又具有一些特点:基于shadowDOM模型:模型上与WebComponents的shadowDOM高度相似,但不依赖浏览器的原生支持,也没有其他依赖库;实现时,还针对性地增加了其他API以支持小程序组件编程;可在纯JS环境中运行:这意味着逻辑层也具有一定的组件树组织能力;高效轻量:性能表现好,在组件实例极多的环境下表现尤其优异,同时代码尺寸也较小;四、逻辑层与视图层通信在小程序中,逻辑层只有一个,但是渲染层有多个,渲染层和逻辑层之间是通过微信客户端进行桥接通信的。那具体是怎么实现的呢?其实它使用的就是WeixinJSBridge通信机制。在小程序执行的过程中,微信客户端分别向渲染层和逻辑层注入WeixinJSBridge,WeixinJSBridge主要提供了以下几个方法:invoke:调用nativeAPI;invokeCallbackHandler:Native传递invoke方法回调结果;publish:渲染层用来向逻辑业务层发送消息,也就是说要调用逻辑层的事件方法;subscribe:订阅逻辑层消息;subscribeHandler:视图层和逻辑层消息订阅转发;setCustomPublishHandler:自定义消息转发;五、微信小程序主流框架有哪些?微信小程序是一种特殊的应用程序,它使用微信平台提供的JavaScript框架来构建。目前,微信小程序主要有以下三个主流框架:1、原生框架(VanillaFramework):原生框架是微信小程序的最基础、最原始的框架,它使用原生的JavaScript、WXML和WXSS来开发小程序。2、MiniprogramFramework(小程序框架):小程序框架是由微信团队提供的官方框架,用于简化小程序的开发过程。它提供了更高层次的抽象和封装,使得开发者可以更快速地构建小程序。3、mpvue:mpvue是一个基于Vue.js的小程序开发框架。它允许开发者使用Vue.js的语法和特性来开发小程序,从而降低了学习成本和提高了开发效率。六、小程序的底层实现原理主要涉及以下几个方面:框架架构:小程序框架通常采用前端框架,如微信小程序使用的是基于JavaScript的框架。这些框架提供了一套开发和运行环境,包括对视图层、逻辑层和数据层的管理和处理。渲染机制:小程序通过渲染引擎将开发者编写的代码转化为可视化界面。渲染引擎负责解析和处理小程序的标记语言,如HTML、XML等,并将其转换为浏览器可以显示的界面。数据通信:小程序需要与服务器进行数据通信,包括获取数据、上传数据等。通常使用HTTP协议进行网络请求,通过发送和接收数据来实现与服务器的交互。安全机制:为了保障用户数据的安全和隐私,小程序实现了一系列安全机制。例如,小程序在沙箱环境中运行,限制了对系统资源的访问权限;小程序代码签名和校验机制确保代码的完整性和安全性;同时,小程序还采用了数据加密、身份验证等措施来保护用户数据的传输和存储安全。跨平台适配:小程序需要在不同的操作系统和设备上运行,因此需要进行跨平台适配。框架会处理不同平台的差异,以确保小程序在不同设备上有一致的运行效果和用户体验。总的来说,小程序底层的实现原理是基于前端技术栈和相关技术,通过框架架构、渲染机制、数据通信、安全机制等来实现小程序的功能和特性。
  • 所需E币: 5
    时间: 2024-2-23 08:10
    大小: 8.27MB
    上传者: 丙丁先生
    cw32f030小蓝板 两轮平衡车 程序及资料.rar
  • 所需E币: 0
    时间: 2023-12-18 15:21
    大小: 3.45KB
    前端高手特训从0到1带你手写一个微信小程序底层框架,小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。框架管理了整个小程序的页面路由,可以做到页面间的无缝切换,并给以页面完整的生命周期。开发者需要做的只是将页面的数据、方法、生命周期函数注册到框架中,其他的一切复杂的操作都交由框架处理。wepy支持类似Vue的组件化开发,可以将页面拆分成多个独立的组件,提高代码复用性和开发效率。下面我们通过一个实际的案例来说明组件化开发在wepy中的应用。假设我们有一个小程序项目,其中包含一个商品列表页面和一个商品详情页面。我们可以将商品列表和商品详情抽象成两个组件,并在需要的地方引用它们。首先,我们创建一个名为GoodsList的组件。在src/components目录下创建GoodsList.wpy文件,并编写如下代码:importaxiosfrom'axios'constdefaultConfig={ timeout:5000, baseURL:'/release/'}constaxiosInstance=axios.create(defaultConfig)//添加请求拦截器axiosInstance.interceptors.request.use(config=>{ returnconfig},(err)=>{ //对请求错误做些什么 returnPromise.reject(err)})//请求拦截器,内部根据返回值,重新组装,统一管理。axiosInstance.interceptors.response.use(res=>{ console.log('接口详情:',res) returnres})exportdefault{ //封装get httpGet(url:any,params={}){  returnaxiosInstance.get(url,{params}).then(res=>res.data).catch() }, //封装post httpPost(url:any,params={}){  returnaxiosInstance.get(url,{params}).then(res=>res.data).catch() }}封装一个openStore(),使用indexedDB.open()方法返回一个IDBRequest对象,接着将这个对象上的三个事件分别放置进入:onsuccess、onerror、onupgradeneeded。onsuccess表示打开数据库成功的事件。onerror表示打开数据库失败的事件。onupgradeneeded是数据库升级事件,如果版本号更新,并且大于之前的版本号则进行数据库升级,该事件回调里面,会创建我们所需要的对象仓库,类似于关系型数据库中的表的概念。exportdefaultclassDB{ privatedbName:string//数据库名称 constructor(dbName:string){  this.dbName=dbName } //打开数据库 publicopenStore(storeName:string,keyPath:string,indexs?:Array<string>){  constrequest=window.indexedDB.open(this.dbName,2)  request.onsuccess=(event)=>{   console.log('数据库打开成功')   console.log(event)  }  request.onerror=(event)=>{   console.log('数据库打开失败')   console.log(event)  }  request.onupgradeneeded=(event)=>{   console.log('数据库升级成功')   const{result}:any=event.target   conststore=result.createObjectStore(storeName,{autoIncrement:true,keyPath})   if(indexs&&indexs.length>0){    indexs.map((v:string)=>{     store.createIndex(v,v,{unique:true})    })   }   store.transaction.oncomplete=(event:any)=>{    console.log('创建对象仓库成功')   }   console.log(event)  } }}在子组件headerCommon.vue中切换语言时,调用saveLanguageApi接口,保存当前语言环境到indexedDB中,并将当前语言包zhCn或者en作为参数传递给父组件App.vue,代码片段如下://commonHeader.vuefunctionhandleSelect(e:any){ if(e==='zh'){  emit('changeLang',zhCn)  saveLanguage('zh') }elseif(e==='en'){  emit('changeLang',en)  saveLanguage('en') } console.log(e)}//Mock接口:保存当前语言环境functionsaveLanguage(language:any){ saveLanguageApi(language).then(res=>{  const{success}=res  if(success){   console.log('保存当前语言包成功')  } })}通过调用getLanguage接口获取到之前调用存储在indexedDB中的语言环境,然后赋值给全局组件,代码片段如下://headerCommon.vue//Mock接口:保存当前语言环境functiongetLanguage(){ fetchLanguageApi().then(res=>{  const{success,result}=res  const{name}=result  if(success){   if(name==='zh'){    emit('changeLang',zhCn)   }elseif(name==='en'){    emit('changeLang',en)   }   console.log('获取当前语言环境成功')  } })}getLanguage()使用@include指令来引入定义好的样式函数,该函数的三个参数可以根据传入的值来对flex布局进行自定义,默认值为:column、center、right,在footerCommon.scss中我们重新自定义了该样式函数,分别传入row、space-between、flex-start,代码片段如下://footerCommon.scss.common-footer{  border-top:1pxsolidrgb(235,235,235); .footer{  @includemain-wrapper;  @includelayout(row,space-between,flex-start);  padding:20px0;  li{   @includelayout;   h4{    font-weight:bold;   }   a{    margin-bottom:10px;    color:rgb(72,72,72);    text-decoration:none;    &:hover{     text-decoration:underline;    }   }  } }}订单中心模块会使用到的两个Mock接口为saveOrderApi、fetchOrderApi,一个是立即预定,另一个是查询订单列表,具体代码片段如下//src/api/order/index.tsconststoreName=Object.keys(airbnb.orderObjectStore)[0]//Mock接口:立即预定exportasyncfunctionsaveOrderApi(params:any){ constloading=ElLoading.service({  lock:true,  background:'rgba(0,0,0,0.1)' }) //是否存在相同订单Id consthasOrderId=awaitnewPromise((resolve,reject)=>{  airbnb.airbnbDB.getList(storeName).then((res:any)=>{   setTimeout(()=>{    loading.close()   },200)   res&&res.filter((item:any)=>{    if(item.orderId===params.orderId){//存在相同订单Id     resolve(true)    }   })   resolve(false)  }) }) letresult:IResultOr if(hasOrderId){  result=awaitnewPromise((resolve,reject)=>{   resolve({code:'000001',success:false,message:'数据已存在',result:null})  }) }else{  result=awaitnewPromise((resolve,reject)=>{   airbnb.airbnbDB.updateItem(storeName,params).then(res=>{    setTimeout(()=>{     loading.close()    },200)    resolve({code:'000000',success:true,message:'操作成功',result:null})   })  }) } returnresult}通过应用这些进阶技巧和最佳实践,可以进一步提升小程序的性能和开发效率,同时优化代码质量,为用户提供更好的使用体验。
  • 所需E币: 5
    时间: 2023-11-10 09:46
    大小: 341.4KB
    上传者: 物联创客
    本资源内容概要:这是基于51单片机的0-5V电压表设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、proteus仿真图。本资源适合人群:单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:可以通过查看电路学习电路设计原理,查看代码学习代码编写原理。本资源使用建议:建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2023-11-10 09:44
    大小: 687.21KB
    上传者: 物联创客
    本资源内容概要:这是基于51单片机的矩阵按键LM386放大数码管显示电子琴设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开)、proteus仿真图。本资源适合人群:单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:可以通过查看电路学习电路设计原理,查看代码学习代码编写原理。本资源使用建议:建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。