0

关于投票
自制的ByteBlaster MV并口下载线

前段时候研究学习过并口的ISP下载问题,试过多种接法,常用的就是373的easy pro-2接法,但是这种接法好像只适合于AT89S**的51单片机下载,所以在网路上又遨游搜索了些其他的接法,发现了有两种接法很不错,一种就是Altera ByteBlaster下载线,而后一种就是Altera ByteBlaster MV下载线,如果使用Downs52或者ispdown上位机软件可以对下载线进行识别,可以下载ATMEL的89、90、megs系列单片机(如果用ispdown软件的话,可以支持更多芯片),所以自己就做了一个,呵呵。现在发上来跟大家共享。

PCB图

点击看大图

实物图

系统分类: 单片机
用户分类: 单片机及外围电路
标签: 并口ISP 下载线 Altera ByteBlaster MV
来源: 原创
发表评论 阅读全文(191) | 回复(0)

2

关于投票
AT89S5X的ISP下载线制作问题(续)

昨天按照前天发现的思路做了一遍,首先我用示波器测量在用上位机软件检测器件瞬间时并口各个管脚波形,大致结果与他所测结果一致;然后按照这种接法试了试(1-SCK、17-RST、2-MOSI、10-MISO、9-11、18-58接地),他说用的是244,由于手头没有244,故用了373,我将373的0E接地,LE接电源,上位机软件就用isplay,由于在配置设置里面没有找到与我接法一样的配置文件,所以自己添加了一个ini文件,通电检测没有结果,换别的软件也不行。

接下来又试了几种其他的方法,也无果!

后来想到实验室买的好像有个CPLD的开发板,我想应该有下载线的,呵呵。所以拿出来瞧瞧!拆开----郁闷!!芯片被涂抹了,不知道是用的啥,所以一个脚一个脚的测(后来才发现,感觉自己太笨了),原来它用的是byteblaster mv下载线,我用晓奇工作室的那个软件试,检测到是byteblaster mv下载线,但是无法进入变成模式;用isplay这个软件试,选择Altera_BYTEBLAST.ini配置文件(里面引脚配置和我测的引脚连接一样),还是检测不到器件;再换attemal官方的软件,还是不行。。。。。。。

我想别人公司做的下载线,既然拿出来卖,应该是可以的阿,简直快崩溃了!!不知咋地,我将单片机EA管脚那跳线冒去掉(本来接12V的),让他悬空(我用感光板作了个S52的最小系统板,复位和EA都用跳线隔离了),一试,好了,下载程序、校验,一切OK,而后把其他的软件也都试了一遍,全部通过!!

崩溃!!!那S52资料上不是说嘛?在flash编程期间,EA引脚应该接12V高电平,怎么回事?? 不解。。。。。。唉!!

后来,我又按照网上流传的一种373接法试了一下,去掉EA的跳线,选择isplay下载软件,按照引脚连接加了一个配置文件,通电--------OK!!

感觉不错,高兴!!在此把自己的经历写出来,希望对大家有用。

本想安安稳稳的睡个觉,哪知。。。。上面下通知说四川有大的余震,波及到这,好像很严重!让注意防范,唉~~~~~~~~~~~~~~~~~~~~

那些软件就不上传了,以前发过几个,再说网上也都有;

最后附上byteblaster和byteblaster mv下载线的电路图:rar

                                               2008-5-20  7:40(刚从外面回来,在外面露宿了一宿)

 

系统分类: 单片机
用户分类: 单片机及外围电路
标签: AT89SXX ISP下载线
来源: 原创
发表评论 阅读全文(496) | 回复(6)

2

关于投票
AT89S5X的ISP下载线制作问题

以前发过AT89S下载线的图和相应软件,现在有时间了自己做了一下,用过373的两种接法,程序用过easy pro51的、双龙的以及atmeal官方的软件,很遗憾!都没有成功。查找问题,硬件连接应该没有问题的,计算机并口设置也对着,但就是检测不到器件,一直没有解决。。。。。。。郁闷中!!!

