搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
知新_RL
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Eclipse的C与C++插件_eclipsec语言插件
2
LivePortrait 数字人:开源的图生视频模型,本地部署和专业视频制作详细教程_liveportrait s
3
在本地训练您自己的Stable Diffusion稳定扩散模型 - 无需代码_stable diffusion 本地 训练
4
Python实现机器学习算法:朴素贝叶斯算法
5
SQL COUNT() 函数深入解析_sql中的count
6
pe启动盘破解windows密码wins电脑登录密码修改重置_pe修改开机密码windows密码
7
体验字节跳动豆包AI大模型生成OpenAI创始人萨姆·奥尔特曼Biography_萨姆奥尔特曼的具体贡献
8
顺序表查找——顺序查找、有序表查找(多种方法)及次优查找树_1.在顺序表中采用顺序查找方法查找关键字7。 测试:(6,8,9,4,1,7,8,6)
9
Python开发程序中找到未排序数组中的第K大元素:高效算法与实现
10
oracle棘手的面试题,Oracle的四道经典面试题分享
当前位置:
article
> 正文
AT89C2051烧写器的制做与调试
作者:知新_RL | 2024-08-04 02:56:01
赞
踩
at89c2051
查看文章
20、AT89C2051烧写器的制做与调试
2009-03-15 22:28
现在都用S52了,还用C2051干嘛!价格也差不多。但是C2051的体积要比S51、S52小很多,而且引脚只有20只,在一些简单的控制中,这些引脚已足够了,小的体积更具有优势些。但目前好像还没有支持在线编程(ISP)的S2051。因此试着做个C2051的编程器,更主要的是与大家分享一下在电路制做过程中硬件、软件的除错技巧,尽量做到一次成功的经验和方法。
在网上找了一番,图很多,大同小异。上一张最通用的图:
上图是可以烧写很多器件的电路,它的PCB板在网上也很容易找。但因为是实验制做,没用PCB,就用万用板吧。由于宽体的器件都有支持ISP的器件,所以我去掉了40脚宽体IC座,只留了个20脚窄体IC座用来烧写C2051,修改电路后电路图如下:
元件清单如下:
1/8w 4.7k 6 (一共6个)
560r 3 (一共3个)
2k2 1
4.7 欧姆 1 串联于供电电路起保护作用
10k排阻 1 用于cpu p0口上拉
1n4148 2 用于vpp高压供给 (注意4148 的一头是黑色的)
12v 1 用于vpp高压供给 (注意12V 的一头是白色的不要搞混)
4.7uf/50v 8 所有的电解都用同一个型号的, 注意方向哦
104 2 用于电源滤波
22p 2 用于晶体电路
11.0592 1 晶体
2n5401 1 注意看型号和插入的方向, 不要错!
2n5551 2
发光管 2 3mm白发红(用于电源指示和通信指示)(注意方向)
db9 1 串口头
20pin 卡座 1 烧写 2051等用
40pin ic座 1 插入监控用89s51
16pin ic座 1 插入 max232芯片
usb座 1 供电用
串口电缆 1 通信用
usb 电缆 1 供电用
At89s51 1 用于监控
max232cpe 1 通信用集成电路
pcb 1 电路板
实际板子今天已做好,先秀一下吧。接着再讲详细调试方法和步骤:
(点击后看大图)
这个电路对于初学者可能复杂了一点,它分为几个部分,如果你先将电路板规划好,然后把元件一次都焊上,再进行调试,成功的概率很小。那应该怎么做呢?先规划一下元件的位置布局,然后分几个单元,一个单元做好后进行调试,正常后再进行下一个单元的制做调试。我的规划如下,先是电源部分包括那个电源指示LED:
先将USB座焊上,确认无短路后插上USB电源,用万用表找出A、B两点中哪个是5v的正极,哪个是地。然后去掉电源将剩下的几个电容、电阻和LED焊上,再确认无短路后接上电源,LED应亮起。我是将LED的限流电阻改为了2K,因为我看它已够亮了。电流1.5毫安。实物如右边红色圈出的图。
第二部分是MAX232,包括那个+12v电压稳压电路。MAX232是TTL转RS232专用IC。它内部提供了一个正10v,和负10v的升压电路。我们正是利用了它的升压电路又获得了个+12v的电源。
我们先将9针串口焊上,但不接上MAX232。在你规划的MAX232区,按上图左侧电路将MAX232座和四个电容焊好。检查无短路后,插上MAX232,接上电源,在A点应能测到+9v-+10v的电压。在B点应有-9v--10v的电压,将10脚接地,那7脚就应该是+10V。若10脚接+5v,那么7脚就变成-10v。这样MAX232就正常了。将串口的2脚接MAX232的7脚。串口的3脚接MAX232的8脚。接上电将MAX232的10脚分别接地和+5v看看串口的2脚是否跟刚才一样变化。以上的调试正确后,将上图右边的12V稳压电路焊上。如下图:
用万用表在稳压管两端应测得稳定的+12V电压。这样你的这个串口转换和12v电源电路就调试正常了。
第三部分是12V烧写控制部分:电路和实物图如下:
这部分电路焊好后,接上第二部分调试正常的+12v和电源+5V。先测量电路上+12v接入点和电源电压+5v是否正常确。再测量上图的A点也应该是+5v。然后你把VO13用导线接+5V,那么A点是+9v-+11v就对了。好!断开VO13,再将V014用导线接+5v,A点应该是接近0。这样12V烧写控制电路也调试正确了。
下面就是S51部分的电路,如下图:
这部分电路包括P0口的上拉排阻和那个接收指示LED接在S51的10脚。别忘了将S51的第31脚(EA / VP)也接电源+5v。先确认将MAX232的第9脚与S51第10脚的连接断开(因为MAX232在调试正常后9脚就输出+5v高平会点亮接收指示LED,妨碍S51工作性能的检查)。检查电路无误后插上S51片子接上电源,静态电流应在9-12mA左右。好!打开KEIL写个测试程序:
#include <AT89X51.H>
#define uchar unsigned char
main(void)
{
uchar i,j,k;
while(1)
{
for(i=0;i<1;i++)
{
for(j=0;j<255;j++)
for(k=0;k<255;k++);
}
P3_0=~P3_0;
}
}
这个程序就是让S51第10脚(P3.0)接的那个LED闪烁。能闪烁就说明晶振起振,S51电路工作正常了,编译,然后用ISP将这个程序写进S51片内,再插到我们做好的2051烧写器上。接上电源,我的电路立即就正常工作了,LED在闪烁。如果LED无反应,你就得检查你的S51电路是否连接正常,晶振是否焊接正确等。
S51电路正常后,我们就要将刚才断开的MAX232的第9脚和S51的第10脚焊上。这时我们再编个测试程序:
#include<at89x51.h>
#include<stdio.h>
void main(void)
{
SCON=0x50;
TMOD=0x20;
PCON=0x80;
TCON=0x40;
TH1=0xfd;//比特率19200
TL1=0xfd;
TI=1;
TR1=1;
while(1)
{
printf("hello World!\n");
}
}
这个程序就是打开单片机S51的串口,不断的送出字符串“hello World"。编译成HEX文件,再用ISP将程序写进S51片内。然后插到2051烧写板上。将串口线接到PC上。打开PC,运行串口调试器:
将红圈画出位置的波特率设为19200。确认为COM1口。然后将2051烧写器的电源给上,我的PC串口调试器上立即就出现了“hello World”。
这样,与PC的串口通讯就调试成功了。如果你没有出现正确结果,而上面几步的调试又是正常的,那就是从PC串口端到你S51的接线有错误了。仔细检查你的接线,会找到错误的。
上面几步都正常后,就是将这几步调试正常的电路整合了。将12v烧写控制端VPP接到2051的第1脚,VO13、VO14分别接到S51的第13、14脚。S51的第15脚VST接到2051的第9脚。S51的第1脚(P1.0)接到2051的第11脚。S51的5、6、7、8分别接到2051的第5、6、7、8脚。S51的P0口(第32-39脚)分别接到2051座的第12-19脚。别忘了将2051座的电源,地接上。
好!检查无误后,接上电源再试一次串口通讯是否正常(以防在焊接后焊错使S51不工作)后。拔下S51,用ISP将那个E51Pro.HEX的驱动固件写进S51,再将它插到40脚S51座上,在20脚IC座上插上AT89C2051,连好PC串口,PC上运行那个Easy 51Pro V2.0,然后将2051烧写器给上电源。在PC软件上先择AT89C2051,点击检测器件,我的,1e 21 FF。然后试着打开一个HEX文件,点自动完成,它就一路完成器件的检测、擦除、写入,校验等工作,如下图:
如果你的器件没找到,但前面的串口通迅等调试是正常的,那么你最后一步的那些接线可能有误。仔细检查你的接线,及C2051座的电源、接地是否正常。
好了,掸一掸尘土,大功告成。终于可以闪到一边喝口茶凉快会儿去了!也给点掌声啊!容易嘛?我。。。!
总结:养成逐步调试的习惯,对电路的一次成功是非常有益的。有了问题对除错的范围也可以缩至最小。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/知新_RL/article/detail/925931
推荐阅读
article
SpringCloud
(九)——
RabbitMQ
简单了解_
spring
判断
rabbitmq
队列
...
Java EE中的Rabbit MQ中间件的简单了解,包括Rabbit MQ的五种基本模型介绍,SpringAMQP的相...
赞
踩
article
Java
中
的
注解
是怎么
发挥作用
的
?_
java
自定义
注解
怎么生效
的
...
注解
_
java
自定义
注解
怎么生效
的
java
自定义
注解
怎么生效
的
...
赞
踩
article
Redis
报错
Redis
MessageListenerContainer:651解决办法_redis...
1、检查端口开启【telnet】,现阶段windows版的redis-server大都会在服务器报找不到redis.co...
赞
踩
article
RocketMQ
-
Queue
分配算法...
介绍一个Topic中的
Queue
只能有Consumer Group中的一个Consumer进行消费,那么他们之间的配对关...
赞
踩
article
《知识点020:
Java
中
LinkedList
遍历
(7种)》_
java
链表
遍历
...
LinkedList
类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.,它和ArrayList一样实现了...
赞
踩
article
websocket
实现
用户
登录
登出
日志
,并解决
浏览器
关闭
问题_
java
语言
,
使用
websocket
来...
websocket
_
java
语言
,
使用
websocket
来监控前端页面是否
关闭
,
连接
或者
关闭
后端都做响应的处理
java
...
赞
踩
article
30
岁还能
转行
做
初级
程序员
吗?
_
30
岁改行
做
程序员
_
30
岁应聘
程序员
...
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都
做
过,对这...
赞
踩
article
领略
人工智能
生成
内容
(
AIGC
)的奇妙世界...
人工智能
生成
内容
(
AIGC
)作为当今技术领域的热点之一,正以其强大的应用案例和技术基础深刻影响着各行各业。1.
AIGC
...
赞
踩
article
【
C++
学习笔记】
C++
运算符
重载
_到底以
成员
函数
还是
全局
函数
(友元
函数
)的形式
重载
运算符
...
文章目录
C++
运算符
重载
基础教程在全局范围内
重载
运算符
小结
C++
运算符
重载
时要遵循的规则
C++
重载
数学
运算符
(实例演示)...
赞
踩
article
golang
pprof
的原理
分析
_
pprof
原理...
文章目录1. 写在最前面2.
pprof
提供的能力2.1 查看方式3.
pprof
使用3.1 server 服务3....
赞
踩
article
VM
调优实战 - 面试题:什么情况下
J
VM
内存
中的
一个
对象
会被
垃圾
回收
?...
在面试中,关于
J
VM
垃圾
回收
的问题是非常常见的。了解
一个
对象
何时会被
垃圾
回收
是理解
J
VM
内存
管理的基础。
VM
调优实战 ...
赞
踩
article
Auto
CAD
Mac
版
基础入门必看
_
macautocad
小技巧...
本文介绍了
Auto
CAD
for
Mac
2017
版
本的界面变化,特别是新工具栏的设计,包括大小按钮的优化、编组隐藏功能...
赞
踩
article
【论文笔记】—低照度
图像增强
—
Supervised
—
RetinexNet
—2018-
BMVC
_
lol
...
【题目】:Deep retinex decomposition for low-light enhancement 本...
赞
踩
article
【
数据结构
】
非线性
表
----
二叉树
详解...
递归,其中函数在其定义的过程中调用自身。递归基(Base Case)这是停止递归调用的条件。当满足某个条件时,函数返回一...
赞
踩
article
OpenAI
Gym
——用于研发和比较强化
学习
算法的工具包_
openai
gym
doc...
网上已经很多的介绍了,我就不浪费大家时间了,老样子,整理出来。
Gym
提供了接近800个的测试环境,具体每个环境怎么用还得...
赞
踩
article
消息中间件
之
RocketMQ
源码
分析
(三)
_
rocketmqmessagelistener
注解
源码
...
RocketMQ
客户端中有两个独立的消费者实现类分别为DefaultMQPullConsumer和DefaultMQPu...
赞
踩
article
Java
并发
编程
基础(一篇入门)_
java
什么
是
并发
编程
...
1
并发
编程
简介1.1
什么
是
并发
编程
所谓
并发
编程
是
指在一台处理器上 “同时” 处理多个任务。
并发
是
在同一实体上的多个事...
赞
踩
article
IDEA
控制台
tomcat
乱码_
idea
控制台 :
true
...
IDEA
控制台
tomcat
乱码_
idea
控制台 :
true
idea
控制台 :
true
...
赞
踩
article
Unity
vision
pro
模拟器
开发
教程-附常见问题
解决方案
_
unity
vision
pro
开...
有些朋友在
开发
的时候,肯定会遇到各种问题,因此我会整理一些我在
开发
的时候遇到的问题,帮助大家。如果大家遇到不同的问题,可...
赞
踩
article
redis
事件
监听
及在
订单
系统中
的
使用
_
redis
messagelisteneradapter
...
通常在网上买好物品,或者说手机扫码后,点击付款,这时就会向后台发送请求,生成
订单
信息,以及够买商品
的
信息存入到数据库对应...
赞
踩
相关标签
spring cloud
rabbitmq
spring
java
注解
redis
RocketMQ
windows
python
开发语言
网络安全
web安全
面试
人工智能
AIGC
c++
jvm
cad
autocad
mac
深度学习
计算机视觉
数据结构
c语言