单片机

少走弯路,教你如何自学单片机!

烂漫一生 提交于 2019-11-27 15:44:39
很多人在学习单片机的过程中,往往会犯急于求成的错误,这样在遇到挫折时就会严重打击自己信心,最后只能半途而废了。为什么会造成这种结果呢?这是因为要想学会单片机,需要掌握的知识太多了,譬如微机原理、C语言、数字电路以及模拟电路等。所以如果你打算自学单片机,那么必然不能急于求成,而是要有一个循序渐进的过程,否则就会越学越难,直至放弃。 学习单片机不能单独学习理论知识或者只注重实践而忽略理论知识。那么理论和实践该如何安排呢?我的建议是如果你还是在校学生,那么你应该注重理论学习辅助实践,如果你已经毕业工作了,那么应该是实践为主,在实践过程中再去理解相关理论知识。 我学习单片机的过程也是走了很多弯路,浪费了很多时间。这些天也是做了总结,现在分享给大家,让各位想自学学习单片机的朋友少走弯路。 1-自学单片机需要准备什么? 如果你有在网上找自学单片机的资料,相信你们一定有找到郭天祥老师的“十天学会单片机”教学视频。郭老师的这个教学视频讲解的非常精彩,我也是通过郭老师的教学视频来入门单片机,所以我们需要下载这个视频来学习,那么我们是否需要购买相应的开发版来学习呢?答案是我们不需要购买,因为对于初学者来说,使用仿真软件即可。使用仿真软件可以灵活搭建所需要的电路,在我们自己搭建电路这个过程会让我们学习到单片机的电路设计思想,以便我们更好理解单片机,况且对于一名单片机工程师,设计单片机外围电路是必备技能

LED显示行业之知识大全2

拈花ヽ惹草 提交于 2019-11-27 14:59:45
最全的 LED 显示屏知识大全 你好,我叫毛华望, LED工程师。微信15889765314 。 四.LED显示屏的两种常规组装方式 1 、框架结构 在屏幕较小时,是在工厂组装成整屏;屏幕较大时,按单元板发货。由工程人员在现场组装。组装时,先将单元板和电源分别固定在板筋背条上,进而拼装成屏体。 2 、箱体结构 箱体与箱体之间采用秘密窃取的方法定位销定位、锁紧机构拉紧,都能使安装更加精密、准确,保证箱体上下、左右之间的LED间距在实际误差要求范围之内,从整体上保证了整个屏体的显示效果。 五.LED显示产品一些问题的解答 1、LED显示屏模组规格计算方法: 间距计算方法: 每个像素点到另外一个像素点之间的距离,每个像素点可以是一颗LED灯 如1R、两颗LED灯 2R/1R1G、三颗LED灯 2R1G 长度和高度计算方法:点间距×点数=长/高 如:P16长度=16点×1.6㎝=25.6㎝ 高度=8点×1.6㎝=12.8㎝ P10长度=32点×1.0㎝=32㎝ 高度=16点×1.0㎝=16㎝ 屏体使用模组数:总面积÷模组长度÷模组高度=使用模组数 如:10个平方的P16户外单色LED显示屏使用模组数等于: 10平方米÷0.256米÷0.128米=305.17678≈305个 更加精确的计算方法:长度使用模组数×高度使用模组数=使用模组总数 如:长5米

单片机内存及运行原理

旧城冷巷雨未停 提交于 2019-11-27 10:51:41
一、单片机构成: 二、CPU的作用 三、内存管理 首先单片机的内存可以大小分为ram和rom,这里就不再解释ram和rom的区别了,我们可以将其等效为flash和sram,其中根据flash和sram的定义可得,flash里面的数据掉电可保存,sram中的并不可以,但是sram的执行速度要快于flash,可以将单片机的程序分为code(代码存储区)、RO-data(只读数据存储区)、RW-data(读写数据存储区)和ZI-data(零初始化数据区)。在MDK编译器下可以观察到在代码中这4个量的值。 其中code和RO-data存储在flash中,所以两者之和为单片机中flash需要分配给它们的空间大小(并且等于代码所生成的.bin文件大小),另外RW-data和ZI-data存储在sram中,同样两者之和为单片机中sram需要分配给它们的空间大小。 另外,我们必然会想到栈区(stack)、堆区(heap)、全局区(静态区)(staTIc)、文字常量区和程序代码区和上面所介绍的code、RO-data等的关系。 1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 这些值是可读写的,那么stack应该被包含在RW-data(读写数据存储区),也就是单片机的sram中。 2、堆区(heap):一般由程序员分配释放,