在网上找过很多资料,基本上都是雷同的,不外乎就那几种接法(由于手头上只有373的片子,所以只试过373的接法,244的没有),但是就是找不到解决的办法,唉!

今天又发现一篇文章,感觉与其他的写的都不同,所以吸引了我。感觉他的方法比较好,所以决定明天按照他的思路去检查一下,看看是否有进步。现在把他的方法贴出来,大家共享。

   1)从ATMEL等下载安装AT89ISP软件;

    2)不加任何电路,运行软件,选择器件;告诉电缆错误或没加电源;

    3)用数字存储示波器观察电缆输出波形,运行选择器件时,1脚输出一连串等间距(高4us低6us)脉冲,很明显是时钟信号SCK;

    4)2脚输出一些脉冲,根据10us的时钟信号和编程使能命令数据,很容易判断出这是数据输出信号MOSI;

    5)运行初始化适配器时17脚输出12us的低脉冲,经分析可能是复位信号。

    6)下面重要的就是判断MISO了,它没有任何参考,只能试了,反正并口就这么几个输入。其他脚根据以上判断都连接好,18以后接地,MISO接到10脚,幸运的是选择器件通过了!而接到其他脚就不行。

    7)这好像一切问题都解决了,确发现根本不能初始化适配器,当然也不能编程。是不是电缆其他脚也有定义或接了一定电平来校验是否为合法的适配器?这下有较大麻烦了!硬着头皮试了几次改变其他输入脚的电平,无效。

    8)正当山重水复之际,突然想到在测量信号时好像9脚存在4us的低电平脉冲,当时还认为它是复位信号,但有些窄,当测17脚时就暂时否定了它。这时想到该脚是不是有用?报错是在按下鼠标时立即报出的,9脚信号也是立即输出的;相对选择器件时,从示波器观察编程使能应答数据的读入有较长延时,而报错也存在可感知的延时;从这些差异上可感觉到,9脚脉冲就是和适配器初始化相关的,试着就近连到输入线11脚,成功了!!!也就没有试其他脚。

       电缆适配器终于解决了!注意的是,在并口和AT89S之间最好加一片74LS244隔离,这样对芯片有利。

    烧录一片AT89S52很成功!运行没有问题。注意可能是在烧录好以后要用命令使芯片运行一下,否则以后要重启计算机软件才能再次正常使用,在网上看的,看来软件还需改进。

老天保佑!!God helo me!!

系统分类: 单片机
用户分类: 单片机及外围电路
标签: AT89S5X ISP下载线
来源: 原创
发表评论 阅读全文(374) | 回复(1)

0

关于投票
AT89S51实例教程

rarrar

两部分放一起解压缩就可以拉。

系统分类: 单片机
用户分类: 单片机及外围电路
标签: 单片机 AT89S51 教程
来源: 整理
发表评论 阅读全文(244) | 回复(0)

0

关于投票
[转帖]Keil软件仿真的串口调试技巧

作者:邵子扬    文章来源:单片机与嵌入式系统应用

引言

  在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。

  在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。使用硬件仿真器的确是很有效的方法,但是也有一些缺点:

  ◆ 很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。
  ◆ 对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。
  ◆ 有时由于设备内部结构空间的限制,仿真头不方便接入。
  ◆ 有的仿真器属于简单的在线仿真型,仿真时有很多限制。例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。

1  调试前的准备工作

  下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。所需的只是:

  ①  硬件。1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头)。
  ②  串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。

2  基本调试命令介绍

  这个串口调试方法主要是利用了Keil强大的软件仿真功能。在新版本(高于6.0)的Keil软件中,增强了软件的仿真能力,可以利用软件仿真更多的单片机功能。在这些功能中,其中有一个很重要的功能就是利用计算机的串口来模拟单片机的串口(这不同于很多软件在仿真时使用的激励文件方式,可以直接与其他串口进行通信,更加方便、灵活)。首先要介绍仿真时需要使用的两个命令:ASSIGN和MODE。

