产品选型

用什么51单片机 51单片机编程入门用什么单片机比较好?

小编 2024-10-11 产品选型 23 0

51单片机编程入门用什么单片机比较好?

每个男人心中其实都有一个”钢铁侠”梦。

希望自己拥有像男主一样的技术,通过技术去改变世界。

不过想做到这一步,需要学的东西实在太多太多,可能这辈子都学不完。

就是这种遥不可及的事情,让很多人望而却步。

每个牛逼的大神,都是从零基础开始,不是他比你聪明多少,而是他能屡遭挫败,而热情不减。

其实,都是一个沉淀的过程,如果你真的喜欢科学,喜欢技术。

我们应该把目光拉长到5年,10年,20年,甚至当作一辈子的事业和爱好。

最后,这个爱好一定也会给你巨大的回报。

就像学习单片机一样。

最近有个新学员,他是直接学的STM32,虽然能把外设用起来,但是还是感觉自己啥也不会。

每碰到一个问题,如果不百度,根本不知道是怎么回事。

后面跟他聊了才发现,他也比较浮躁,比较心急想学完出去找工作,所以忽略51直接学了stm32单片机。

我从事了研发工作10年,当初自己的自学51单片机过来的,一路学过来还算顺利。

所以,我的路也一定适合大多数人去参考。

我一直跟学员强调,不管你能不能直接学会stm32,都要给我老实从51单片机开始。

虽然stm32现在用得很多,很多公司也要求要会stm32。

但是我的经验告诉我,只要你掌握了一款单片机,其它的基本很快就可以上手。

而51单片机是基础,开发模式也更加底层,需要配置寄存器来把单片机资源用起来,这种有助于你理解单片机的原理。

有这块的基础知识铺垫,你后面的路会好走很多。

Stm32光寄存器就几百上千个,首先这个芯片的定位就不是给新手学单片机用的,而是给工程师快速开发产品用的。

它的开发模式和51单片机完全不同,51是配置寄存器,而stm32是使用原厂提供的固件库来使用单片机资源。

虽然stm32也可以用寄存器来开发,但是一般实际产品开发很少人会这么干,除非闲的蛋疼。

所以,你直接学stm32的话,基础知识缺失会比较多。

会导致的问题就是,每碰到一个问题你都一脸懵逼,不知所以然。

只能在网上搜,搜不出来根本不知道从哪里入手解决。

看起来你像是走了捷径,实际你花的时间或许更长。

1.51单片机编程入门选什么单片机?

51单片机的话目前主流都是使用stc的,因为价格比较便宜,烧录比较方便,直接串口就能烧录,很多芯片光烧录器就要几百块。

2.怎么学习比较好?

相信大多数人入门的时候都是通过开发板学习的,开发板也有配套的视频教程,新手自学也能学会。

通过开发板虽然能把单片机外设系统学一下,但是也会伴随2个问题:

不知道所学的知识实际应用在哪里 学完以后做项目还是无从下手

如果你有以上两个问题,不要着急,这是正常的,我当初也经历过这个阶段。

我做了至少不下30个商用产品,用过各种各样的单片机,我总结出了一个经验。

虽然我们是做单片机开发,但是我觉得单片机并不是真正学习的重点,它只是工具

很多人为什么说单片机没前途,就是他的眼界只局限在这个工具本身,如何通过工具去产生价值才是决定你前途的。

真正重要的是我们做项目的能力,也就是编程水平和思维。

很多人搞不懂重点,把大量时间浪费在学习单片机身上,比如说stm32单片机,用库觉得还不够深入,还要去学寄存器配置,学完最后发现还是不会做项目。

所以我们无际单片机编程从开始的定位就是以项目驱动,带学员通过项目顺带把单片机学了,真正做到学以致用,理解是最深刻的。

经过几个项目的历练,你的领悟会上一个层次,真正做到对任意一款单片机使用都游刃有余。

当然,通过项目去学习也是有弊端的,就是产品是以功能为设计原则,可能不会把单片机每个资源都用到,所以学习也没那么全面。

不过综合评估的话,还是通过项目去学习比较快,等你有经验了,很多东西都能迎刃而解。

从一个简单的项目,学会单片机的使用:51单片机设计的8路抢答器

单片机作为可编程器件,简化了电路的设计、方便了逻辑设计,从此再也不用使用一大堆电路做硬件逻辑了。拆开任何一件功能稍微复杂一点电子产品,里边都可以看到单片机的身影。学会单片机对找工作也很有利,而且待遇还不错,今天就从实例分享的角度和大家共享一个案例,用单片机来实现一个抢答器。

在电视节目中,经常看到抢答器出现在知识竞赛、答题竞赛节目中,如江苏卫视的《一站到底》,抢答器可以准确、公正、直观、公平的显示出抢答选手的编号,可以更好的促进各选手之间的竞争意识,营造紧张的抢答气氛,增加节目的趣味性和观赏性。

抢答器的设计框图

