×

使用arduino开发板对89S52微控制器进行编程

消耗积分:0 | 格式:zip | 大小:1.24 MB | 2022-12-09

邹俩珍

分享资料个

描述

大家好,今天我们将学习使用arduino开发板对89S52微控制器进行编程。89S52 uC 与 89C51 uC 略有不同,因为它具有 ISP(在系统编程)功能。

它有 SPI 引脚 MOSI、MISO 和 SCK,用于将十六进制文件上传到 uC。这个项目的原创者是 Nick Pablo,非常感谢他。

该项目将有助于那些愿意从 89S52 uC 开始并且不想为 89S52 uC 投资额外的编程器的人。

你只需要你的 arduino 板和一些额外的组件来制作这个项目。

因此,阅读整个教程并按照所有步骤操作,您将能够使用您的 arduino 开发板对 89S52 uC 进行编程。

第 1 步:程序员的工作

 
poYBAGOShwaALEi0AAAz6DkkxP8994.png
 

这个程序员的工作非常简单。这个diy程序员用的是一款叫做“8051 Programmer”的软件。8051 编程器软件由几个发送对应于一个字符的按钮组成。当我们按下 8051 编程器软件中的一个按钮(例如识别)时,一个字符将发送到 Arduino。Arduino 代码有几个根据接收到的字符执行的 case 语句。此过程在几分之一秒内发生。Arduino 充当软件和 89S52 uC 之间的中介。

您可以参考上图来了解该项目的工作原理。

第 2 步:获取必要的用品

 
 
 
 
pYYBAGOShwuAM5_0AACX4uhor3A441.jpg
 
1 / 3
 

第 3 步:威廉希尔官方网站 图

 
pYYBAGOShxCAYHI8AAFaqEbv7Gg455.jpg
 

如上图所示在面包板上进行所有连接。

目前我们正在 BB 上进行连接,但我建议至少制作一个 PCB 以更简单。

你可以为这个威廉希尔官方网站 制作一个arduino shield以供经常使用。

将 89S52 的 Rest、clock、Miso 和 Mosi 引脚连接到 Arduino 的数字引脚 2、3、4 和 5。

如图所示连接按钮和电容器。

现在连接 Xtal osc。分别连接到引脚 18 和 19。

第 4 步:为您的 Arduino 开发板编程

 
poYBAGOShyGAYV9GAAC-NsZxpFs422.jpg
 

现在编译并上传附在你的arduino板上的代码

 

第 5 步:下载 Keil 软件和 8051 编程器

 
pYYBAGOShymAcSQiAADoIqQVh74765.jpg
 

现在为了下载 keil 软件,请访问www.keil.com并单击下载选项卡。

这将打开一个显示各种产品的新屏幕。

选择 C51 选项。填写表格中给出的所有详细信息。

现在您应该可以下载该软件了。

下载 keil 软件后,您需要再安装一个软件。

8051 程序员。

您可以单击此处下载 8051 编程器软件

现在您只需几步即可对 89S52 进行编程。

第 6 步:为 89S52 UC 和威廉希尔官方网站 编写代码

 
 
 
 
 
1 / 4
 

下面是一个简单的 LED 闪烁程序,用于测试 89S52 uC。

您可以将记事本代码复制到您的 keil 编辑器中,或者您可以直接将 hex 文件上传到您的 89S52 uC。

现在按照上图所示进行连接。

将带串联电阻的 LED 连接到 89S52 uC 的引脚 P1.1。

这里需要注意的是89S52的引脚默认分配为输出。但是,如果您需要将开关连接到 89S532 uC,则必须将它们声明为输入。

按照引脚图进行连接。

一旦 89S52 被编程,它的时间测试输出。

我添加了一个 small.gif 文件来向您展示程序员的工作。

希望你喜欢这个教程。不要忘记在这里关注我以获取更多电子项目。

 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'使用arduino开发板对89S52微控制器进行编程',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);