2.1  ASSIGN命令

  将单片机的串口绑定到计算机的串口。基本使用方式为:

  ASSIGN channel<inreg>outreg

  其中: channel代表计算机的串口,可以是COM1、COM2、COM3或COM4;而inreg和outreg代表单片机的串口。对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。

例如:
  ASSIGN COM1<SIN>SOUT

  将计算机的串口1绑定到单片机的串口(针对只有一个串口的单片机)。

  ASSIGN COM2<S0IN>S0OUT

  将计算机的串口2绑定到单片机的串口0(针对有多个串口的单片机,注意串口号的位置)。

  需要注意的是,参数的括号是不能省略的,而outreg则是没有括号的。

2.2  MODE命令

  设置被绑定计算机串口的参数。基本使用方式为:

  MODE COMx baudrate, parity, databits, stopbits

  其中: COMx(x = 1,2,…)代表计算机的串口号;baudrate代表串口的波特率;parity代表校验方式;databits代表数据位长度;stopbits代表停止位长度。

  例如:

  MODE COM1 9600, n, 8, 1
  设置串口1。波特率为9 600,无校验位,8位数据,1位停止位。
  MODE COM2 19200, 1, 8, 1
  设置串口2。波特率为19 200,奇校验,8位数据,1位停止位。

  使用以上两个命令,就能够将计算机的串口模拟成单片机的串口了。在进行软件仿真时,所有发送到被绑定的计算机串口上的数据都会转发到Keil模拟的单片机串口上,用户程序可以通过中断处理程序或查询方式接收到这些数据;同样,单片机程序中发送到单片机串口上的数据也会通过被绑定的计算机串口发送出来,可以被其他软件所接收。利用这个特点,就可以方便地仿真、调试单片机的串口部分程序。要注意的是,这两个命令需要一起使用。

2.3  仿真步骤

  首先,用串口线将计算机的两个串口连接起来(或者是两台计算机上的两个串口)。这两个串口一个用来模拟单片机串口,另一个给调试程序使用。这个由用户自己分配,没有特殊要求。

  其次,编写好用户程序,并编译通过。

  然后,设置工程文件(Project)的相关参数,如图2和图3所示。主要是选择软件仿真模式(Use Simulator)以及晶振参数。

        为了不必每次进入仿真状态后,都需要输入串口参数设置命令,可以建立一个初始化文件。初始化文件是一个普通的文本文件,内容就是仿真时需要的命令,按照顺序一行输入一条。这样,当每次进入仿真调试状态时,Keil就会自动载入debug.ini的内容进行初始化。

        为了正确仿真串口,在软件仿真调试时,在用户的Keil工程文件的属性中,还需要设置实际使用的晶振频率。这个参数非常重要,直接影响通信的波特率,可以按照实际使用的参数进行设置。要注意,这个参数的单位是MHz。

  设置好参数后,就可以进行仿真了。

