STC8G-51单片机开发板

1年前

简介:基于STC8G2K64S4单片机的51单片机开发板,用它,既可以学习全部的单片机基础知识,又可以拓展出很多的产品级项目。

开源协议: GPL 3.0

  • 1.9k
  • 14
  • 31

描述

学单片机就必须要有一个单片机开发板,道理很简单:如果你要学车,你只看如何开车的视频教程,而不去亲自上车,那估计一万年也学不会。

 

那什么样的开发板,适合新手呢?

 

第一个,一定要可以学习和实操全部的单片机基础知识。

 

这些基础知识包含:IO口、PWM、定时器、ADC模数转换、串口通信、I2C通信、SPI通信、并口通信、看门狗、低功耗电源管理等。

 

宏晶STC51单片机无疑是zui适合的,首先它的教材渗透到了各大高校,好多老师也都是使用它进行教学。再有,它的确是非常简单,网上资料超级丰富,特别适合初学者。

 

第二个,除了学到上面的基础知识外,还可以在开发板上做一些项目出来。

 

好多人拿普通开发板学习以后,感觉都学会了,却又还感觉什么都做不了。一个人感觉也就算了,偏偏是几乎所有人都是这样的感觉,你说奇怪不奇怪?

 

究其原因,就是缺少项目的操练。你说那些普通的开发板上,要说也有项目,不过呢,都是一些“哄鬼”的小玩意,比如什么智能浇花系统、烟雾报警系统,做出来的东西,实用性太差,连自己都不相信这个系统能用在实际中...

 

因为实际应用中,你做的那个浇花系统。首先从外观上看,乱七八糟,一看就不是个产品。然后,线绕的那么多,稳定性实在太差,谁看了都给差评!

 

考虑到以上两点,我们看看能不能设计出一款可以完美解决以上两个问题的单片机开发板。

 

-----------我是分割线----------

 

第一个:要可以学习全部的单片机基础知识。

 

1、IO口

 

IO口就是输出输出口,单片机归根结底,耍的就是IO,作为初学者,IO口是开启新世界的钥匙,必学!

 

作为“输入口”学习,那没有比“按键”更适合初学者的了,按键在教我们理解引脚的输入时,功不可没!不论“触摸”多么占据社会的风潮,按键是必须放到开发板上的。

 

放多少个呢,多了浪费,少了不够,我们就放3个按键到开发板吧,可以实现大部分的电子项目了。

 

作为“输出口”学习,那没有比“LED”更适合初学者的了。多少初学者,因为点亮一个LED,而兴奋不已。

 

为了增加趣味性,这里我们使用红黄绿3种颜色,3个LED,既可以实现3LED的流水灯,又可以模仿红绿灯系统的运行过程,熟悉C语言的执行流程。

 

2、PWM脉宽调制

 

PWM输出,也是初学者必须掌握的一种知识,可用于呼吸灯、电机控制、舵机控制等场合。搞单片机的不会PWM,那不是搞笑了嘛。

 

利用上面的LED,可以做呼吸灯实验,这个是利用调PWM的占空比实现的。

 

再来一个调频的吧,加一个无源蜂鸣器,记住,是无源的,咱不要有源的,无源蜂鸣器配合PWM,可以输出do ri mi fa so la xi音调,制作音乐不是梦。

 

用IO口模拟PWM,可以增加初学者对PWM原理的理解,不过,模拟PWM后,单片机恐怕再不能干其它事情,所以,如果单片机有硬件PWM,那就完美了...先学模拟PWM理解原理,再使用硬件PWM做更多项目。

 

3、定时器、UART串口、看门狗

 

这几项内容,是普通单片机的标配,当然STC单片机都有。

 

4、ADC模数转换

 

万物互联,传感器大爆发,ADC作为一种可以把模拟电压转换成数字电压的外设,越来越需要。

 

所以我们还需要找一款自带ADC外设的单片机。

 

用ADC做什么实验学习呢?不如给我们的产品中加一个锂电池,用ADC来测量电池电压。

 

开发板加锂电池,这个主意不错,可以让我们的开发板制作更多移动便携项目。

 

5、I2C口

 

以前,我们学习I2C通信,总是喜欢用24C02来教学,但是,STC单片机本身已经自带EERPOM,再在电路中接一个24C02,总感觉哪里不妥。

 

不如,我们找一款I2C通信的其它芯片,选来选去,就选3轴加速度传感器吧,有了它,不仅可以学习I2C通信,还可以给我们带来更多的无限创意。

 

6、SPI口

 

考虑到产品的趣味性,这个开发板,我们必须带一个屏幕,屏幕上要显示汉字,那就必须要一颗存储容量足够大的外部FLASH芯片,用来存放汉字的字模。

 

这里我们选择SPI口通信的25Q64,8M容量,可以放好几种不同字体、不同像素大小的字库。

 

7、并口通信

 

以上提到的UART串口、I2C口、SPI口,都是串行通信的典范,几乎所有的外部传感器和物联网通信模块,都使用这3种其中的一种。

 

为了让初学者更好的理解串行通信和并行通信的区别,我们必须要加一个并行通信的器件。

 

我们选择8位并行通信的液晶屏,12864就是8位并行通信,不过,12864和彩色液晶屏比起来,效果差了点,况且,8位并口驱动的彩色TFT,接线方法和12864一模一样,学习同样的知识,不如来个效果好的吧。

 