单片机时钟电路

久未见 提交于 2019-11-27 09:21:15
首先,单片机能正常工作的必要条件之一就是时钟电路,所以单片机就很需要 晶振 。   晶振,全称是石英 晶体 振荡器 ,是一种高精度和高稳定度的振荡器。通过一定的外接电路来,可以生成频率和峰值稳定的正弦波。而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可以简单的想象为:单片机收到一个脉冲,就执行一次或多次指令。 、 单片机工作时,是一条一条地从 RoM 中取指令,然后一步一步地执行。单片机访问一次 存储器 的时间,称之为一个机器周期,这是一个时间基准。—个机器周期包括12个时钟周期。如果一个单片机选择了12兆赫兹晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。  MCS—51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。例如,当需要计算DJNZ指令完成所需要的时间时,首先必须要知道晶振的频率,设所用晶振为12兆赫兹,则一个机器周期就是1us。而DJNZ指令是双周期指令,所以执行一次要2us。如果该指令需要执行500次,正好1000us,也就是1ms。   机器周期不仅对于指令执打有着重要的意义,而且机器周期也是单片机 定时器

学单片机还有前途吗?

↘锁芯ラ 提交于 2019-11-27 03:04:45
单片机,嵌入式大量的充斥在我们的生活中,几乎方方面面都用得到单片机,确实现在出现了大量32,64位的,但是市场上现在出货量最大的还是8位的51系列。对于一些不复杂的任务,能用51做,还非要上arm吗,所以要根据实际需要来看。所以我个人认为单片机这行,大钱可能挣不着,温饱肯定是没问题的,更深入的可以走,linux+arm。 可以有些朋友给些不同的建议吗?你们觉得呢,单片机有前途吗? 来源: https://blog.csdn.net/weixin_42832780/article/details/99303071

基于意法半导体MCU STM32的底层配置

孤者浪人 提交于 2019-11-27 01:38:03
意法半导体MCU是全球领先的半导体供应商,自成立以来已满足了市场上多元化的需求,提供了各行业领域范围半导体产品及解决方案.为了保持其技术优势,意法半导体坚定地致力于创新,约有7400人从事研发和产品设计工作,并在2018年将其收入的15%用于研发。STM32MCU被广泛应用在各种丰富的不同行业当中.为此本篇文章将介绍有关STM32底层配置的相关技术. 本文通过,介绍STM32主要的底层配置,通过关键步骤的程序源代码的介绍,阐述实现数据传输的细节以及注意事项。该方法对其他项目或芯片有一定的实现价值和参考价值,且简单可靠,具有普遍性和通用性。 1、STM32底层配置 为了实现STM32单片机与SIM900A模块之间的数据命令的传输,本文以串口为例,先搭建开发平台,在工程中加入相应的库函数以及配置文件,然后配置时钟以及串口相应的输入输出GPIO接口。在配置的同时,需要针对自身的原理图进行编写,才能保证配置正确无误。这样基本的开发平台就搭建起来了。 1.1、串口配置 在开发平台搭建起来之后,就可以对串口进行配置了。配置速率为115200b/s,字长为8bit,1bit停止位,串口模式为输入与输出模式,最后初始化相对应的串口。初始化串口之后,打开串口的中断响应函数,即USART_ITConfig(USART2,USART_IT_RXNE,ENABLE)(以串口2为例),然后使能相对应的串口

AVR单片机教程——随机点亮LED

