13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
发表于 2011-8-11 22:11 | 显示全部楼层
单片机?音响?有关系吗?有!
举个例子,我们知道,我们做功放时90%都会加保护电路,而且99%都是一堆乱七八糟的零件,而使用单片机,只需要一个单片机、一个继电器,几个电阻和一个三级管就够了!
心动了吗?让我们一起走进单片机的殿堂吧~
传统的单片机教学,不是昂贵的编程器,就是昂贵而不实用的开发板,现在已经21世纪,让我们抛弃编程器,抛弃开发板!
我们经常以AT89S52来做单片机入门教学,但是时代的变迁,89S52已经落伍了,我们选择新一代的增强型8051单片机——STC12C5A32S2!
他比89S52有什么有点呢?
1.编程超级简单,成本不过15元
2.速度比传统8051单片机(89s52)快好几倍
3.最多可以有36个I/O口,比传统8051单片机多出了好几个(具体没数- -)
4.集成了复位、PCA、ADC,抛弃昂贵的扩展芯片
5.集成了内部RC振荡器,要求不高时连晶体振荡器都可以省去
6.I/O口拥有4种工作状态(传统8051工作状态、高阻态、推挽输出、开漏模式)
7.。。。
明天待续。。。

评分

参与人数 11经验 +45 魅力 +12 收起 理由
TongKei + 2 严重支持
xuyun111 + 1 严重支持
zl2115 + 2 + 2 谢谢!我正在学习!
zclmxx + 1 + 1 不错的。总有新学生嘛
6618i + 2 支持,HIFI加入单片元素,更好发挥DIY精神

查看全部评分

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 10:30 | 显示全部楼层
本帖最后由 591534671 于 2011-8-12 10:34 编辑

好了,继续。
我们说道,我们要抛弃编程器,抛弃开发板(这两个不用我解释了吧?不懂?百度把,一大堆),所以我选择了面包板。
我们就在面包板上实验,搭接电路。许多的单片机入门教学都是以一个LED闪烁开始,我们也不例外,但是需要准备的东西不多,一个单片机(STC12C5A32S2,也可以用20脚封装的STC12CXX系列,这个可以省去晶振),一个LED,一个电池盒,一个晶振。
开始在面包板上接电路了,非常简单,把单片机按下去,按照下面的电路图,接上面包板线(也可以用单芯的铜线、网线等代替)就可以了。
如果你喜欢焊板子,我也不阻止你,反正电路简单,但要注意要加芯片座,最好是活动式的。
图片1.png
因为是刚出厂的单片机,官方已经给他写进了一个程序,我们直接接好电路,接上电源就可以工作了。
在这里我们先不讲软件,我们再来玩一个流水灯。
还记得第一次接触单片机,用AT89的弄了一个流水灯,挺复杂的,还要反相芯片,但是用这款单片机,又可以简化了。
首先我们需要一个编程电路,也就是所谓的编程器。给你个清单把,下面是所需要的元器件
MAX232             1个
0.1μ(瓷片)      4个
串口母头(DB9) 1个
导线             若干
下面是电路图(引用)
在这里我建议你焊板子了,因为这个电路可以作为编程器使用,只要找到单片机的RXD和TXD,连接上这个电路就可以给所有的STC单片机编程了。
RS232_ISP_S.jpg
好了,下载线做好了,接下来是流水灯的电路图,我建议用多种颜色高亮的LED,这样做出来的效果很炫彩。
电路图:
QQ截图未命名.jpg
一共可以接八个LED,想一想,如果把LED排成文字,还能当招牌用呢~
硬件搞定,接下来是软件了,这一步很重要。
我们使用的是STC官方的下载软件,下载地址在www.stcmcu.com,软件名字叫STC-ISP
好了,我们开始把
打开软件,这是软件界面(版本不同可能有差异)
图片1.jpg
下载程序我们只需要左边的那一部分,所以单讲左边
首先选择单片机型号,因为我们用的是STC12C5A32S2,所以我们选择这个型号。
QQ截图未命名2.jpg
接下来打开程序文件。(文件在本段最后有提供下载,文件类型为hex文件)
QQ截图未命名3.jpg
然后选择一些选项(这些内容会详细讲解)
QQ截图未命名4.jpg
最后点击下载!
QQ截图未命名5.jpg
在这里要注意了,点击下载之后,要给单片机完全断电后再上电,也就是说先把电源完全关闭后再打开,这样才能成功下载程序。
怎么样,效果很酷炫把?



欣赏够了自己的杰作,我们来讲讲下载软件上的选项这部分。

首先是“下次冷启动后时钟源为”,这个意思是说,在你单片机下载完程序后完全断电在启动时所使用的时钟源,建议选择外部晶振,因为内部RC振荡器温漂比较严重。。。(STC15F系列例外,它内部有精准的时钟源,可以省去外部晶振)
那么这个“RESET pin”是什么意思呢?就是说,是否选择RST(复位)引脚为P4.7接口。注意,选择内部RC振荡器只能选择“仍为RESET”
接下来这些不用去管太多,固定是那样就OK了

流水灯程序
流水灯.rar (364 Bytes, 下载次数: 14546)

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 10:31 | 显示全部楼层
回复 30# 591534671


    图怎么全挂了T T

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 10:35 | 显示全部楼层
回复  591534671


    图怎么全挂了T T
591534671 发表于 2011-8-12 10:31



    编辑了下,可以了

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 10:40 | 显示全部楼层
回复 15# Lam耀


    贵了,我这才4元一片

22

主题

2

好友

2083

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
36676
帖子
2545
精华
0
经验
2083 点
金钱
2017 ¥
注册时间
2008-3-4
发表于 2011-8-12 10:41 | 显示全部楼层
STC的广告?在ourdev给骂得还不够吗?
swing 发表于 2011-8-12 08:22

什么情况?

1240

主题

14

好友

1822

积分
     

侠之大者 当前离线

农民

Rank: 6Rank: 6

UID
134883
帖子
25465
精华
0
经验
1822 点
金钱
1184 ¥
注册时间
2009-9-25
发表于 2011-8-12 10:44 | 显示全部楼层
本帖最后由 王小学 于 2011-8-12 10:47 编辑

楼主这么耐心地教学,让我很受感动。建议有评分能力的大侠,能给楼主以鼓励!要知道现在请个家教一小时要几十块啊,毕竟楼主费脑又费力的。

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 10:48 | 显示全部楼层
回复 6# 唐西


    STC的服务态度超级差,芯片有时可能会不稳定,开发产品就别用了,做实验、玩玩还是可以的

424

主题

3

好友

1万

积分
     

超级版主 当前离线

Rank: 8Rank: 8

UID
13663
帖子
13726
精华
6
经验
10608 点
金钱
8449 ¥
注册时间
2006-10-21

论坛版主 优秀版主 乐于助人 DIY大赛获奖

发表于 2011-8-12 10:54 | 显示全部楼层
本帖最后由 ahao 于 2011-8-24 09:13 编辑

帮楼主整理一下帖子,被删的楼层还请谅解。 请楼主继续下去,不要让帖子最后不了了之了,在此之前就有几位朋友发过类似的帖子最后由于种种原因都没能继续下去。 如果上传受限的话短信我我帮你编辑帖子。

我过段时间有空了也会发一个单片机的帖子,争取能录制一些视频发上来,其实网上这类单片机的学习视频挺多的,但是牵涉到音响方面的单片机视频好像还没有,我就填补一下空白。http://bbs.hifidiy.net/viewthread.php?tid=530303


有朋友说STC的不太招人喜欢,其实怎么说呢?如此廉价的东西你还能要求它怎样?又不是拿它来做登火星计划,一般的用途它表现的已经很不错了。我也正在玩STC12C5A**S2系列的单片机,说实话几块钱的东西功能倒是还挺实用的,比原来AT系列的可玩性要好。。。正在慢慢学习中。

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 11:02 | 显示全部楼层
回复 9# ahao


    呵呵,谢谢ahao大叔~我正在做第三期

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 11:02 | 显示全部楼层
回复 9# ahao


    呵呵,谢谢ahao大叔~我正在做第三期,要不咱一起做这个帖子?你录视频,我写文章

424

主题

3

好友

1万

积分
     

超级版主 当前离线

Rank: 8Rank: 8

UID
13663
帖子
13726
精华
6
经验
10608 点
金钱
8449 ¥
注册时间
2006-10-21

论坛版主 优秀版主 乐于助人 DIY大赛获奖

发表于 2011-8-12 11:05 | 显示全部楼层
什么情况?
唐西 发表于 2011-8-12 10:41


单片机论坛有很多人见到STC就像在本论坛见到huiwei一样,一定会有一帮人砸砖,更加让人唏嘘的是还会有一帮人云亦云者围观其实他们估计根本就没用过STC,现状就是这样。
  
不过话又说回来了STC的网站、资料看上去显得很山寨,还有稳定性也值得商榷,但是并没有网上说得那么离谱,所以它还是可以用用的,不要一见到就一脚踩死。

64

主题

1

好友

693

积分

职业侠客 当前在线

Rank: 5Rank: 5

UID
284130
帖子
1537
精华
0
经验
693 点
金钱
591 ¥
注册时间
2011-1-19
发表于 2011-8-12 11:11 | 显示全部楼层
学习

67

主题

0

好友

950

积分

职业侠客 当前离线

杏花疏影里,吹笛到天明

Rank: 5Rank: 5

UID
37928
帖子
2980
精华
0
经验
950 点
金钱
835 ¥
注册时间
2008-3-19
发表于 2011-8-12 11:14 | 显示全部楼层
N次都没学会的再跟着学学,怀疑自己智商太低了,呵呵。

157

主题

0

好友

1038

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
16006
帖子
2472
精华
2
经验
1038 点
金钱
839 ¥
注册时间
2006-12-15
发表于 2011-8-12 11:20 | 显示全部楼层
继续学习

22

主题

2

好友