常见的开发板上配的TFT,是2.4英寸、2.8英寸、3.2英寸,它们的分辨率都是240*320,而且都是普通的正视屏,稍微歪着看,就“走色了”,这种效果的屏,做产品已经不被人接受了,就好像你用了固定硬盘后再用机械硬盘的感觉是一样的。

 

320*240的分辨率,对51单片机来说,其实已经很吃力了,我们就不追求更高分辨率的屏了,但是,我们知道,在同样的分辨率下,越小的屏,越清晰,效果越好,所以,我们从这一点入手,选择2.0英寸的屏。

 

这次,必须要选择IPS多角度屏,这种屏,才是我们现在人们可以接受的。我们既然要在开发板上做项目,那就必须做成产品级的。

 

8、低功耗电源管理

 

这个就不必多说了,低功耗就是电子产品的趋势。所以,我们需要单片机带低功耗管理单元,以方便初学者学习。

 

----------我是分隔线----------

 

以上呢,就是我们对开发板的要求,综合以上因素,我们选择STC最新推出的STC8G2K64S4,作为开发板的主控芯片。

 

这款单片机,带10位ADC、硬件PWM、硬件I2C、硬件SPI、4个UART串口、5个16位定时器、低功耗管理单元,简直是为初学者量身定制的单片机。

 

----------我是分割线----------

 

第二个:除了学习基础知识,还要能做产品级项目

 

有人说,这太过分了,既能学基础,还能做产品,你咋不上天呢?

 

这个还真被我给想到了,你们接着看。

 

普通开发板,考虑到开发需求,会把所有的引脚都用排针引出,然后呢,又不能被屏幕挡住,所以做的个头比较大。

 

但是呢,用排针引出的那些引脚,绝大多数都已经被开发板上的芯片使用了,很少有人在使用这些引脚连接外部模块。

 

其实呢,我们只需要引出开发板上芯片没有使用过的单片机引脚就可以,而且呢,我们可以把排针或者排母放到电路板的一面,把液晶屏放到电路板的另一面,这样就可以缩小电路板体积,更加的贴近实际的产品。

 

另外,开发板上引出的引脚,比如要有普通IO、PWM口、UART串口、I2C口、SPI口、ADC模数转换口,以方便连接更多的外部传感器和通信模块。

 

--------我是分割线还是分隔线--------

 

锂电池要拔下来,再配个充电器?不不不,那是古老的电子产品。

 

我们给开发板上加一个锂电池充电芯片就可以了,比如TP4056。

 

再加一个USB转TTL芯片CH340,实现程序下载和串口通信。

 

STC程序下载麻烦,需要强制开发板断电和上电?

 

不要紧,我们给他加一个按键电源开关,只需轻轻一点,就可以实现下载,还能当做复位按键,一举两得。

 

------搞不清是分割线还是分隔线------

 

综合以上考虑因素,开发板的原理图就出炉了。

 

做好PCB。

 

3D打印个外壳上去吧。

 

实测,3D打印的外壳,不耐摔,只要掉地上,摔烂的几率非常大,不要问我是怎么知道的...

 

既然要做产品级,我们还是找个模具厂做壳吧,虽然有点贵,但模具做出的壳子,手感和质量都是非常OK的,也是非常哈啦瘦的...

 

背面的那些引脚,不如再把引脚名称加上去,方便我们连接外部模块。如下所示:

 

因为背面外壳空间有限,只能写它的IO引脚名称,那些复用的引脚名称,就看下面这张图,我要的UART、I2C、SPI等,应有尽有。

 

开发板做好了,当然还要做好对应的例程代码,用于学习。

 

首先,针对全部基础知识,做好基础例程。

 

基础例程学完了,那总得做点项目吧?来,应用例程也做好。

 

想知道应用例程和实际产品相差多大?来,上图。

 

B站视频教程:

https://www.bilibili.com/video/BV1QU4y1t7JA/

 

老铁们支持的话,下面是淘宝链接:

https://item.taobao.com/item.htm?ft=t&id=645481198623

 

例程等全部资料下载链接:

链接:https://pan.baidu.com/s/1Wbdvx-enD0m9RHfIpnuOWg 
提取码:w1cv

 

 

文档

51学习机原理图

在编辑器中打开

BOM

ID Name Designator Quantity
1 MLT-7525 B1 1
2 100nF C1,C10,C12,C16,C17,C19 6
3 10nF C4,C5,C13,C14,C15,C18 6
4 10uF C6 1
5 1uF C2,C3,C7,C8,C20 5
6 10uF C9,C11 2
7 B5817W D1,D2,D7 3
8 LED-TH-3mm_R D3,D4 2
9 LED-TH-3mm_Y D6 1
10 LED-TH-3mm_G D5,D8 2
11 HDR-F-2.54_1x10 H1 1
12 HDR-F-2.54_2x4 H2 1
13 HDR-F-2.54_1x8 H3 1
14 KEY KEY1,KEY2,KEY3,KEY4 4
15 ZH125 P1 1
16 SI2301 Q1,Q2,Q3 3
17 100k R1,R2 2
18 2k R3,R11,R13 3
19 10k R4,R5,R8,R9,R16 5
20 10R R6 1
21 1k R7,R10,R12,R14 4
22 4.7k R15,R17,R18 3
23 SW_SMD SW1 1
24 STC8G2K64S4 U1 1
25 PST6206 U2 1
26 CH340E U3 1
27 ME6211C33 U4 1
28 TFT U5 1
29 TP4065 U6 1
30 QMA7981 U7 1
31 GD25Q64 U8 1
32 micro_USB USB1 1

展开

工程成员

服务时间

周一至周五 9:00~18:00
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn