51单片机学习笔记电子电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 入门篇-房门开关485通信
1个月都在电子电路上没有进展,去年的夏天,花了10天时间学习了郭天祥的视频教程,收获很多,于是从网上买了个开发板,150多吧。
然后又去了几次电子市场,一开始没经验,20*30的面包板15元买了一片。
102的电容买了1000个。
用学到的东西,在面包板上做了一个485通信的,通过低电平触发报警,根据不同的报警点,在led数码管上显示指定的位置。
比如1楼后门是1,前门是2.
触发后,通过485发送给pc上位,取得报警点信息。
可以计算几天来,我家各个门的开门次数和开门时间。
比较无聊吧。
还是学习为主。
起码在面包板上实现了。
1 通过这个学会了proteus制作自定义元件和封装
2 学会proteus出pcb
3 学会proteus仿真51配合keil3
4 郭天祥是一个比较伟大的老师,起码比我大学任何一个老师都要好。
10天学会了大学2个学期需要学会的内容。
不过从我的一些基础知识可能也帮了不少忙。
我以前都用汇编,用了c之后发现,51的程序变的更加的生动和形象。
因为有开发板,所以很多都是通过开发板搞出来的,但是中间有个插曲,开发板的led数码管是共阳我的是共阴,于是每次都要在p1上取反码。
困难:
1 万能板只有底层布线,碰到飞线很麻烦。
2 51的管脚很多,我的万能板不是那种万能洞洞板,而是比较特殊有特殊横线那种。
Pcb 布线不太顺利,所以做起来有点麻烦。
3 proteus7.7对中文的支持不是很好。
如果你用来中文补丁,那么你做的自定义元件封装很有可能无法保存,而是直接报错。
这个问题困扰了我好几天。
同样的问题后来又出现在pcb 和原理图上。
如果出现中文则,原理图仿真会出现错误,pcb可以自动布局,但是无法自动布线。
汉化很有问题,只好用英文原版的。
4 一个人学习很是困难,碰到问题上的最多的是csdn,百度知道,百度文库。
其他什么qq 群基本都是学生,或者没耐心帮你的人。
要是有几个人就好了。
通过yy或者语音聊天,大家一起讨论分享,该有多好。
2 车库延时光敏电路
背景:家里的车库内有个遥控的卷闸门,白天进车库没问题,但是晚上,倒车进去总是黑,本身车库是有电灯的,但是需要人工去开关,我想能不能做个判断电路,白天不触发,晚上触发的时候,一旦车库门有动作,则打开电灯,并且在门动作完成后,延时1分钟后自动关灯。
思路:延时可以RC电路来来实现,光强度用光敏电阻实现。
2个开关量共同实现一个与的运算来控制一个总的继电器。
思路2 :完全使用单片机来实现。
通过判断2个触发量来实现控制。
2种方法单片机更简单,但是电路复杂,成本较高。
只用了3个io口。
所以确定了用模拟电路来做
模电真是麻烦啊
各种莫名其妙
/read-kc-tid-50867.html出现一些问题。
YS1的e没有可靠接地于是出现光敏控制失灵。
在使用npn做开关的时候。
E必须可靠接,那么be电压在0.7以上的话,可以工作在开关区,如果不是可靠接地,那么be电压是不可靠的。
后来解决了这个问题。
RC延时很简单。
一次调试通过
光敏GM1就麻烦了。
因为车库的亮度是不可靠的。
于是需要加个RV2电位器来调整,但是该电路存在其实电位器同样不可靠。
RV-TEST实际是不存在的,是个测试用的
比如白天。
光敏电阻为0,如果把电位器也设置到0,则电位器的触点会出现较大电流,导致电位器冒烟。
所以需要给电位器503加个电流电阻。
我只有一个503,于是导致我的工作中断,一口气又从淘宝买了好多。
买了51的目的的准备搞个自动浇花的系统,每天定时浇花。
反正浇花的马达已经有了。
目前就在等新的电位器到货中2012-10-7
DIP40IC 座
SYB-130面包板实验板测试板万能板
弯头单排针40*1 2.54mm 弯头排针
电容包电解电容、瓷片电容、独石电容共12种规格混装
晶振11.0592M
三极管包
S9012、13、14、15、8550、8050 TO-92 DIP 共60只
〖全新原装〗STC89C52RC DIP STC89C52 4.5元/1个
74HC573N DIP 八进制 3 态非反转透明锁存器
1/4W 五色环电阻包10欧-1M ,共32种 每种10个为1组
蓝白可调电位器包(卧式) 10只常用规格 每种5只
面包板专用连接线 面包板线 面包板连接线,一共63到65条左右
电阻排 102J(1K)
蓝白可调电位器 (卧式)100欧(101)
DHT11 温湿度传感器 温湿度探头 数字输出 送例程
6.80
该电路采用了12v 0.8a供电,因为我的继电器是从空调上拆下的,只有12v。
电路完全是根据proteus的pcb图画的。
先画好pcb然后截图,镜像反转,让后照着图片用记号笔直接在板子上画好,如果是top飞线的,我就在底层画个需要飞的2个点各标注一个英文字,那么下次就可以直接把该2点飞线连接起来。
这个还是比较好的。
方便快捷
双屏幕做这种设计还是比较不错的
电路上的好多器件都是从旧的设备上拆下来的,所以很是麻烦啊。
不能设计主导来展示我的想法,往往是器件主导,我有什么元件我才能做什么事情,而不是我想做就能做的。
要是能去大学的实验室就好了。
2012-10-11
经过一系列的测试。
最后还是失败了。
但是已经有点眉目了。
9014上电流的损失较大造成。
12v经过整个链路后。
无法有效控制12v的继电器。
3 数码管时钟+马达驱动+遥控+温度+调节
思路:既然我开发板,573 138 遥控接收头,温度传感器都有了。
我可以做个综合的设计了。
由于没有1302 我的时钟还是不能掉电,但是我有纽扣电池,所以我得在设计中加入备用电池设计。
一天时间设计了一个74hc138译码器做的数字时钟电路,从原理图上已经说的过去了。
但是问题出现,用底层单层布线,实现行不通。
估计显示还是用1602来做的比较好。
有个捡来的双字7seg器件。
18脚的,于是做了一个自定义的器件来匹配他,一个个脚测试过去。
最终得出类型的共阴的数码管。
没有DP点的。
自己做的器件只可以pcb出图,没有仿真功能,据网上教程说是可以自己做仿真,但是我没有深入。
我只能做到pcb出图。
51的程序还没完全写好。
2天个过程完全是为了验证怎么更好的使用proteus来仿真和pcb。
看来如果采用热转印的
办法线的宽度和线间距应该是25th比较合适的样子。
太细的话转印后会很淡。
关于功能我想到是。
1 有时钟
可以通过485上位软件来校时。
按键校时
2 有定时器,可以定时开关继电器来浇花。
3 定时器来开关车库的门灯
4 显示温度能上传传到pc上位。
调试的过程最好依托我有的开发板。
所以一些io必须和开发板一致。
这样可以极大的简化开发环境。
4 数码管时钟+马达驱动+遥控+温度+调节(后续)
经过上次的pcb排版后发现。
如果单面板做6个8字显示确实不理想。
必定需要双面板。
走线异常麻烦。
本来我也想做个第一次用热转印就用双面的。
但是我没有双面的pcb。
这该死的淘宝店主。
也不送我一块。
我决定还是用1602来做显示。
现在在放水。
洗完澡我就来设计这个1602的设计。
2012/10/12晚上19:53
根据我有的开发板,我就按我开发板的原理图做了1602的设计,proteus的1602有,但是没有15 16脚。
于是自己做个封装。
好多器件都没哟。
能仿真不能pcb。
麻烦。
都只好自己做了。
但是自己做的就没有仿真效果
2012/10/14已经完成。
准备去热转印了。
红色都是飞线。
所以做的的很特殊。
如果是软件上下层自动布线则是这样。
还是双面的好啊。
单面的真是麻烦。
我还买了那么多单面的pcb板子。
以后麻烦了。
浪费了。
出版了!!!
进过实践的检验。
结论如下。
1、布线我原来以为用t20的比较好。
实际上热转印很理想。
T15就差不多可以了。
T12可
能太细了。
如果出现偏差。
则你用油性笔修改的时候会很难在2个t12之间做到不碰到。
2 焊盘焊盘我发现默认的Dip40封装的出来的图,焊盘是个句号。
这样的话实际操作中不是很利于我打孔。
默认的焊盘是55-32的。
实际发现。
焊盘必须改成70-30 或者实心的69-69. 这样打印出来的热转印图像的焊盘比较大。
可以自己手工diy打孔。
我由于只有1mm的转头。
打的很糟糕。
第一块板子估计就不行了。
需要做第二块。
为了增加成功率。
去淘宝买了0.5mm的钻头继续。
钻头很贵。
3.5一根。
过孔就需要使用70的规格。
3 热转印,使用了家用电烫斗,第一次使用200度的5分钟左右。
拿出来看。
转印成功了80%。
很麻烦。
需要手工修改了。
修改的很糟糕。
发现好多的pcb布线不合理的地方。
焊盘太小原来默认的55-32太小。
必须70-30的。
其中30最好能更小点。
这里点其实是为了定位钻头。
因为都要打掉成孔的。
Proteus无法批量2的更换焊盘大小。
更无法修改自
动布局的封装的焊盘大小。
但是可以一个个点新的焊盘上去。
左边是70-30 右边是55-28 实际出来的效果。
右边的已经很难打钻了。
所以手工最好是大点的好
布线太粗t20太粗,热转印的效果很好。
T15或者t12就可以了。
51的几个脚和线太集中,打孔的时候万一跑偏一点都成问题。
修改。
5 7段lcd显示模块
有排阻做上拉,主要为了做板子方便。
以后的显示模块。
直接用排线引过来就可以了。
做单面的2数字led 极难布线哦。
只能做双面的。
但是发现一个问题。
过孔,双面焊盘
1过孔把细导线传过去。
然后焊接2面
2双面焊盘把细导线传过去先焊接顶层。
再焊接底层。
连线。
接下来是用导线来连接过孔和焊盘,使用的导线是单芯的,并且能穿过过孔,穿好后在过孔的两面都点焊,这样过孔就通了。
焊盘的连接是可选的,两面有电气连接的焊盘才需要用导线来连接,还要保证连线后元件能插入焊盘。
顶层打印,需要先做个镜像翻转,在用硫酸纸打印出来
底层,可以直接打印
以上设计被否定了。
因为淘宝买的板子不是这个尺寸的。
只好设计成10cm*6cm的布局。
自动布线的。
多次了。
因为为了最大限度的较少过孔。
焊接的时候过孔的处理上绿油了。
不太成功。
绿油质量不好。
为了上绿油做的遮盖层。
自己用记号笔画的。
我怕这个材料进了打印机会化掉
双面板子的双面效果。
第一次测试2个元件有问题。
发现多个断点。
有些断点肉眼完全看不到。
测试的时候才发现。
电路有断点的地方。
多次测试才成功。