2083

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
36676
帖子
2545
精华
0
经验
2083 点
金钱
2017 ¥
注册时间
2008-3-4
发表于 2011-8-12 11:35 | 显示全部楼层
回复 12# ahao
感谢ahao版!
也想学习单片机,也希望像您这样的,多介绍些通俗易懂的帖子来给我这样的小学生学习。
可能我对广告这个词敏感了
期待楼主完成连续的帖子
感谢楼主!

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 11:53 | 显示全部楼层
本帖最后由 591534671 于 2011-8-12 11:56 编辑

又开始上课啦~。。。
玩过了LED,我们来玩玩按键,也就是微动开关。
可能有朋友说,怎么不讲讲编程。哈哈,别急嘛,慢慢来,我会讲的,而且我也在学习编程之中,有些不对的地方还请一些朋友指正。
好了不啰嗦,进入正题。
各种微动开关
QQ截图未命名.jpg
QQ截图未命名1.jpg
还是老方法,我们先实验,再讲一些原理性、理论性的东西。
基于LED流水灯的电路,我们加上两个开关。
电路图:
1108121033f982d592ea07c04e.jpg
下面有三种玩法:
无锁开关:按下按键LED亮,松开LED灭
自锁开关:按下按键LED亮,再按一下LED灭(按键的读取这里会细讲)
亮度控制:按下A开关LED逐渐变亮,按下B开关LED逐渐变暗
这三种玩法电路图是一样的,放心的去实验吧,不需要改动电路,只是需要更新程序。搭建电路,下载程序,不用我说了,前面都有。(程序文件在最后有提供下载,类型为hex文件)
哈哈,如果我们用一个二十脚的STC12CXX系列单片机(接到P1口),加两个开关,不就可以做成调光台灯了?

这里插播一段,说说单片机的接口,说说什么叫I/O口。
我想大多数烧友们应该知道了,这里是给没接触过单片机的友友讲讲什么叫I/O口。
I/O口是一个缩写,可以理解为IN/OUT,翻译成中文就是输入/输出接口,它可以输入或输出高电平(电平不用讲了吧。。。百度一大堆),比如我们的第一个无锁开关,就是利用I/O口的这个功能。接微动开关的那个引脚就是一个I/O口,他一直在读取微动开关的电平数据,也就是输入,如果I/O的电平有变化(可以在程序里设置),那么单片机就立刻将P1口(一组I/O口)的电平拉低,LED被点亮,这就是输出电平。说白了就相当于人的手和脚,可以感受信息,也可以做动作。

说完了I/O口,我们来讲讲按键的读取。
在自锁开关中,有一个问题是初学者必须知道的,就是开关去抖动处理。
抖动?我按下开关,不带走一丝抖动,怎么会呢?我们打个比方,比如你在地上跳,你感觉不到震动,但是用精密的仪器来测量,大地确实抖动了,只是很小而已。什么?还不信?好,当你按下开关时,是不是有滴答的声音?咱玩音响功放的都知道,声音由震动产生。相信了吧?
这种抖动对于人类来说没什么大问题,但是对于单片机,却是个大问题,因为单片机是以毫秒级为单位来处理信息的,这样会引起单片机无法读取准确的按键信息而导致按键失灵,那么,怎么来去掉抖动呢?
有两种方法,一是硬件方法,就是在按键上加滤波电容,就像我们的电源滤波一样,但是这种方法费钱又得不到很好的效果,所以我们大多数都采用软件方法。

if( KEY == 0 ){
            delay(20);
            if(KEY == 0){
        LED = ~LED;

上面是一键锁定开关的一段程序,看不懂没关系,我带你慢慢看。
首先是“if( KEY == 0 ){”这里是说判断按键是否被按下,按下后便执行{}内的程序。
下面重点是这句:“delay(20);”这个意思是说,调用前面的延时程序,延时20毫秒,也就是抖动的那一段时间,这段时间单片机只是在做无聊的循环延时程序,20毫秒后,再读取按键数据,这时抖动已经结束,这样读取的按键数据就是稳定的数据了。
之后也是判断,“if( KEY == 0 ){”说的是如果按键还是被按下,便执行{}内的程序。
最后,“LED=~LED”点亮LED。
在编程时会重点讲这些内容,现在大致了解就行了。

嗯,我们又学会了按键的使用,继续前进!
程序: 按键相关程序.rar (723 Bytes, 下载次数: 14485)

35

主题

2

好友

3079

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
27774
帖子
3054
精华
0
经验
3079 点
金钱
3027 ¥
注册时间
2007-9-27
发表于 2011-8-12 12:02 | 显示全部楼层
不好意思,在其他坛子看到几次类似的开头,误解LZ了,希望继续~

45

主题

7

好友

1178

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
18757
帖子
1815
精华
0
经验
1178 点
金钱
1091 ¥
注册时间
2007-2-10
发表于 2011-8-12 12:06 | 显示全部楼层
我也想学的,但不知哪条筋不对,就学不会,所以,万能编程器都卖了!
还想再努力一回!再学习!

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-8-12 12:20 | 显示全部楼层
回复 18# swing


    没事,我相信之后把我这些讲过的可以出书了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部