匆匆过客 提交于 2019-11-27 00:27:43
今天的作业:一个更复杂的随机效果,每次亮1~2个灯,连续两次不能有相同的灯亮,也不能都亮2个,总体亮2个的概率为1/3。 这里 有一个hex文件,是作业的一个实现,以及一个.c源文件,把单片机程序的main函数复制到文件最后,用计算机的C编译器编译运行可以检查算法是否正确。一个正确的结果应该跟这个差不多: 来源: https://www.cnblogs.com/jerry-fuyi/p/11331642.html

单片机工程师是高薪岗位,按照这个步骤学习才能快速入门获得高薪

不羁的心 提交于 2019-11-26 19:59:45
现在的电子产品,随便拿来一个拆开,都能看到单片机的身影,单片机在电子产品中已经成了标配。因为现在的电子产品都是以单片机为核心,根据不同的需求加以不同的外设电路,再做一些认证相关的设计工作,都是这个构架。以智能手环为例,可以实现步数统计、心率检测、液晶显示、与手机蓝牙通讯、手机来电振动等功能,这些功能通过选用相关的传感器、元器件来实现,最后单片机做数据处理和逻辑处理,核心还是单片机,功能框图如下所示。 1-以单片机为核心的智能手环电路框图 如今,各种家电、智能穿戴设备、各种数码产品层出不穷,需求量越来越大,这也使得单片机工程师这个岗位需求量巨大,在不同的公司中,这个岗位有不同的称呼,如单片机工程师、电子工程师、硬件工程师、数电工程师等。相对于互联网程序员,单片机工程师低调的多,因为硬件是一个平台,是幕后,所有的效果、界面都是由代码呈现的,所以程序员成了台上的明星。平台可能只有一个,但是明星却有很多,这就要求你这个平台够硬。可以单片机工程师的重要性并不亚于程序员,而单片机工程师的待遇也不会很差,前提是你要坚持住。 2-华为体脂秤的国产单片机,来自芯海科技 所以,单片机是一门很有用的技术,学会单片机可以找一份很好的研发岗工作,享受很好的工资待遇。但是万事开头难,在初学入门阶段可能摸不着头脑无从下手毫无头绪,如果有了比较好的学习方法,单片机学习起来也是很有趣、很容易的

STC12单片机 AD转换和PWM输出功能

隐身守侯 提交于 2019-11-26 19:32:50
内容转自他人,至于原创者是谁,我也没找到。应本人觉得内容很好,对本人很有用,所以转载。源代码文件下载地址在下面 功能:STC12C2052AD AD转换C程序 +PWM输出功能 成功使用。 应用:AD检测电压进行过欠压保护(继电器控制)+PWM把直流电压斩波成脉动直流。 板子功能:给手机电池充电。 降压用的LM317,小电流应用应该够了。没时间去买开关管,就用的9013开关。 图纸: //以下是成功了的程序。如果你需要应用在你自己的项目中,您只需要更改io就能直接应用了 //程序的完整版本下载地址:http://www.51hei.com/ziliao/file/stc12c2052adde.rar #include <stc12c2052ad.h> //stc单片机专用的头文件 #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define AD_SPEED 0x60 //0110,0000 1 1 270个时钟周期转换一次, /************河北正定欢迎您!&&&&少占鱼欢迎您!******************************/ // sbit M=P1^5; //过压指示灯 sbit N=P1^3; //欠压指示灯 sbit LED=P1^7; /

stm32内存知识点(转)

只愿长相守 提交于 2019-11-26 16:43:24
1.bss段,data段、text段、堆(heap)和栈(stack) bss段:   bss段(bss segment)通常是指用来存放 程序中未初始化的全局变量 的一块内存区域。   bss是英文Block Started by Symbol的简称。   bss段属于静态内存分配。 data段:   数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。   数据段属于静态内存分配。 text段:   代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。   这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读(某些架构也允许代码段为可写,即允许修改程序)。   在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。 堆(heap):   堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。   当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);   当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)。 栈(stack):    栈又称堆栈,是 用户存放程序临时创建的局部变量,   也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。