从单片机初学者迈向单片机工程师(对初学者非常有用)
从技术员迈向工程师的历程 已读
学习单片机也已经有几年了,藉此机会和大家聊一下我学习过程中的一些经历和想法吧。
也感谢一线工人提供了这个机会。
希望大家有什么好的想法和建议都直接跟帖说出来。
毕竟只有交流才能够碰撞出火花来^_^。
几年前,和众多初学者一样,我接触到了单片机,立刻被其神奇的功能所吸引,从此不能自拔。
很多个日夜就这样陪伴着它度过了。
期间也遇到过非常多的问题,也一度被这些问题所困惑……等到回过头来,看到自己曾经走过的路,唏嘘不已。
经常混迹于论坛里,也看到了很多初学者发的求助帖子,看到他们走在自己曾走过的弯路上,忽然想到了自己的那段日子,心里竟然莫名的冲动,凡此总总,我总是尽自己所能去回帖。
很多时候,都想写一点什么东西出来,希望对广大的初学者有一点点帮助。
但总是不知从何处写起。
只是想认真的写写我这一路走来历经的总总,把其中值得注意,以及经验的地方写出来,权当是我对自己的一个总结吧。
而作为看官的你,如果看到了我的错误,还请一定指正,这样对我以及其它读者都有帮助,而至于你如果从中能够收获到些许,那便是我最大的欣慰了。
要成为一名优秀的单片机开发工程师,最重要的素质是什么?单片机从开发到产品端有很多关键阶段。
首先,开发新产品需要了解市场需求和应用方面的技术,才能定IC的规格;IC规格定下来后才能进行IC设计;IC设计完成后要进行验证;验证完成后,要做演示版进行市场推广。
这些阶段都要求单片机工程师具备优良的素质。
首先他们要懂技术,并注意技术经验的长期积累。
比如定IC规格,这是决定IC成败的关键,规格定得好,IC才能做得好。
但IC规格不能关起门来自己定,一定要与市场和产品端相结合。
所以就要求工程师必须熟悉整机产品的整个研发和生产过程,要懂生产环节和产品的专业知识,懂IC内部的相关工艺和IC设计。
因此,要完全掌握这项技术至少需要十年的经验积累,并且要一直做到工程主管的职位,才有可能完成。
因此这种人才在任何一家公司都非常宝贵,大概只有2%的人能做。
从单片机初学者迈向单片机工程师
这个我从eehome贴过来的。
写的非常的好。
我们用学单片机不要停在演示的基础上。
只能让单片机完成局部事。
这样我们永远不会走出流水灯地狱!!!学习单片机也已经有几年了,藉此机会和大家聊一下我学习过程中的一些经历和想法吧。
也感谢一线工人提供了这个机会。
希望大家有什么好的想法和建议都直接跟帖说出来。
毕竟只有交流才能够碰撞出火花来^_^。
“卖弄”也好,“吹嘘”也罢,我只是想认真的写写我这一路走来历经的总总,把其中值得注意,以及经验的地方写出来,权当是我对自己的一个总结吧。
而作为看官的你,如果看到了我的错误,还请一定指正,这样对我以及其它读者都有帮助,而至于你如果从中能够收获到些许,那便是我最大的欣慰了。
姑妄言之,姑妄听之。
如果有啥好的想法和建议一定要说出来。
几年前,和众多初学者一样,我接触到了单片机,立刻被其神奇的功能所吸引,从此不能自拔。
很多个日夜就这样陪伴着它度过了。
期间也遇到过非常多的问题,也一度被这些问题所困惑……等到回过头来,看到自己曾经走过的路,唏嘘不已。
经常混迹于论坛里,也看到了很多初学者发的求助帖子,看到他们走在自己曾走过的弯路上,忽然想到了自己的那段日子,心里竟然莫名的冲动,凡此总总,我总是尽自己所能去回帖。
很多时候,都想写一点什么东西出来,希望对广大的初学者有一点点帮助。
但总是不知从何处写起。
今天借一线工人的台,唱一唱我的戏一路学习过来的过程中,帮助最大之一无疑来自于网络了。
很多时候,通过网络,我们都可以获取到所需要的学习资料。
但是,随着我们学习的深入,我们会慢慢发现,网络提供的东西是有限度的,好像大部分的资料都差不多,或者说是适合大部分的初学者所需,而当我们想更进一步提高时,却发现能够获取到的资料越来越少,相信各位也会有同感,铺天盖地的单片机资料中大部分不是流水灯就是LED,液晶,而且也只是仅仅作功能性的演示。
于是有些人选择了放弃,或者是转移到其他兴趣上面去了,而只有少部分人选择了继续摸索下去,结合市面上的书籍,然后在网络上锲而不舍的搜集资料,再从牛人的只言片语中去体会,不断动手实践,慢慢的,也摸索出来了自己的一条路子。
怎么入门单片机
单片机入门指南:从基础到实践单片机作为嵌入式系统的核心,是电子信息类专业中不可或缺的一部分。
针对大学生初学者,学习单片机可能会显得有些挑战,但通过系统的学习和实践,可以逐步掌握相关技能。
本文将为大学生提供一份详细的单片机入门指南,从理论学习到实践项目,帮助他们快速入门单片机领域。
什么是单片机?什么是嵌入式系统?单片机(Microcontroller)是一种集成了处理器核心、存储器和外围设备接口等功能于一体的微型计算机系统。
嵌入式系统(Embedded System)是以计算机技术为基础,嵌入到各种设备中,完成特定功能的系统。
单片机通常是嵌入式系统的核心。
学习路线掌握C语言:C语言是单片机编程的基础,建议学习视频教程如小甲鱼或郝斌的C语言入门教学。
初学阶段重点掌握基本语法和关键词的使用。
学习基础电路与工具:对模拟电子技术和数字电路有一定了解,并学习常见的器件工作原理和基础电路的设计。
熟悉示波器、万用表等基本测试工具及焊接技术。
开始学习单片机:推荐从学习51单片机开始,尽管其性能较低,但学习资料丰富,底层相对简单。
可以通过购买相应的开发板和跟随视频教程逐步学习。
掌握仿真和PCB绘制:学习使用仿真软件如Proteus进行电路仿真,并了解PCB设计软件如Altium Designer,掌握基本的PCB绘制技能。
学习RTOS(实时操作系统):熟悉RTOS的使用,掌握实时操作系统的原理和编程方法,提高单片机程序的效率和可靠性。
进阶学习Linux:如果有兴趣,可以学习Linux系统的使用和应用开发,拓展嵌入式领域的知识面。
实践项目在学习过程中,可以尝试完成一些实践项目,如LED灯控制、蜂鸣器发声、循迹小车等,通过动手实践加深对单片机原理的理解。
结语学习单片机需要坚持和不断实践,同时建议加入学校的电子社团或实验室,与同学一起合作完成项目,相互学习和进步。
希望本指南能够帮助大学生顺利入门学习单片机,并在嵌入式领域取得进一步的成长和发展。
51单片机初学者到电子工程师
51单片机初学者到电子工程师(1)一、前言很多电子工程师在某个方面精深钻研,成为某一个特殊领域的专家,从一开始的养家糊口、慢慢小有收益、最后宝马豪宅,也是有的;这些电子工程师可能没有全面掌握这些知识,因为这些行业用不上,例如,液晶显示器,很多行业就不需要;但是,对于一个初学者,我认为,这个提纲是切合实际的,对于面向控制而言,已经基本够用了;对于初学者,全面地掌握这些知识是很有必要的,因为你不知道今后需要使用什么哪些知识,而这些知识,80%以上你会在今后的工作中使用上,因为这是都是最基本的。
熟练掌握这些知识和应用,根据不同的地区、行业和老板,月薪应该可以在3000元~5000元之间,甚至更高。
其实,可能有些你用不上,但是知道了也没有坏处;所谓书到用时方很少,又有谓艺不压身。
知识=月薪=年薪=金钱=香车宝马=…….. ,呵呵。
为什么要掌握这些知识?实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这些器件分离时无法完成的功能,做成一个成品。
所需要的技能越高、功能越复杂、成本越低、市场上对相应的东东的需求越大,就越成功。
这就是电子工程师的自身的价值。
从成本到产品售出,之间的差价就是企业的追求。
作为企业的老板,是在市场上去寻找这样的应用;对电子工程师而言,是将老板提出的需求或者应用按照一定的构思原则(成本最低、可*性最高、电路板最小、功能最强大等)在最短的时间内完成。
最短的时间,跟电子工程师的熟练程度、工作效率和工作时间直接有关。
这就是电子工程师的价值。
将电子产品抽象成一个硬件的模型,大约有以下组成:1) 输入2) 处理核心3) 输出输入基本上有以下的可能:1) 键盘2) 串行接口(RS232/485/can bus/以太网/USB)3) 开关量(TTL,电流环路,干接点)4) 模拟量(4~20ma、0~10ma、0~5V(平衡和非平衡信号))输出基本上有以下组成:1) 串行接口(RS232/485/can bus/以太网/USB)2) 开关量(TTL、电流环路、干接点、功率驱动)3) 模拟量(4~20ma,0~10ma,0~5V(平衡和非平衡信号))4) LED显示:发光管、八字5) 液晶显示器6) 蜂鸣器处理核心主要有:1) 8位单片机,主要就是51系列2) 32位arm单片机,主要有atmel和三星系列51系列单片机现在看来,只能做一些简单的应用,说白了,这个芯片也就是做单一的一件事情,做多了,不如使用arm来做;还可以在arm上加一个操作系统,程序既可*又容易编写。
三步教你从零开始成为单片机达人(附单片机实验经典详解)
三步教你从零开始成为单片机达人(附单片机实验经典详解)无论是作为一名业余的电子爱好者还是一名电子行业的相关从业人员,掌握单片机技术无疑可以使您如虎添翼,为您的电子小制作或者开发设计电子产品时打开方便的大门!学习单片机技术有一定的难度,不花费一番努力是很难学会的,但是只要不断努力就一定能成功,套用一句广告歌词:努力总有回报!学习单片机最好从51系列开始,第一是书多、资料多,而且掌握51技术的人多,碰到问题能请教的老师也就多了,51系列的实验芯片AT89C51价格低廉而且很容易买到,AT89C51芯片而且可以反复擦写1000次以上,对于初学者来说真是太合适了,就算以后考虑工业运用,也可以先学透51后再学其他类型的单片机,毕竟技术是相通的。
学习单片机的第一步是看书,单片机是一个知识密集的东东,不看书是绝对不行的,北京航空航天大学出版社出版了大量单片机方面的好书,你可以直接登录他们的网站进行邮购。
学习单片机的第二步是购买工具,单片机芯片必须借助编程器才能写入程序,站长用的编程器是一种性能较好的Genius NSP 通用编程器,通用编程器的特点是专为开发单片机和烧写各类存储器而设计的通用机型,它的编程可靠性高,支持的器件品种很多。
Genius NSP 通用编程器:4Opins万用锁紧插座。
适应绝大多数器件编程之所需。
使用适配器能够支持非DIP封装器件的编程。
RS232窜口通讯。
通讯波特率:57600bit/s9V/500mA电源转换器。
主要功能:EPROM、EEPROM、FLASH、MPU/CPU、PLD。
Serial EEPROM六大类器件的编程;RAM器件及CMOS/TTL器件的测试等等。
可选择的器件插入自动探测启动功能,即当您选择该功能并启动后,不再需要每次点击鼠标启动操作,每次当您更换芯片并锁紧万用插座后操作自动启动。
Genius NSP 可以在 WINDOS95、 98、me、2000、XP上运行。
单片机
单片机学习资料一、单片机初学者必看(转载)很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。
先说说单片机,一般我们现在用的比较多的的MCS-51的单片机,它的资料比较多,用的人也很多,市场也很大。
就我个人的体会怎么样才能更快的学会单片机这门课。
单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低。
由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。
至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。
所以我总是说,学单片机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,可以不用仔细的看。
推荐一本书,就这一本就足够,书名是《新编MCS-51单片机应用设计》,是哈尔滨工业大学出版社出的,作者是张毅刚。
大概了解一下书上的内容,然后实践,这是非常关键的,如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器,这就差不多了。
如果上面我提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。
只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。
方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。
从入门到大神,学习单片机的八个步骤介绍
从入门到大神,学习单片机的八个步骤介绍任何一款单片机,其实学习步骤都是一样的,不管是8位的入门芯片,还是32位的高速芯片。
以下步骤是必须的,按部就班的学完了,你不成大神你来找我。
第一步:数字I/O的使用使用按键输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,同时还学会了寄存器的操作方式。
例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。
每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。
要注意的是两个功能使用同一组I/O口,比如LCD和LED数据端口在好多例程里都是共用一组端口,如果两者结合,会有冲突,达不到预期的效果,或者在现在LCD的同时LED也在乱跳,这是目前大开发板采用的方式,建议不同的模块使用不同的IO口。
第二步:定时器的使用学会定时器的使用,就可以写出更高效的程序,别人的程序跑完一遍需要100ms,加入定时器后,你的程序跑完一遍可能只要10ms,在工业、家用电气设备的控制中也有很多应用。
真正会写程序的人必然是用定时器的高手。
例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。
数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。
定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。
第三步:中断单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事。
单片机的学习路径推荐
单片机的学习路径推荐随着科技的迅速发展,单片机(Microcontroller)在电子领域中扮演着重要的角色。
无论是物联网、嵌入式系统还是智能家居,单片机都是不可或缺的核心部件。
因此,学习单片机编程成为电子工程师和程序员们的必备技能之一。
对于初学者来说,学习单片机可能会有些困惑。
本文将为你推荐一条适合初学者的单片机学习路径。
1. 学习基础电子知识在开始学习单片机之前,建议先学习一些基础的电子知识。
这包括电路原理、电子元件的使用方法以及各种传感器、执行器和其他外围设备的工作原理等。
这些知识将为你理解和设计单片机应用提供必要的基础。
2. 学习C语言编程基础在学习单片机编程之前,你需要掌握一门编程语言。
对于单片机来说,C语言是最为常用和有效的编程语言之一。
学习C语言的基本语法、数据类型、控制流程以及函数等内容是非常重要的。
可以通过参加培训班、自学书籍或在线教程等方式来学习C语言。
3. 学习单片机体系架构和工作原理在学习单片机编程之前,了解单片机的体系架构和工作原理非常重要。
不同的单片机芯片有不同的体系架构和指令集,因此需要针对特定类型的单片机进行学习。
可以选择一款常用的单片机进行深入研究,例如Atmega系列、PIC系列或ARM系列等。
4. 学习单片机编程学习单片机编程是学习单片机的核心内容。
在学习过程中,可以选择一款流行的开发平台,如Arduino或Raspberry Pi。
这些平台具有友好的开发环境和丰富的资源,适合初学者入门。
通过编写简单的程序来控制LED灯、蜂鸣器或舵机等,你将逐渐理解单片机的工作原理和编程思路。
5. 学习单片机外围设备的应用单片机的魅力之一在于它与各种传感器、执行器和其他外围设备的集成能力。
学习如何使用各种外围设备能够帮助你实现更复杂的单片机应用。
例如学习如何接入温湿度传感器、光敏传感器或者液晶显示屏等等。
通过实际的项目实践,你将能够更好地掌握单片机的应用技巧。
6. 开展自己的单片机项目最后一步是开展自己的单片机项目。
单片机入门指南 从零开始学习单片机
单片机入门指南从零开始学习单片机单片机(Microcontroller)作为一种在嵌入式系统中广泛使用的微型计算机,拥有广泛的应用领域。
对于初学者来说,学习和掌握单片机的基础知识至关重要。
本篇文章将从零开始介绍单片机的入门知识,帮助读者系统地学习单片机。
一、简介单片机是一种集成了处理器核心、存储器、输入输出接口、定时器和其他相关模块的微型计算机系统。
它以其体积小、功耗低、成本低等优势,在嵌入式系统领域得到了广泛应用。
学习单片机需要掌握基本的电子知识、C语言等。
二、准备工作要学习单片机,首先需要准备一台可编程的单片机开发板,如常见的51单片机开发板、Arduino开发板等。
同时,还需要下载并安装开发板所需的集成开发环境(IDE),如Keil、Arduino IDE等。
三、基本原理1. 单片机的结构:单片机由中央处理器(CPU)、存储器、输入输出(I/O)口、定时器、串口等组成。
掌握这些基本组成部分的工作原理是学习单片机的关键。
2. GPIO口:通用输入输出口(GPIO)是单片机与外部世界通信的接口,可以通过编程控制来实现不同的功能,如输入、输出、中断等。
3. 定时器和计数器:定时器和计数器是单片机中常用的模块,可以用于延时、定时、脉冲计数等应用。
熟悉定时器和计数器的使用是学习单片机的重要一步。
四、编程语言在学习单片机时,常用的编程语言是C语言。
C语言具有简洁、高效的特点,对于单片机的程序设计非常适用。
学习C语言语法和相关的编程技巧是学习单片机的基础。
五、入门实例为了更好地理解和掌握单片机的基础知识,以下是一个简单的LED 灯闪烁程序的实例:```c#include <reg51.h>#define LED P0void delay(unsigned int time) // 延时函数{unsigned int i, j;for(i = time; i > 0; i--)for(j = 120; j > 0; j--);}void main(){while(1){LED = 0xFF; // 打开LED灯delay(500); // 延时500msLED = 0x00; // 关闭LED灯delay(500); // 延时500ms}}```通过以上简单的程序,可以实现LED灯的闪烁。
从单片机初学者迈向单片机工程师第一章
从单片机初学者迈向单片机工程师第二版之第一章----究竟该如何学习By : 蒋晨辉(网名:红金龙吸味)Mail: power_mcu@Blog:/power_mcu走进图书城,面对整排的单片机类技术书籍,看着一个个陌生的单片机型号,你是否茫然不知如何选择?就单片机内核体系结构而言,有51单片机,AVR单片机,PIC单片机,MSP430单片机, ARM系列内核等等。
除了这些广为人知的之外,还有很多兼容上述某些内核体系的单片机。
选择何种单片机作为入门学习的对象,往往成为困扰初学者最大的问题。
我们可能道听途说,某某型号的单片机功能很丰富,某某型号的单片机市场使用量大,某某型号单片机抗干扰强。
这些信息都可能导致先入为主的观念,对初学者选择单片机型号进行学习产生影响。
是否有必要把这些单片机都学习一遍,才能信心满满的去面对工作中的挑战?答案是否定的。
单片机的学习并不能拘泥于某一体系的具体某种型号的单片机。
而是通过某一种单片机的学习,掌握单片机程序设计的思想。
从而在后续的开发工作中,以不变应万变。
如果掌握了具体的程序设计思想,学习一种新的单片机只是需要了解其相应的寄存器设置即可。
对于底层硬件驱动程序以及上层应用程序的编写均可以套用以前学习过的思想。
这样无论未来工作中接触到何种单片机,均可以在很快的时间内上手掌握。
只有达到了这样的地步,方能真正称之为掌握了单片机。
对于编程语言的选择,也是困扰初学者的一个大问题。
君不见,电子专业论坛上面,每每时隔不久就会冒出“单片机编程到底是选择汇编语言还是C语言?”之类的帖子。
而且这些帖子一旦出现就会成为众生争论之地,但除了一番口水战,最终无法给出一个确切的定论。
汇编语言由于是直接操作硬件,在对时序要求精确以及代码精简和讲究极端效率的地方可以派上大大的用场。
但是这也并不是表明用汇编语言编写出来的程序就一定是最优的程序。
程序的优与否取决于程序编写者的实际能力,优秀的程序员才能编写出高质量的代码。
学习单片机心得体会(最新7篇)
学习单片机心得体会(最新7篇)单片机心得体会篇一回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在信盈达刘老师的辛勤指导下,终于游逆而解。
同时,在刘老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和信盈达各位指导老师再次表示忠心的感谢!一、单片机课程设计总结做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。
我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了在最后答辩的时候他们一起坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自己都不知道自己在说怎么,虽然有的东西他们也答出来了。
我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10天的人最后的成绩都有不如他们的),但是鄙视他们的做法。
接下来就是做硬件方面的焊接工作了。
没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。
很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。
我看到有很多人跟我一样,不同的是他们是三三两两,而我大部分时间都是一个人做。
单片机学习心得10篇完整版
《单片机学习心得》单片机学习心得(一):单片机学习心得体会我从大二起,就去实验室去学习。
在那里与老师和一些电子设计爱好者的交流中,我学到了更多的专业知识。
我从此走上了学习嵌入式的道路。
这丰富了我的大学生活,是我在大学的最大收获。
我是从学习单片机开始我的嵌入式学习的。
我接触单片机的方式是在图书馆看书,我看了很多本书,但是大多数书写的大同小异。
书里面讲解的单片机的寄存器我看了很多遍也没有看懂。
我都不明白改怎样学习它了。
慢慢的我悟出了一个道理:电子的学习实践是最重要的,这样,我在大二的时候就买了一块学习板,我一边看视频一边仿照视频的程序,自己编写程序,在很短的时间里,我的单片机有了很大的提高。
那些难懂的寄存器透过编写程序,我慢慢的弄懂了它们,此刻回头看去,原先它还是很简单的。
用哪种编程语言最适合我们。
我看过的单片机的书籍,大部分的程序都是汇编写的。
它是一种基于机器硬件的低级语言,对于我们这些只学习过C语言的人来说,十分难懂。
我认为刚开始学习单片机没有必要必须要从学习汇编编程开始。
我学习单片机就是用C语言编程的,我并不会汇编语言,也没有妨碍我把单片机学好。
我的单片机学习心得。
很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,进步速度会很快。
在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。
单片机的学习实践。
单片机提高重在实践,想要学好单片机,软件编程必不可少。
但是熟悉硬件对于学好单片机的也是十分重要的。
如何学习好硬件,动手实践是必不可少的。
我们能够透过自己动手做一个自己的电子制作,透过完成它,以提高我的对一些芯片的了解和熟练运用它。
这样我们就能够多一些了解芯片的结构。
我相信,你完成了一个属于自己的电子制作,你的单片机水平就会有一个质的提高。
单片机工程师
单片机工程师谈学习体会同学们:我以前上学也是学习51的,刚开始也觉得单片机很难,很神秘.我毕业实习在深圳,但是实习的工作不是搞单片机.记得我第一个月的工资就买了51的编程器,仿真器.然后在没有任何老师指导的情况下自己完成了实物制作.你现在学51,我建议你在网上下载keil软件与C51编译器.自己花300块买个编程器,自己多做实验.汇编语言是基础,C语言是最重要,最常用的编程语言.我现在做的任何项目都是用C语言完成.外面很少用51的单片机,我公司现在用的是PIC单片机,常用的还有A VR,高档的还有ARM.你现在不要贪心,只要把51学习好了,以后有基础就可以触类旁通.单片机的型号成千上万,你不可能每种都学.我现在也是这样,如果需要用到哪种IC,自己查一下技术手册,买书,上网查资料自己都可以学.告诉你一个秘密.很多在学校的人觉得单片机难学,是因为老师上课讲的是汇编语言,难懂,其实出来工作后,大家都是用C语言写的,那样简单得不得了,用了C语言后很多硬件上的东西根本就不用考虑.随便一个学文科的同学最多培训三个月就可以自己做项目.当然,我建议你现在把硬件资源与汇编学好,这个是内功,关键时候用上场.最后送你一句话,如果你真的想入门单片机,你可以不用请教任何人,完全可以自己买书,自己上网找资料自己买元件做实验,最后自己成材.我就是这个样子.有什么问题请继续与我邮件交流:E-mail: kuailezhixin530@单片机学习心得本人是国内某大学的在校学生,记得刚入大学的时候,有个比我大几届的师兄告诉我,让我利用课余时间好好学学单片机,只有那样才不愧为一名学电子的学生.坦白的说,那时侯对单片机可以说是只闻其名,未见其物,这也得怪现在的教育体制,在学校课堂真的是学不到什么东西.记得当时上单片机课程时,每天对着书而不知所措,老师讲课也完全停留在理论层面上,大家都知道学习工科,只学理论不联系实际那就是纸上谈兵,毫无意义.于是单片机课程结束时,我对单片机还是一窍不通。
“从单片机初学者迈向单片机工程师”之LED主题讨论
【转】“从单片机初学者迈向单片机工程师”之LED主题讨论周第三章----模块化编程初识2010-06-13 11:12转载自迪克斯达最终编辑awanda好的开始是成功的一半通过上一章的学习,我想你已经掌握了如何在程序中释放CPU了。
希望能够继续坚持下去。
一个良好的开始是成功的一半。
我们今天所做的一切都是为了在单片机编程上做的更好。
在谈论今天的主题之前,先说下我以前的一些经历。
在刚开始接触到C语言程序的时候,由于学习内容所限,写的程序都不是很大,一般也就几百行而矣。
所以所有的程序都完成在一个源文件里面。
记得那时候大一参加学校里的一个电子设计大赛,调试了一个多星期,所有程序加起来大概将近1000行,长长的一个文件,从上浏览下来都要好半天。
出了错误简单的语法错误还好定位,其它一些错误,往往找半天才找的到。
那个时候开始知道了模块化编程这个东西,也尝试着开始把程序分模块编写。
最开始是把相同功能的一些函数(譬如1602液晶的驱动)全部写在一个头文件(.h)文件里面,然后需要调用的地方包含进去,但是很快发现这种方法有其局限性,很容易犯重复包含的错误。
而且调用起来也很不方便。
很快暑假的电子设计大赛来临了,学校对我们的单片机软件编程进行了一些培训。
由于学校历年来参加国赛和省赛,因此积累了一定数量的驱动模块,那些日子,老师每天都会布置一定量的任务,让我们用这些模块组合起来,完成一定功能。
而正是那些日子模块化编程的培训,使我对于模块化编程有了更进一步的认识。
并且程序规范也开始慢慢注意起来。
此后的日子,无论程序的大小,均采用模块化编程的方式去编写。
很长一段时间以来,一直有单片机爱好者在QQ上和我一起交流。
有时候,他们会发过来一些有问题的程序源文件,让我帮忙修改一下。
同样是长长的一个文件,而且命名极不规范,从头看下来,着实是痛苦,说实话,还真不如我重新给他们写一个更快一些,此话到不假,因为手头积累了一定量的模块,在完成一个新的系统时候,只需要根据上层功能需求,在底层模块的支持下,可以很快方便的完成。
从单片机初学者迈向单片机工程师完整
从单片机初学者迈向单片机工程师完整今天讲个技巧方面的知识:一个有关0.0625℃的运算想到的咨询题碰到一哥们号称挺NB的嵌入软件工程师,看了他的代码后就欧拉,情况是在一个只有4K代码的单片机接2个DS18B20测温传感器,都明白DS18B20输出数据只要乘以0.0625确实是测量的温度值,这哥们讲程序空间如何也不够,实际上程序只有简单的采集两个DS18B20的数据转换成温度值,之后在1602液晶上显示,挺简单个程序,如何也想不通什么缘故程序空间不够。
只读了一下代码发觉程序就没动脑子,确有用浮点库把DS18B20数据直截了当乘以0.0625了,那程序不超才怪呢,略微动动脑子也会明白0.0625不确实是1/16吗,把DS18B20的数据直截了当右移4位不确实是了(因此要注意符号),这右移程序可十分简单还省空间,咨询题专门好解决,空间自然也就够了。
现在想来嵌入处理器确实是进步了,程序空间是越来越大,数据RAM空间也越来越大,导致专门多人在写程序的时候确实是什么都不顾,借着C语言的灵活性真是纵横驰骋,压根也不讲个程序效率和可靠性。
正如前些生活见到一小孩用ARM cortex-m3处理器给人接活写个便携表的1024点FFT算法,本身12位的AD系统,这小家伙直截了当到网上下载了浮点的FFT算法代码就给人加上了,结果整个程序死慢死慢的,人家用户可不买单啊,这时要动动脑子把数据直截了当变成乘以某个数变成整数后用定点FFT处理,之后再把数据除一下不就行了。
速度自然也快了,而且也能省下空间。
实际当中我们做嵌入软件专门多时候犯懒都忽视程序执行效率咨询题,是都能实现功能,但有时候确实是没法谈性能。
我几次碰到如此的工程师,直截了当把传感器的信号放大后进嵌入处理器的AD,也不看看AD数据是否稳固有效,直截了当就进行FFT运算,那FFT结果真是喧闹,不难看出混叠专门严峻,因此又机械地在FFT基础上再去衍生算法,系统程序越做越大,速度越做越慢。
单片机按键去抖原理
3楼
要不硬件上消下抖,加个电容?
为什么某个IO状态翻转呢?为什么不像电脑 一样,有kbhit这样 的判断存在,我们可以在有键按下 时锁住所按 键的扫描码吧,当然视 你要完成的功能而定 这样 的话,由于所按的 键已锁存,后面的中 断判断的就是有 无按键了,调节好其判 断条件如 时间 什么的,就像电 脑设置了按键响应速度一样,这样可以解决吧。
它们和我们的单片机系统的I/O口连接一般如下:
对于单片机I/O内部有上拉电阻的微控制器而言,还可以省掉外部的那个上拉电阻。简单分析一下按键检测的原理。当按键没有按下的时候,单片机 I/O通过上拉电阻R接到VCC,我们在程序中读取该I/O的电平的时候,其值为1(高电平); 当按键S按下的时候,该I/O被短接到GND,在程序中读取该I/O的电 平的时候,其值为0(低电平) 。这样,按键的按下与
否,就和与该按键相连的I/O的电平的变化相对应起来。结论:我们在程序中通过检测到该I/O口电平的变化与否,即可以知道按键是否被按下,从而 做出相应的响应。一切看起来很美好,是这样的吗?
◎现实并非理想 在我们通过上面的按键检测原理得出上述的结论的时候,其实忽略了一个重要的问题,那就是现实中按键按下时候的电平变化状态。我们的结论是基 于理想的情况得出来的,就如同下面这幅按键按下时候对应电平变化的波形图一样:
讨论下吧!
C语言也能 写图形的俄 罗斯方 块?!! TOP
发表于 2010-5-12 23:58 | 只看该作者
4楼
硬件上可以用电容消抖,并接一个104即可 ,如果还想要更好的效果,可以用74HC14对波形整形。我见过的按键除了上述的硬件处 理之外,软件上面同样要消抖,因为是用在工业环境里,什么情况都有可能出现。 “我们可以在有 键按下时锁住所按 键的扫描码吧,当然视你要完成的功能而定 这样的话,由于所按的 键已锁存,后面的中 断判断的就 是有 无按键了,调节好其判 断条件如 时间 什么的,就像电脑设 置了按 键响应 速度一 样,这样 可以解 决吧。” 呵呵,想法太简单。 按键处 理也要分情 况,对于很重要的,一般接中 断,剩下的应用级的,在主循 环中循环检测 即可。 比较好的做好是,开辟一个环形缓冲。确定按键按下,丢到缓冲区,任务根据当前状态取键值,作处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从单片机初学者迈向单片机工程师 目录: 一、LED 1 二、LED 主题讨论周第二章----学会释放 CPU................................................. 2 三、LED 识..............................................8 四、LED 灯................................................25 五、LED 28 六、KEY 主题讨论第一章按键程序编写的基础..................................... 37 主题讨论周第五章----多任务环境下的数码管编程设计................. 主题讨论周第四章----渐明渐暗的 主题讨论周第三章----模块化编程初 主题讨论周第一章----写在前面....................................................摸索出来了自己的一条路子。当然这 个过程必然是艰辛的,而他学会 了之后也不会在网络上轻易分享自己的学习成果。如此恶性循环下去,也 就不难理解为什幺初级的学习资 料满天飞,而深入一点的学习资料却很少的原因了。相较于其他领域,单 片机技术的封锁更加容易。尽管 已经问世了很多年了,有价值的资料还是相当的欠缺,大部分的资料都是 止于入门阶段或者是简单的演示 实验。但是在实际工程应用中却是另外一回事。有能力的高手无暇或者是 不愿公开自己的学习经验。 很多时候,我也很困惑,看到国外爱好者毫不保留的在网络上发布自己的 作品,我忽然感觉到一丝丝的 悲哀。也许,我们真的该转变一下思路了,帮助别人,其实也是在帮助自 己。啰啰嗦嗦的说了这幺多,相 信大家能够明白说的是什幺意思。在接下来的一段日子里,我将会结合电 子工程师之家举办的主题周活动 写一点自己的想法。尽可能从实用的角度去讲述。希望能够帮助更多的初
学者更上一层楼。而关于这个主 题周的最大主题我想了这样的一个名字从单片机初学者迈向单片机工程 师。名字挺大挺响亮,给我的压 力也挺大的,但我会努力,争取使这样的一系列文章能够带给大家一点帮 助,而不是看后大跌眼镜。这样 的一系列文章主要的对象是初学者,以及想从初学者更进一步提高的读 者。而至于老手,以及那些牛 XX 的人,希望能够给我们这些初学者更多的一些指点哈~@_@~. 二、LED 主题讨论周第二章----学会释放 CPU 从这一章开始,我们开始迈入单片机的世界。在我们开始这一章具体的学 习之前,有必要给大家先说明一 下。在以后的系列文章中,我们将以 51 内核的单片机为载体,C 语言为 编程语言,开发环境为 KEIL uv3。 至于为什幺选用 C 语言开发,好处不言而喻,开发速度快,效率高,代码 可复用率高,结构清晰,尤其是 在大型的程序中,而且随着编译器的不断升级,其编译后的代码大小与汇
编语言的差距越来越小。而关于 C 语言和汇编之争,就像那个啥,每隔一段时间总会有人挑起这个话题, 如果你感兴趣,可以到网上搜索 相关的帖子自行阅读。不是说汇编不重要,在很多对时序要求非常高的场 合,需要利用汇编语言和 C 语言 -------------------------------------------------------------------------------------------------------------------------------------- 混合编程才能够满足系统的需求。在我们学习掌握 C 语言的同时,也还需 要利用闲余的时间去学习了解汇 编语言。 1.从点亮 LED(发光二极管)开始 在市面上众多的单片机学习资料中,最基础的实验无疑于点亮 LED 即控制单片机的 I/O 的电平的变化。 如同如下实例代码一般 void main(void) 了,
七、KEY 主题讨论第二章基于状态转移的独立按键程序设计.............. 40 八、综合应用之一如何设计复杂的多任务程序...................................... 47 九、综合应用之二 DS1320/DS18B20 ------------------------------------------------------------------得注意,以及经 验的地方写出来,权当是我对自己的一个总结吧。而作为看官的你,如果 看到了我的错误,还请一定指正, 这样对我以及其它读者都有帮助,而至于你如果从中能够收获到些许,那 便是我最大的欣慰了。姑妄言之, 姑妄听之。如果有啥好的想法和建议一定要说出来。ϑ几年前, 和众多初学者一样,我接触到了单片机,立 刻被其神奇的功能所吸引,从此不能自拔。很多个日夜就这样陪伴着它度 过了。期间也遇到过非常多的问 题,也一度被这些问题所困惑等到回过头来,看到自己曾经走过的路,唏 嘘不已。经常混迹于论坛里, 也看到了很多初学者发的求助帖子,看到他们走在自己曾走过的弯路上, 忽然想到了自己的那段日子,心 应用...............................................60
里竟然莫名的冲动,凡此总总,我总是尽自己所能去回帖。很多时候,都 想写一点什幺东西出来,希望对 广大的初学者有一点点帮助。但总是不知从何处写起。今天借一线工人的 台,唱一唱我的戏 一路学习过来的过程中,帮助最大之一无疑来自于网络了。很多时候,通 过网络,我们都可以获取到所 需要的学习资料。但是,随着我们学习的深入,我们会慢慢发现,网络提 供的东西是有限度的,好像大部 分的资料都差不多,或者说是适合大部分的初学者所需,而当我们想更进 一步提高时,却发现能够获取到 的资料越来越少,相信各位也会有同感,铺天盖地的单片机资料中大部分 不是流水灯就是 LED,液晶,而 且也只是仅仅作功能性的演示。于是有些人选择了放弃,或者是转移到其 他兴趣上面去了,而只有少部分 人选择了继续摸索下去,结合市面上的书籍,然后在网络上锲而不舍的搜 集资料,再从牛人的只言片语中