进入Debug(仿真调试)状态,在Output window窗口中的command文本框(一般是在左下角)中输入上面介绍的命令。例如,将PC机的串口1设置为单片机的串口:

    mode com1 9600,0,8,1
  assign com1 <Sin> Sout

  然后设置断点,一般是在关键地方或与串口相关联的地方设置。再单击图标运行(Run)用户程序,使用户程序运转起来(不然是接收不到串口数据的)。这时再使用串口调试软件或用户调试软件,发送通信命令或者数据包,看用户程序是否进入断点,以及相关的变量是否正确。还可以有意发送带有错误数据的数据包,以观察用户程序的异常处理部分是否正常。一旦发现程序中的错误,可以马上停止仿真调试,立即修改代码,然后再次重复上面的步骤进行仿真。因为不需要与用户目标板联机,也不用下载代码到用户板上,所以速度非常高。以上这些步骤和使用硬件仿真器的基本一样,只不过现在使用的是软件仿真。

  需要注意的是: 仿真时单片机串口实际的波特率由MODE命令来指定,单片机程序中的TMOD、SCON等参数是不影响串口仿真状态的(也就是说这些参数不影响仿真的波特率,即使它们是错误的)。但是中断的使能位(如ES、EA等)还是起作用的,如果ES或EA被禁止,那么就不会进入串口中断。

    因为这种方法是利用计算机的串口来仿真单片机的串口,而仿真是通过Keil软件来转换串口上的数据,不是直接转发数据的,所以在实际仿真时,处理速度会比实际单片机运行时稍微低一点。比方说仿真状态时1 s只能发送/接收10个数据帧,但在单片机硬件上运行时可能1 s就可以接收/发送50个数据帧。这与使用的计算机的速度有关,但对仿真来说,是没有任何影响的。

  对于多串口的单片机,从理论上来说,可以一次绑定多个串口,只要计算机有足够多的串口。基本上,使用这种方法需要占用计算机的串口数量是单片机绑定串口的2倍。一个串口被Keil占用,用来模拟单片机的串口;另外一个串口被计算机占用,用来给单片机的串口收发数据。

3  小结

  这里介绍的方法对C51和汇编语言都是适合的。它最大的好处就是简单、方便,容易使用,不需要使用任何电路,也没有特殊的要求;甚至可以在硬件电路制作好之前就将串口部分的程序编写、调试完毕。笔者使用这种方法已经很长时间了,事实证明这种方法确实非常有效。其实对于51单片机,Keil的仿真功能实在是太强大了,只要充分掌握其特点,能够熟练利用它,就可以解决工作中的大部分问题。很多工作都可以使用软件仿真来完成,根本无需任何硬件仿真器;只有一些新的外部器件的时序、接口的调试才有可能需要用到硬件仿真器。目前介绍Keil软件仿真这方面的参考书籍很少,有些讲的还是老版本的用法,不过没有关系,Keil的帮助文件写得很详细、很清楚,只要认真看明白就会使用了。使用熟练后,就会发现Keil的功能相当强。

  对于串口编程,51单片机有Keil这个功能强大的开发软件,给我们带来了极大的便利;而在其他单片机软件的开发中,目前还没有这么强大的开发工具和方便的调试手段。这里有个变通的办法,就是可以先在Keil中编写并调试好串口程序,然后将程序移植到其他单片机平台中(笔者在PIC18单片机开发中就使用了这种方法,收到了很好的效果。当然这是指在使用C语言开发单片机程序时,汇编语言是没有可移植性的)。至于如何能够减小程序移植的工作量,使得程序具有更好的通用性,以最小的代价就可以平滑地移植到其他单片机平台上,也是一个非常值得探讨的问题。

系统分类: 单片机
用户分类: 单片机及外围电路
标签: 单片机 串口通信 KEIL软件 串口仿真
来源: 转贴
发表评论 阅读全文(220) | 回复(0)

0

关于投票
单片机控制继电器

51单片机控制继电器的方法有很多,最常用的就是用三极管来驱动,对大侠们来说肯定是很EASY的,对于我们这些新手来说,还要值得学习学习啦,呵呵。好了,不说了,看图--------

比如说用单片机P1.7来控制:

当给低电平时,三极管导通,继电器吸合;给高电平,三极管截止,继电器释放。

同理也可以用按键来控制,当判断有键按下的时候,就给P1.7低电平,反之亦然。

汇编程序如下:

rar

系统分类: 单片机
用户分类: 单片机及外围电路
标签: 单片机 继电器
来源: 原创
发表评论 阅读全文(397) | 回复(2)

1

关于投票
单片机并口ISP软件下载

这个是比较通用的,Easy 51Pro-------rar

这个是双龙公司的----------------------rar

这还有另外一个-------------------------rar

系统分类: 单片机
用户分类: 单片机及外围电路