抢答器要实现如下功能:抢答功能、显示功能、倒计时功能、自锁功能。节目后台需要控场,拥有抢答器的绝对控制权。功能需求 如下:

开始、结束功能 :只有按下开始按键后,现场选手才可以开始抢答,否则抢答事件不被处理视为无效;自锁、互锁功能 :为了保证抢答的公平性,在开始抢答后,第一个按下抢答的视为有效抢答,产生有效抢答后其他抢答视为无效;计时、设置功能 :后台/主持人可以设置抢答时间的长短,以倒数秒的方式显示,增强紧张气氛;显示、声音功能 :用数码管显示倒计时秒数,选手抢答成功后显示抢答者编号和剩余时间;

在该设计中,按键采用机械式的四腿按键来实现,按键数量10个;显示采用三位数码管来实现,两位显示时间,一位显示选手编号;声音提示用蜂鸣器来实现。核心器件采用51单片机来实现。其功能框图如下图所示。

1-抢答器功能框图

按键输入电路设计

该抢答器设计中总共有10个按键,其中8个按键用于给用户抢答用,所代表的编号为1-8,另外两个按键分别为开始键和结束键,由主持人或者后台控制。由于8路输入抢答按键具有互锁功能,所以只要有一个有效输入后,其他抢答都是无效的,这个功能可以在程序中实现,为了方便程序设计,这里采用8输入与非门来实现,所用型号为74LS30,该与非门有8路输入,1个输出,功能框图如下所示。

2-74LS30与非门框图

8个按键作为74LS30的输入,输出通过NPN三极管接入51单片机的外部中断0接口,以中断的方式实现按键功能的检测,单片机的中断资源为低电平有效,为了提高电路稳定性在三极管的集电极上加入上拉电阻,以防误动作。

3-按键输入电路设计

开始和结束两个按键采用独立式按键设计,占用掉单片机的两个IO口,程序中采用轮询来实现。

数码管显示电路设计

显示部分采用数码管来实现,根据设计要求,两位用于显示倒计时时间,最大可以显示99;一位用于显示选手编号,故需要3颗数码管,该设计中采用共阳数码管来实现,所谓共阳数码管是指公共端接高电平,段选管脚接低电平后相应的字段才会被点亮。共阴数码管正好相反,公共端接低电平,段选管脚接高电平后相应的字段才会被点亮。数码管的实物图如下所示。

4-数码管实物图

数码管的引脚比较多,除了8个段选管脚外,还有公共端/位选引脚,如果用三颗独立的数码管可能需要较多单片机引脚资源,为了解决这个问题,本例设计采用74HC595作为数码管驱动。74HC595是串入并出的移位寄存器,只需要三个引脚就可以控制8个引脚的输出,而且还可以实现级联。所以74HC595通常在数码管驱动和点阵屏中应用比较多。

这三颗数码管中,分为时间显示和编号显示两组,用到三颗74HC595,其中两颗级联用于控制时间显示的数码管,总共用到6个单片机的IO口,驱动电路如下图所示。

5-数码管驱动电路

蜂鸣器发声电路设计

需求中提到发声设计,当有效按键事件发生时,蜂鸣器发声作为提示音,当倒计时进入5秒之内后还没有人按键抢答时,蜂鸣器每隔1秒发声,制造现场紧张的气氛,提高节目的观赏性和娱乐性,增强节目效果。本例中选择了蜂鸣器,蜂鸣器驱动电路如下图所示。

6-蜂鸣器驱动电路

由于单片机的IO口驱动能力有限,所以采用三极管来驱动,这里选用了PNP三极管。三极管驱动蜂鸣器时工作于饱和状态,为了让三极管充分饱和,将蜂鸣器接在了三极管的集电极,这个地方初学者在设计电路时要注意。图中当单片机的IO口输出低电平时蜂鸣器工作发声。

抢答器程序设计

该设计使用keil5作为编程环境,涉及到数码管显示、按键检测/互锁、蜂鸣器发声、定时器等相关功能模块的程序编写。程序设计的流程图如下所示。

7-程序设计流程图

程序的功能逻辑介绍如下,上电后数码管显示FFF字样,并首先检测“开始”按键是否按下,如果没有按下开始按键则表示抢答未开始。如果按下了开始按键,抢答器启动,秒显示开始倒计时,有人按下抢答键时蜂鸣器发声、倒计时停止并显示抢答者编号,整个抢答事件结束,直到主持人/后台按下结束按键后再显示FFF。如果倒计时进入5秒内,仍未有人抢答,则每个整秒蜂鸣器响一次,直至结束。

以上为程序逻辑设计和程序的流程图讲解,下面介绍各功能模块的程序设计。

首先介绍数码管的程序编写 ,再编写程序时,都会预先定义好数码管的字段表,根据共阳数码管和共阴数码管的不同,其字段表也是不一样的,但是两者是互补的,数码管可显示的字段表如下图所示。

8-数码管字段表

程序代码如下:

/*共阳数码管的0-9数字字码表*/

