本文目录
怎么从零学习单片机操作
学习单片机需要具备一定的电路基础、数字电路、模拟电路、信号系统、C语言编程等相关的基础知识。单片机的学习包括硬件设计和编程设计,早期单片机用汇编编程的人比较多,现在越来越多的人用C语言进行编程。下面和大家分享一下如何快速有效的学习单片机。
1
从51单片机开始学习编程
很多人建议可以直接从STM32、ARV、MSP430等单片机开始,在做产品的时候大家可以根据具体需求选择这类单片机。但是从零基础入门的角度考虑,我还是建议单片机从51单片机开始。因为51系列单片机进入中国最早、使用人数较多、资料较多,最关键的寄存器配置比较简单。
有了数模电基础、C语言基础后,就可以买一块51单片机学习编程了。在学习编程的时候要有顺序,先从操作单片机的GPIO口开始,再学习定时器、中断、AD采样、PWM输出,最后再学习UART、IIC、SPI等通讯方式,经过上述步骤之后,对单片机就有了基本的认识。
2
学习硬件的设计
单片机编程是基于硬件基础之上的,了解了编程之后,再来学习一下单片机硬件的设计。目前的电子产品,基本都是以单片机为核心,再根据不通的需求,围绕单片机搭建不通的外设电路。在设计电路时,就要考虑好方案是不是利于编程。硬件的学习,也要从基本的电路开始,如LED灯电路的设计、继电器电路的设计、蜂鸣器电路的设计、数码管电路的设计、RS232/RS485电路的设计等,虽然都是独立的模块,但是可以通过编程联系到一起,这也是先学编程后学习设计电路的原因。
3
学习做项目
学习单片机是为了做产品。在学习阶段可能没有参与项目的机会。可以根据自己的想法去提炼一些需求,最终设计电路、写程序去实现。或者自己试着去实现一块单片机开发板,学习单片机的过程是要花钱的。如果身边有参与项目的机会,一定要把握。在项目中实践自己的所学,在项目中扩大自己的知识面。
以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。
为什么自己设计不出来单片机程序该怎么做
学习单片机编程,需要有基础,需要有方法。
一,写不出单片机程序的原因有哪些?
C语言掌握不够,常用的语法不理解.
单片机知识点没有掌握。
单片机编程没有入门。
第一,要一定C语言基础,单片机C语言和普通C语言语法差异
1.调用的头文件不一样。
2.编译器的不同会造成单片机C程序编写过程中细节的差异,比如unsigned int类型,在某些编 译器当中是与unsigend char一样的位宽。
第二,要有一定的硬件知识。理解普通的三极管,高低电平,电压电流等基本概念。这个能看得懂原理图,从事单片机开发,会需要调试程序,需要通过一定的工具,万用表,示波器来分析自己的软件是否正常。
第三。必须要有一块合适的开发板。资料和教程要齐全,没有开发板,就没有练习和实操的机会和平台,更谈不上进步。
单片机分为很多种,8位单片机,16位单片机,32位单片机,从未接触过单片机开发的初学者,在选择开发板时,建议用从8位单片机如AT89S51作为单片机入门芯片。
对于基础知识较薄弱的同学,不建议一开始就学习stm32,因stm32学习难度会大很多,知识点也更多,学不好会打击积极性。
二,能熟练编写单片机程序,有什么方法?
首先,单片机的入门级别的知识点:
1,开发环境的搭建和使用,下载程序的操作。这一块非常重要,这个学不会,后面的单片机编程无从谈起。
2,端口IO输出,实操LED灯的亮灭,流水灯实验。
3,端口IO输入,实操按键的输入高低电平变化,操作LED的亮灭。
4,串口的输入输出,掌握ASCII码的字符与0-255数字的对应关系,并学会利用串口进行调试信息打印,掌握利用串口调试代码的方法。(这种调试方法很重要,很多单片机不能在线仿真,只能用串口调试)
5,掌握定时器功能。掌握普通定时器中断函数的写法和用法,如果对应的单片机包含PWM设置,也必须掌握PWM的配置和使用。
6,掌握IIC时序操作,很多常用芯片都用IIC通信,比如EEPORM存储芯片,掌握后读写相关参数.存储的数据断电不丢失。
7,一般开发板都会有实时时钟芯片如DS1302,掌握其用法,可以在综合练习中用到。
一定要熟练掌握以上知识点,初学者心中要形成自己单片机开发的知识树。
接下来说下
第一,多学习和多看教学资料和视频,目前51级别的开发板非常多,价格实惠,而且有很多优质的教学视频。可以作为入门教程。
第二,推荐郭天祥的入门书籍《手把手教你学单片机C语言》,以及他的教学视频《十天学会单片机编程》,我就是看了这本书和视频,然后不断练习,才踏入单片机编程领域的。
第二,多练习,想需要单片机,看得懂不一定写得出来,一定要跟着视频书籍和老师的要求,自己一点点的编写出来,并每个知识点做好记录。并思考总结,消耗吸收变成自己的知识。
综合实验
根据自己所学习的知识点,完成一个带定时闹钟功能的实时时钟,
1 通过按键设置闹钟,需要将闹钟时间存储在EEPORM中。
2,通过按键修改时间,对ds1302的操作,时间计数的累加,
3,通过切换闹钟-时间显示模式,比如长按,短按键的搭配等
4,数码管在不同的模式下分别显示时间和闹钟。
按照我文中的要求来进行操作和学习,最后完成实时时钟的这个实验,那么您的单片机编程能力一定得到很大提升!
32位单片机好学习吗
32单片机很好学习。
我们研发的电子产品使用的就是32位单片机。
下面简单说一下32位单片机如何学习。
8位单片机
在学习32位单片机之前,建议你从8位单片机开始学。
通过寄存器的操作方式必须实现以下四种通讯。
- 串口
- I2C
- SPI
- 红外遥控
如果你掌握了以上四种通讯,那么对于你学习32位单片机也就游刃有余了。
因为学习单片机的路上比较难的也就通讯这点玩意儿,如果你把通讯都能搞懂,我说的是自己用寄存器一个一个去配置的那种,不参考任何东西。
自己上来就能凭自己对这些通讯的理解独立的完成。
而且不单单要只会一种开发方,现在硬件条件都好了,可能我们实现串口、I2C这些,只需要配置寄存器就够了,但是这并不能加深你对这些通讯的理解,如果可能、最好是自己再通过模拟IO口的方式把上述通讯模拟一遍。
等你自己能模拟出来,你的任督二脉才会真正被打通。
然后再去学习32位单片机就很好学习了。
32单片机
32位单片机有两种开发方式,一种是库开发方式;另外一种是寄存器开发方式。
寄存器开发方式我劝大家就不要去学习了,是因为32位单片机一次性要配置很多位,会耗费我们大量的时间。
基于此,官方把这些寄存器用C语言封装起来,我们想要实现什么功能,直接调用官方的库就可以了,如果你熟悉了8位单片机的开发,再转来学习32位单片机的库开发方式,就非常容易学习了。
因为大量的配置寄存器的工作都被官方封装好了,我们直接拿来使用就可以了,而且对于各种模块的功能和通讯,官方都有实例,我们也可以直接拿来用,只需要改几个参数,就可以实现我们的功能。
甚至有的实现起来比8位单片机还要快,因为8位单片机还需要一位一位的去配置寄存器,而32位单片机不需要。
这就是为什么32位单片机好学习的原因。
函数库
最后,没事多看看32单片机的函数库。
没有的可以私信我,我会第一时间发给你。
如何利用单片机设计八路抢答器
用单片机来设计八路抢答器是一个常见的小课题,本人之前在大学期间就设计过八路抢答器的课程设计,也正是这个课程设计,让我喜欢上了单片机,以后也是从事的嵌入式研发类的岗位,今天再把这个设计分享一下。
1.设计需求
抢答器是用来让选手获得优先答题权的一台设备,具有娱乐属性,首先具有抢答按键,也就是所说的八路;再次具有显示模块,用数码管或者液晶来实现,用于显示选手编号和倒计时时间;具有发声功能,用以提示按键音或者倒计时发声增强现场的紧张氛围;最后还需要开始/结束按键,这是给后台用的,绝对控制权。
2.硬件原理设计
单片机采用51单片机,按键采用机械式按键,有八路,外加一个开始按键和一个结束按键,按键通过8输入的与非门74LS30接入单片机的外部中断;有三个数码管,两个显示倒计时时间最大99秒,一个用于显示选手编号,数码管使用75HC595驱动;用三极管驱动蜂鸣器作为发声的提示,整体的Proteus仿真图如下所示。
3.仿真运行结果
上电后,显示FFF,表示未抢答开始,必须由后台按下开始按键后,才开始倒计时进入抢答环节,在有效的倒计时范围内选手按下抢答键才有效,产生有效按键后,其他人按键无效。在倒计时3秒时6号抢答成功的界面如下图所示。
4.关键元器件
主要用到的器件有:51单片机、8输入与非门74LS30、移位寄存器74HC595等,不同的设计方案不同,所使用的芯片也不同,这只是一个参考。74HC595只需要占用3个GPIO口即可控制多个数码管,而且还可以级联,在驱动数码管、LED点阵屏时非常有用。
在我的今日头条主页有视频和文章详细介绍了八路抢答器的制作过程,欢迎查看。
以上就是这个问题的回答,感谢留言、评论、转发。
更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。