您的位置 首页 方案

单片机课程设计-ATMEL51系列单片机编程器

用单片设计过很多东西,可以说把AT单片机(包括AVR单片机)的所有外设资源都使用过了,所以在寻思着要设计一个什么样的东东??有次去面

用单片规划过许多东西,能够说把AT单片机(包含AVR单片机)的一切外设资源都使用过了,所以在深思着要规划一个什么样的东东??

有次去面试,我对面试官说我规划过一块开发板,然后那面试官直接问了个核心问题:这个编程器的固件是你自己写的吗?一会儿就问到了把柄。是的,编程器固件不是自己写的,那为什么不自己规划一个呢? 我说的自己规划是包含硬件电路、单片机程序以及电脑端界面等等一切东西悉数自己DIY。当一个真实的DIYer。所以我着手了,用了几天几夜时刻弄了一个能够支撑两种芯片(AT89S51 AT89S52)
的根据ISP下载的编程器
首要要说的是,要规划个编程器, 这方面的材料在网上基本是找不到的,估量是我们不想开源(open source code)…所以有必要自己依照某一芯片的官方数据手册渐渐搞懂它的下载协议,然后写成固件。

STEP 1. 研讨数据手册
首要找了一份S52芯片的中文数据手册,一看傻了眼,翻译得很废物,废物还不要紧,最重要是里边把关于FLASH编程的章节直接疏忽掉了。。想看都没得看。没办法,那就直接研讨英文数据手册算了,用了一天多时刻仔细把数据手册看懂。。这儿自己一向有个误区,从大一的时分开端就认为S52会有256B的用户RAM,比S51高档,其实不是,S52也只要128B内存,FLASH容量比S51多4KB也便是8KB。。谨记谨记。。或许你能够挑选接入外部RAM,不过这会糟蹋掉你至少16个IO口用来做数据及地址总线,并且还要加外一个地址锁存器用来复用原本就不够用的IO口,而汇编指令中的MOVX便是用来操作外部RAM的。OK数据手册研讨结束(还算走运的,由于S52的数据手册只要30多页)。

STEP 2. HEX文件的原本面目以及怎样将HEX文件转化成机器码

之前我一向认为HEX文件就像镜像文件相同对应着单片机FLASH的每一个数据,然后烧录软件LOAD程序的时分是直接将HEX文件里边的数据一个一个输入到单片机的FLASH中,又来了个误区,现实状况却不是这样的。正解是:HEX文件是一种用ASCII编码的文件,便是说里边的数据都是字符来的,比如说里边记载了一个地址为0X00EF的话,假如依照二进制格局应该是:0000 0000 1110 1111 这样记载的,但HEX采用了ASCII字符编码,直接在里边写成:‘0’ ‘0’ ‘E’ ‘F’ (这是ASCII字符!!!)。根据这个原理,要想正确下载程序就有必要写一个HEX->机器码转化算法,将HEX文件转化成机器码。用了几个小时就把算法搞定。详细完成进程就不说了,想了解的能够直接找我聊啦,总归最终成果便是我完成了一个 HEX_Translate(char *Input,char *Output)函数搞定

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/317297.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部