uchar code seg_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x8e,0xff};

其次是按键部分 ,抢答按键采用中断来实现,开始/结束按键采用轮询实现,部分定义代码如下所示。

//定义抢答按键

sbit KEY_1=P0^0; //1

sbit KEY_2=P0^1; //2

sbit KEY_3=P0^2; //3

sbit KEY_4=P0^3; //4

sbit KEY_5=P0^4; //5

sbit KEY_6=P0^5; //6

sbit KEY_7=P0^6; //6

sbit KEY_8=P0^7; //6

//定义开始/结束按键

sbit START = P2^4;

sbit STOP = P2^5;

仿真电路的设计和验证

在做板子之前,先用Proteus仿真软件做了仿真。Proteus仿真支持51单片机并可以实现运行程序的功能,当把程序写好后加载至Proteus即可实现程序的调试,Proteus还可以与Keil软件实现联调功能。所设计的仿真电路如下图所示。

9-仿真电路-初始显示FFF字样

在上电初期,显示“FFF”字样,前两个数码管代表倒计时时间,后一个数码管代表抢答者的编号。按下开始按键后,抢答器开始工作,如下图所示。

10-抢答成功界面

上图表示,在倒计时时间还有7秒的时候,5号选手完成了有效抢答,直至主持人/后台按下结束后再显示FFF,否则一直显示该界面。

抢答器的焊接调试

为了实现功能验证,选择用万用板手工焊接实现这个设计。最终的实物图如下所示:

11-最终实物图正面

电源供电为DC5V,可以使用电池盒供电,也可以选择5V输出的手机充电器供电,导线走在了电路板正面,虽然丑了点,但是方便一点。电路板的反面如下图所示。

12-最终实物图背面

反面是用焊锡连接实现的。由于功能不是很复杂,程序写完后,调试了没几次就完成了功能,前文中所描述的功能都实现了。按键互锁的功能也实现了。下图是通电运行的界面,表示5号抢答者在倒计时28秒的时候抢答成功,这时候其他抢答者的按键无效。只有开始或者结束按键是其作用的。

13-抢答成功界面

该抢答器的设计虽然是一个很简单的练手项目,但是却涉及到了单片机中最常用的外设电路,可以帮助初学者熟悉数码管、按键、蜂鸣器的使用和控制方法。初学者可以借助这个产品熟悉单片机开发过程中所用的各种软件和产品开发的流程。

对这个电路进行PCB Layout,设计个外壳就成了一个不错的产品。还可以增加蓝牙模块或者WiFi模块,实现电子屏的控制和显示,再把功能完善一下,就可以用在舞台上了。

相关问答

51单片机 能做什么?

1.灯光控制。如模拟交通灯,心形流水灯,光立方,广州塔,配上不同颜色的LED灯和蜂鸣器或音乐播放器,表白神器,送给心仪的妹子(小心被拉黑)2.电子时钟,配上按...

51单片机 采用的什么算法?

51单片机PID的算法实现程序,用整型变量来实现PID算法,由于是用整型数来做的,所以也不是很精确,但是对于很多的使用场合,这个精度也够了,关于系数和采样电压全...

51单片机 和52单片机的区别?_作业帮

[最佳回答]52有定时器3个,51只有2个定时器52内部RAM为256字节,51为128字节

开发 51单片机用什么 软件编程?

51单片机采用keilC51编写程序。51单片机采用keilC51编写程序。

51单片机 io控制方式?

共有两种控制方式:1,无条件送方式无条件传送也称为同步程序传送.只有那些一直为数据I/O传送作好准备的外部设备,才能使用无条件传送方式.因为在进行I/O操作...

51单片机 ,有哪本书比较好可以推荐-ZOL问答

我是用这本《MCS-51.96系列单片机原理及应用》自学的,觉得还不错。王云51单片机C语言程序设计教程,学校实验室就用的这本,结合老师的云龙51单片机视频看,学起来...

51单片机 可以用DOS吗?

51单片机可以用DOS的。因为从功能上来说可以,但是得改汇编,其实就相当于自己重新实现了一个shell和一个文件系统,可以自己定义外设,使得操作方法和dos一模一...

51单片机 运行需要多少伏电源-ZOL问答

有3种,5V,3.3V,1.8V其中5V和3.3V单片机较常用,不能通用,如果你部明确你手上的单片机是几伏的,可以下载芯片资料,写的很清楚因单片机芯片而异。具体要看芯片资...

51单片机 支持什么芯片?

1.通信芯片:PL2303--USB转TTL串口。MAX232---RS232转TTL2.实时时钟芯片,比较常用的有DS1302,PCF8563,DS12C8873.EEPROM存储芯片,如AT2...

51单片机 能直接运行的文件格式是?

51单片机能直接运行的文件是.bin,但编译软件生成的是.hex文件,它们的差别是后者包含了8位地址偏移量,而前者是纯粹的程序代码。在烧录时,下载工具装载的是.h...

猜你喜欢