自制51编程器

合集下载

Easy 51Pro v2.0 制作及使用说明

Easy 51Pro v2.0 制作及使用说明

Easy 51Pro v2.0 制作及使用说明Easy 51Pro的第一个版本由于制作简单,操作方便一发布就受到了大家的热烈欢迎。

很多网友自制成功后已经感受到了ISP编程技术是如何的爽,看到他们这么爽我也感到无比的高兴和兴奋,这也成了我开发第2个版本的动力。

努力奋斗一个月终于设计出了第2版。

这个版本的设计目标:更好用,容易自制,容易扩充,更稳定,更灵活。

V2.0的新特性:支持hex文件了用户自己可以扩充器件重载的文件对话框,让你不必到处找文件热键支持,让你调试程序时效率更高灵活的程序设计,甚至可以让整套软件在其他编程器硬件上运行可以支持任何下载线,让你有更多选择设计了串行通讯超时程序,减少了掉线现象下载线,编程器都有相关的调试程序,让你制作时更轻松,提高了成功率开放源代码和详细的原理说明,用户可以根据自己的要求进行修改别看界面和上一个版本差不多,里面的东西可全部换了,使用还是一样。

点击“自动完成”后,就会一项一项的往下进行。

最优的设置就像上面这个图。

缓冲1会自动刷新上一次你打开的文件,所以你不必每烧一次芯片就去打开一次文件。

你也可以不点击“自动完成”,在该界面下“回车”就是的。

不在该界面下时可以用“热键”,所以每当编译完程序后,直接按热键就可以了(默认热键Ctrl+Shift+P)。

在调试中频繁烧片时这个功能显得很重要。

要把按钮设置成“自动”很简单,用“鼠标右键”点一下就可以了。

操作成功或失败会有不同的声音提示。

成功的声音提示可能会让你编程时更兴奋,效率更高。

如果你觉得声音听起来不爽,就在设置里“False”它吧。

这次软件设计的非常Flexible,从上面对下载线的支持就可以看得出,但最主要的还是对器件的支持。

一个人做这个东西不可能做到支持很多器件,没时间,也没钱搞。

所以我就设计了这样一个东西:这上面显示的器件和Easy 51Pro中下拉列表中的一样。

Easy 51Pro每次启动都会从一个“ChipList.chip”中载入器件信息,用这个软件打开“ChipList.chip”就会像上图这样。

51单片机DIY做PLC编程

51单片机DIY做PLC编程

51单片机DIY做PLC编程有朋友想定制一个净水机控制器,有一些独特的功能要增加,但是商品控制板没有这样的功能,问我能否做一个,我觉得单片机完全能满足这种简单的控制需要,上手开始编程序时候突然感到,用PLC逻辑编这种功能是非常简单轻松的,而如果用汇编或C编却感觉有点棘手,编程效率不高,所以想为何不在单片机上实现PLC的逻辑呢?上网搜索尝试看能否找到合适的程序下载来稍微改改就能用的呢?方案几年前就有了,实际上是利用三菱的低档PLC编程软件编辑好梯形图,存盘后用专用的格式转换工具转换成HEX 单片机烧写文件烧进去,尝试下载三菱PLC工具软件,但是在我的WIN7-64位系统上不能正常工作,好容易换了系统装好开发工具,但是初次上手这款开发工具,界面挺复杂的,懒得研究各个按钮的使用,由于是单片机的硬件,对于程序的编制和转换有很多限制条件,否则是转换不成功的,嫌麻烦,放弃!某宝倒是有百元PLC板出售,但是为了这么个简单的东西专门买个全功能板子有点浪费,而且其编程软件仍然是三菱的盗版软件,算了,再想办法把。

由于工作中经常接触PLC程序,对其工作原理也略知一二,网上也有相关的说明介绍,其实就是三个主要步骤,第一步扫描IO输入,第二步执行逻辑,第三步输出逻辑到IO,很简单的,最早PLC也是用单片机实现的,我为何不用汇编在51上搭建一个架构,简单的逻辑编制进去就能运转呢?其中逻辑执行步骤还是有点意思的,需要把PLC逻辑翻译成单片机的汇编语言执行,这块开始也没有把握,后来搜索到一篇百度文章,介绍了一下三菱PLC逻辑是如何翻译成汇编的,我看了下估计其实是利用反汇编工具把HEX反编译成的ASM代码,并不清晰明了,而且还带着反汇编时候的行号,仅供参考了。

搜索结果中也有几篇论文,涉及到在51单片机上实现PLC逻辑的内容,但是那些论文都是充数的,仅仅几个IO逻辑,没有什么定时器,计数器功能的体现,哎!仅供参考!看来这个PLC系统还是需要自己写了!OK!既然决定自己重写,那就开工吧!利用春节休假时间,编制了如下ASM51汇编PLC代码:代码主要架构如下:1、IO定义部分:根据所使用的单片机IO口数量,任意指定多少个I多少个O,那几个脚是I,哪几个是O都可以任意指定,在这个51系统里面设计了最大32个I,32个O,占用64个位寻址区域,其实用不到那么多,也可以分配给其它需要的标志位用,因为51系统总可位寻址地址只有128位,需要仔细分配.2、位寻址变量定义(包括各类标志位,临时变量寄存器等等)目前设计了8个计时器的Timer DN, Timer EN,共16位,8个计数器的counter reset 和counter DN 标志位共16个,专用于上升沿下降沿检测的标志位4对,占用8个,剩余用于临时变量,这些地址分配在这块变量定义区域可以根据需要任意调整3、内存规划,包括堆栈区的设置,定时器,计数器的累加值和预设值地址等等,目前初步定义8个计数器的当前计数值和预设值,8个计时器的当前计数值和预设值,共占用32个内存地址,也可根据需要调整,51单片机片内总的用户可用内存地址包括堆栈区只有128个,实际去除位寻址区和堆栈区可用的估计只有80个左右,不过对于小程序应该够用的。

at89c2051编程器制作

at89c2051编程器制作
{
date_biaozhi=0;
date[0]=0x00;//清控数据
date[1]=0x00;//清控数据
rset();//执行复位子程序
SBUF=0x11;//回复上位机命令完成,待命
RI=0;
}
if(date[0]==0x66&date[1]==0x22)//判断是否为连接命令
{
date_biaozhi=0;
7、当校验已编程的数据,使RST从+12V降到逻辑电平“H”,置p3.3-p3.7引脚到正确的电平即可从P1口读数据
8、对下一地址单元编程字节,使XTAL1引脚正脉冲跳变一次使地址计数器加1,在P1口输入新的数据字节.
9、重复5至8,可对整个2K字节阵列全部编程,直到目标文件结束
10、下电次序:
置XTAL1为低“L”电平
delay(10);
rst_vpp_5v=1;//使AT89C2051单片机RST/VPP置H电平
delay(10);
}
void clin()//对2K的程序存储器进行擦除,擦除后每个单元为0xff
{//注:2K字节为0xff才可以编程
uint j;
Rst_vpp_12V=0;
xtal1=0;
p32=1;
date[1]=0x00;//清控数据
}
if(date[0]==0x56)//判断是否为芯片带校验写入命令
{
date_biaozhi=0;
increment_address();//数据正确AT89C2051单片机程序ROM地址加1
write_at89c2051_date(date[1]);//执行芯片擦除子程序
置RST为“L”电平
置空所有其它I/O引脚

用51单片机做简易PLC

用51单片机做简易PLC

用51单片机做简易PLC
最近在51hei单片机论坛上下载了一个PMW-HEX的软件,这个软件可以将三菱PLC编程软件编写的梯形图转换成HEX文件,再将这个HEX文件烧录到51 单片机上,这样51单片机就有了梯形图所编程的功能了。

我觉得蛮有意思的,虽然该软件并不能兼容PLC的所有功能,甚至说很多功能不能兼容,但基本的一些指令和少量的软元件已经足够做一些简单控制功能了。

基于这个我就想着自己动手做一个4入4出的简易PLC来玩玩吧,PMW-HEX的下载地址是:51hei/bbs/dpj-19820-1.html 想了就动手吧,否则以前学的一些电子知识就要荒废了。

因为手上只有AT89S52的单片机,那么就拿这款单片机来设计电路吧。

第一步,先设计供电电路。

按三菱PLC的模式,输入端的公共(COM)是DC24V的地(GND),所以就把DC24V电源作为供电电源。

单片机需要5V 供电,手上的继电器是DC12V的供电,所以这个供电电路就是24V转成12V再转成5V。

因为只是测试的用途所以仅用最简单的转换方法(目前还算可以用吧)。

 第二步,设计单片机的最小系统。

也就是用12M晶振配合谐振电容
(30P)电路和上电自动复位电路构成。

 第三步,设计开关量输入电路。

这里将仿效三菱PLC的输入,用DC24V
的GND作公共端,经开关返回。

这样就需要使用光耦521-4将DC24V的信号与单片机输入端的5V信号进行隔离转换。

 第四步,设计输出到继电器的电路。

由于我使用的是DC12V的继电器,所以也用了光耦521-4进行隔离转换,然后驱动三极管(9013),用三极管来驱动。

AT89C51 52 55单片机编程器(烧写器)制作

AT89C51  52  55单片机编程器(烧写器)制作

AT89C51/52/55单片机编程器(烧写器)制作--------------------------------------------------------------------------------AT89C51/52/55单片机编程器(烧写器)制作AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。

一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。

为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。

由于单片机编程时序不同,这一款编程器仅仅支持ATMEL 公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。

下面是单片机编程器电路图.注:元器件清单见附录工作原理简述:Q2, Q4以及周围的几个元件构成了电平转换电路,这样节省了1片max 232芯片,在要求不高的场合,这个电路在单片机通信中可以取代MAX232。

Q1, R2,R4,DW2,4个元件为编程器提供烧写用12V电压,其中,R4, R2构成了分压电路;平时,*芯片89C51第13脚(P3.3)输出高电平,Q1导通,R2(1K)将DW2(12V)拉低,此时DW2电压由R4,R2 分压,大约3-5V 之间;当写程序时,*芯片第13脚(P3.3)输出低电平,Q1截止,DW2(12V)直接送到被烧芯片的31脚,从而提供烧写电压。

ATMEL官方网站提供的编程器器烧写电压是用LM317调整得到的,并且用到了两个高精度电阻,电路复杂且成本高,该电路经过本人数百台的实验证明非常稳定可靠.电源变压器要求为15V的电源,例如常见的3-12V直流可调电源,注意其空载电压不要低于13V , 滤波应好一些,否则可能出现编程不可靠的情况。

*芯片用IC座安装,另外找一个编程器烧写好*程序EZ51.HEX后插入,方便调试。

51单片机简易仿真器的制作

51单片机简易仿真器的制作

51单片机简易仿真器的制作实验目的:由于市场上现有的单片机仿真器非常昂贵,为了减少在开发单片机时的成本,故提出利用SST公司的SST89E564RD系列单片机制作简单的51单片机仿真器。

实验环境:1.硬件环境:计算机一台SST89E564RD单片机MAX232芯片串口线一根2.软件环境:Protel99SE软件和KeilC51软件。

其中Protel99SE可以完成硬件原理图的设计,以及PCB板的制作;KeilC51可以完成工程的建立,代码的编写,程序的编译以及最终的软硬件仿真。

实验内容:1.实验原理:只需将SST单片机的RXD P3.0和TXD P3.1管脚通过一个RS232的电平转换电路连接到PC的COM串口即可,可使用这个RS232的转换电路做一个通用的8051的下载线。

下载时只需将下载线连接到用户目标板上单片机的P3.0P3.1 VCC,GND4个管脚即可进行下载或仿真。

设计的原理图如图1所示,在实际的设计过程中,添加了一个发光二极管,其目的很简单,就是为了验证仿真器供电正常。

图1SST89E564单片机仿真器原理图设计的SST89E564单片机仿真器的测试板如图2所示,在设计并印制PCB 板之后,硬件电路的设计就完成了。

图2仿真器测试板2.实验步骤:1)通过SST串口下载软件BootLoader下载SOFTICE监控代码由于SST的MCU在出厂时已经将BOOT LOADER的下载监控程序写入到芯片中,因此无需编程器就可通过SST BOOT-STRAP LOADER软件工具将用户程序下载到SST的MCU中,从而运行用户程序。

SST BOOT-STRAP LOADER软件工具还可将原来的MCU内部的下载监控程序转换为SoftICE的监控程序,从而实现SOFTICE的仿真功能。

执行SSTEasyIAP11F.exe软件运行SST Boot-Strap Loader,在内部模式下检测到对应器件的型号后,SoftICE固件通过按SoftICE菜单下“Download SoftICE”选项下载,便将SoftICE固件下载到MCU。

自制51编程器

自制51编程器

ATMEL 89 Series Flash Microcontroller Programmer Ver 3.0IntroductionThis programmer was designed in view of to be flexible, economical and easy to built, the programmer hardware utilizes the standard TTL series parts and no special components are used. The programmer is interfaced with the PC parallel port and there is no special requirement for the PC parallel port, so the older computers can also be used with this programmer.Supported DevicesThe programmer software supports the following Atmel devicesNote: For 20 pin devices a simple interface adapter is required.HardwareFigure 1 shows the circuit diagram of the Flash Programmer, the programmer is interfaced with the standard parallel port of the PC. As shown in the diagram U2 is used to control the data flow between the controller and the PC, U4 latched the low order address byte and U5 latched the high order address byte, while U3 is used to generate the control signals for micro controller to be programmed. IC U1 is used to generate the progrram pulse for the u-controller. The power supply section uses U8 to generate the logic 5V supply while the U7 is used to provide the programming supply voltage to controller. IC U6 is used to generate the VDD power supply voltage for the u-controller which is selectable either 5v or 6v5.The power to the circuit is provided by a wall adapter of 15 to 18V output, normally a 15V type adapter will provide a 19~20V output voltage. As shown in the diagram the crystal X1 can be replaced by a resonator in that case capacitors C4 and C5 are not required. Place a small heatsink on U8 voltage regulator.For the adjustment of P1, P2 and P3 use a digital multimeter& follow the steps shown below,1. To adjust P1, temporarily connect T1 base to ground using test clips then adjust P1 to get 6.5V at theoutput of regulator U6.2. Next first adjust P2 to get the 13.1V at the output of regulator U7, make sure transistor T5 is off ortemporarily connect the T5 base to ground using test clips.3. Now temporarily short the collector of transistor T5 to ground using test clips.3. Adjust P3 to get the 12.1V at the output of U7 regulator IC.Figure 1: Circuit Diagram of Flash Programmer V3.0Figure 2 shows the circuit diagram of the interface adapter card required for the programming of 20 pin Flash devices.Figure 2: Interface Adapter circuit diagram V3.0sConstructing the BoardThe prototype board may be built using universal PCB with point-to-point wiring. If you want to make your own PCB, download the file which contains the printer files for the HP laser printer or download the PcbsPCX.zipfile which contains PCX graphics format pcb files. Figure 3 shows the components layout of the programmer pcb.For printing the PRN files on laser printer run the following command, this will print the all pcb files.COPY *.PRN PRN/BFor the bill of material of the project view the file Pgm89v3PartsList.txtThe schematics and the pcbs of the project were designed using OrCADsoftwarFigure 3: Components layout of the Programmer PCB V3.0SoftwarePgm89v3.zip file is used to run the programmer. This is a Windows program which can be used under Windows 95 & 98. The main screen of the program is shown in figure 4.Following are the main features of this software,。

自制51编程器和AVR 编程器

自制51编程器和AVR 编程器

手头没有现成的编程器又没有一定的基础知识来自制怎么办?对于一个初学51单片机朋友是个棘手的问题。

各个电子网站几乎都有编程器卖,但是其价格都在100以上,而且还要加上邮费(快递20元左右),让初学者犹豫着该不该买一台呢,或许买了也是三分钟热度,几天就不玩了。

别担心,我们可以自制,成本可控制在50元以内。

本人当初也没有编程器,于是就自制了一台Pgm89v31(电路还是不给大家看了,怕吓着还没开始动手的初学者,有兴趣的可以按那个名字自己查),大家不用怕,我们不是做这个,简单的还在后头。

因为当时不知道AT89S系列单片机可以ISP(下面要介绍的,不用急!)编程,所以就做了一台Pgm89v31。

我不建议大家做这个,因为大家可能没那个心思做这个,况且,有一块集成电路不好卖(74hc299在无锡没的卖,是我好不容易在常熟的熟人那买到的)由于教学与实际科技的发展有一定的滞后性,所以大多数初学者不知道有AT89S系列单片机,只知道书上的A T89C51这种ATMEL公司已停产多年的传统单片机,不过这种单片机还是市场占有率最高的51系列单片机(随便逛家电子零件商店都有的卖A T89C51),因为它的库存量实在是大。

那么AT89S51和A T89C51有什么区别呢,其实大家只要认为它们是同一型号就可以了,没必要知道的很详细,因为A T89S51是AT89C51的升级产品,A T89S完全兼容AT89C的功能。

只是可靠性方面多加了看门狗电路,编程方法也改了,就是用ISP方式。

我简略介绍一下所谓ISP编程就是编程器(下面要介绍)与单片机的连线只要有5根线,就可以实现编程了。

而AT89C51要并行编程,连线至少要15根以上(具体没去数),且还需12V的编程电压(A T89S51不用考虑这个问题)。

讲到这里大家一定都对AT89S系列的单片机有较大的好感,那么它们的价格是否相差很多呢?是贵还是便宜呢?大家不禁要问这句。

我告诉大家好消息,单片机价格只会随着它的普及越来越便宜,AT89S比AT89C还要便宜1~2元钱呢!下面我来介绍ISP编程的制作方法,首先要找来元器件,电脑并行插口一个(母的),74HC244一个,电阻一个,电容一个,细导线若干。

EP51编程器使用说明书

EP51编程器使用说明书

EPA51编程器操作说明EPA51编程器采用特别的双卡座PCB卡匣式设计,可以烧录Atmel公司系列51单片机芯片,具有性能稳定,烧录速度快,性价比高等优点。

硬件采用自行恢复的保护措施,增加了器件运行的可靠性。

一. 支持的芯片型号支持目前最为经典和市场占有量最大的ATMEL公司生产的AT89C51、C52、C55和最新的S51、S52;AT89C1051、2051、4051等芯片。

51测试网特别改进的线路和外观,是目前最为经济,美观和方便实用的小型51单片机编程器,本站特别诚意推荐!二. 产品特点1.使用串口通讯,芯片自动判别,编程过程中的擦除、烧写、校验各种操作完全由编程器上的监控芯片89C51控制,不受PC配置及其主频的影响。

2.采用高速波特率进行数据传送,经测试,烧写一片4K ROM的AT89C51仅需要9.5S,而读取和校验仅需要3.5S。

3.体积小巧,省去笨重的外接电源适配器,直接使用USB端口5V电源, 携带方便,非常适合初学者学习51单片机的要求。

4.软件界面友好,菜单、工具栏、快捷键齐全,全中文操作,提供加密功能,可以保护您的创作产权。

可以说是麻雀虽小,五脏俱全!5.功能完善,具有编程、读取、校验、空检查、擦除、加密等系列功能;6.40pin和20pin锁紧插座,所有器件全部以第一脚对齐,无附加跳线,对于DIP封装芯片无需任何适配器。

三. 硬件连接1.将串口插头插入电脑串口。

(注意COM端口号,默认应当接在COM1, 如果是COM2,则应当以后在编程器软件设置中更改为相应的COM号。

)B电缆插入电脑任一个USB口,另外一端连接编程器,此时编程器上电源LED点亮,表明电源接通。

3.接着安装软件,软件支持Win9x/me/2000/XP,标准Window操作界面。

本软件属于绿色软件,双击光盘/驱动程序/EPA51编程器/A51.EXE,稍后按照桌面的提示一步步完成安装,最后,桌面生成 A51编程器的图标.四. 软件使用双击桌面的A51编程器图标,程序启动后,会自动检测硬件及连接,状态框中显示“就绪”字样,表示编程器连接和设置均正常。

DD-51编程器程序说明

DD-51编程器程序说明

3 将单片机和实惠一网打尽
顶顶电子携助你 轻松玩转单片机

表 2 AT89S51/S52 编程真值表
方式
RST PSEN ALE/PROG
EA/VPP
P2.6 P2.7 P3.3 P3.6 P3.7
m 写代码数据

H
L
负脉冲(0.2~0.5 ms) H/12V
L
H
H
H
H
o 读代码数据
下图是 AT89C51 的编程电路,AT89C52 编程电路与 AT89C51 基本相同,二者的区别是, AT89C51 采用了 12 位地址,即 P1.0~P1.7 和 P2.0~P2.3,存储器容量为 212=4096 字节,也就 是 4k 字节;而 AT89C52 采用了 13 位地址,即 P1.0~P1.7 和 P2.0~P2.4,存储器容量为 213=8192 字节,也就是 8k 字节。
ddm 一、DD-51 编程器下位机监控程序的设计 . (一)51 单片机基本编程方法 w 要对某一种单片机芯片编程,我们须了解此种单片机的编程方法和时序,这方面的内容 w 在单片机的说明手册中都可以找到,不过,可能有些说明手册是英文版的,你需要具备一定 w 的英文功底才能搞明白,好在各种单片机芯片的编程方法都有相似或相同之处,因此,只要
m 执行此操作后,闪存中的内容全部变为 FFH。 o (5)写锁定位 c 写锁定位方法同“写代码数据”,只是 P2.6,P2.7,P3.6 和 P3.7 的组合逻辑电平不同,
见表 1 所示。
. (6)读特征码 u AT89C51/C52 内部有 3 字节签名字节,用于表示制造商的有关数据,其地址为 030H、 c 031H 和 032H,用于声明该器件的厂商、型号和编程电压,具体情况如下: m 030H:表示生产厂商,其值为 1EH,说明是 ATMEL 制造。

51单片机设计实例

51单片机设计实例

51单片机设计实例
1. 电子钟:使用51单片机设计一个数字时钟,可以显示小时和分钟,并能够设置闹钟功能。

2. 温度监控器:使用51单片机设计一个温度监控器,可以实时监测当前温度,并根据设定的阈值发出警报。

3. 电子秤:使用51单片机设计一个电子秤,可以精确测量物体的重量,并显示在LCD屏幕上。

4. 电子门锁:使用51单片机设计一个电子门锁系统,可以使用密码或者指纹进行解锁,并记录进出门的时间。

5. 智能家居控制器:使用51单片机设计一个智能家居控制器,可以通过手机APP控制家庭中的灯光、空调、窗帘等设备。

6. 智能车:使用51单片机设计一个智能车,可以根据传感器检测到的环境信息进行自主导航和避障。

7. 电子琴:使用51单片机设计一个简单的电子琴,可以通过按键发出不同的音符。

8. 电子游戏机:使用51单片机设计一个简单的电子游戏机,可以玩一些简单的游戏如打砖块、赛车等。

9. 电子宠物:使用51单片机设计一个虚拟宠物,可以通过按钮和
显示屏与宠物进行互动,喂食、玩耍等。

10. 无线遥控器:使用51单片机设计一个无线遥控器,可以控制电视、空调、音响等家电设备。

用SST89E516RD自制51单片机仿真器

用SST89E516RD自制51单片机仿真器

用SST89E516RD自制51单片机仿真器文/吴汉清单片机实验和开发中最重要的一个环节就是程序的调试,在业余条件下大部分人都采用烧写芯片直接到目标板上试验的方法,但是这样做在程序出现问题时比较麻烦,有时候也很难找到程序的问题出在那里。

另外也可以采用软件仿真的方式调试程序,但是这种方式也有局限性,软件仿真有时候并不能完全代替实际使用环境。

因此单片机仿真器成了程序调试中一个重要的设备。

但是在业余条件下很少有人使用价格比较高的仿真器。

为解决这一问题,本文介绍一种用SST公司的单片机SST89E516RD做的基于MCS-51架构的简易51单片机仿真器,它支持与MCS-51架构兼容的芯片,成本只有20多元,很适合业余爱好者制作和使用。

一、单片机SST89E516RD简介SST89E516RD是8位集成存储器的51系列兼容单片机,和51系列单片机软件兼容、开发工具兼容、管脚也兼容。

SST89E516RD片内有两块SuperFlash EEPROM,分为64K主块(Block0)和8K次块(Block1)。

Block0的地址范围是0000h~ffffh;Block1的地址范围是10000h~11fffh。

做仿真器时Block1存储区烧写SoftICE仿真监控程序。

SST89E516RD具有在应用可编程(IAP)和在系统可编程(ISP)的功能,其中IAP是通过串口实现的。

仿真器就是利用了SST89E516RD的IAP功能。

由于SST89E516RD具有两块独立的SuperFlash程序存储区,当监控程序在Block1存储区中运行时可以改写Block0程序存储区中的程序,这就是仿真器的基本特性。

SST89E516RD的引脚图见图1。

更详细的资料见本期配刊光盘。

二、仿真器电路和工作原理仿真器的电路见图2。

仿真器通过计算机的一个串口与KeilμVision2集成开发环境进行通信。

VTl、VT2、VD1、VD2、R1~R5等组成电平转换电路,其中发光二极管VD2作串口通信信号指示。

自己动手做51系列单片机编程器

自己动手做51系列单片机编程器

X^ 2 T L
RT—— 一 是编程过程 : S H _ ( ) 将 1
见 以 表。下
R 高 电 S r接
) 。
l iIl l l I l l

( ) R T端 电压升 至 1V编程电压。 6将 S 2

l模 式 R 眦 N^ E E P l27 3 盯l L l ^ 26P l P
P 3 7 5

地址计数器
C D

XTA Ll


V / V h
理 。由其 R M 的容量可知其地址线需要 l 条 , O 3 硬件连接原理 如图 1 所示。整个 P o口和 P 2口的低 5位为编 程地址输人端 . A8 I 2 T粥5 /5 P 为数 据 01 3 输 ^ 端 .
机一般的鳊程要 求, 兴趣 的读 者可以 自制。 有 对于广大单片机爱好者来说 ,学- 单g 机的最大困难就 , 3 - - 是没有 自己的一套 开发工 具 ,市场上的编程器最少也要卖三 四百元 . 虽然其功 能很多 . 但对于广大单片机初学者来说 , 许 了一套简易编程器 . 非常适台初学者制作 , 并且在制作 的过程
中 将 对5 系 单 机 更 一 的 解。 先 们 也 会 1 列 片 有 进 步 了 首 我 来了
解一下5 系列单片 编程原理。 1 机的
数 通过P 据则 1
口 ^。 输 编程时
P G= 32 P 。 D G R P3 O 1— PM 一 ^T A P3
=j 3 卜— P 4
2除Βιβλιοθήκη 度 电景 为 除 式送 L 个。宽 鐾 低凳 苎 可合 擦 模 ’ E一 。 的 平冲 : 脉即 端

基于51单片机的简易计算器设计

基于51单片机的简易计算器设计

基于51单片机的简易计算器设计设计一个基于51单片机的简易计算器,主要功能包括加减乘除四则运算和百分数计算。

下面是设计的详细步骤:1.硬件设计:-使用51单片机作为主控芯片。

-连接16x2的LCD显示屏,用于显示输入和计算结果。

-连接16个按键开关,用于输入运算符和数字。

-连接4个LED灯,用于指示四则运算的选择。

2.软件设计:-初始化LCD显示屏,并显示欢迎信息。

-监听按键输入,在接收到输入后,根据输入的按键值判断操作类型。

-如果按键值对应数字键,保存输入的数字,并在LCD上显示当前输入的数字。

-如果按键值对应四则运算符(+、-、*、/),保存当前输入的数字,并保存运算符。

-如果按键值对应等号(=),根据保存的数字和运算符进行相应的运算,计算结果保存并显示在LCD上。

-如果按键值对应清零(C),将所有保存的数据清空,并显示初始状态。

-如果按键值对应百分号(%),将当前数字除以100并显示在LCD上。

3.主要函数说明:- void init_lcd(:初始化LCD显示屏。

- void display_lcd(char* str):将指定字符串显示在LCD上。

- void clear_lcd(:清空LCD显示屏。

- char get_key(:获取按键输入的值。

- void calculate(:根据保存的数字和运算符进行计算。

- void add_digit(char digit):将输入的数字添加到当前数字中。

- void set_operator(char op):保存运算符。

- void clear_data(:清空所有保存的数据。

4.主要流程:-初始化LCD显示屏并显示欢迎信息。

-在循环中监听按键输入,并根据输入的按键值进行相应的操作。

-根据不同的按键值,调用不同的函数进行处理。

-最后计算结果显示在LCD上。

以上是基于51单片机的简易计算器设计的详细步骤和主要函数说明。

你可以根据这个设计框架进行具体的代码实现。

自己动手制作一个MCS-51编程器

自己动手制作一个MCS-51编程器

MCS-51单片机能够通过编程、烧录从而成为特定用途的芯片。

单片机的编程一般是使用编译软件把.asm或.a51文件编译成.hex或.bin文件,然后使用专门的编程器烧录到单片机或者外接的可编程ROM中。

本文介绍一种在没有编程器的情况下,烧录简单的单片机程序,进而自制一个通过计算机直接烧录多种芯片的实用编程器。

如果你想自己制作一个编程器,或者你对手工烧录芯片有兴趣的话,那就照本文介绍的方法试试吧。

1. 硬件原理图1是手工烧录器的硬件电路图。

这一电路是进行手工烧录的最简电路,同时将被作为成型后的编程器的一部分。

电路中的89C51芯片选用40脚的零阻力插座接入,当然也可以使用普通的DIP-40插座,只是这样拔插芯片会麻烦一点。

电路采用了一般编程器的电路原理,CD4040芯片是12位的二进制计数器,这里用作89C51编程状态的地址输入。

当CD4040芯片的RST端输入一高电平时,计数器清零,此时对应的89C51内的闪存地址为“0000”,之后,每向CLK端输入一个低电平,地址就增加“1”,一直可增加到“0FFF”,正好可以编完89C51内4K字节闪存空间。

数据输入端采用8位DIP微动开关进行手工输入,89C51的P0.0~P0.7为数据输入端口,当某一引脚未接地,则输入数据为“1”,接地则输入为“0”。

P2.6脚为芯片编程/擦除选择,编程时应接低电平。

P3.6、P3.7也是芯片编程/擦除选择,编程和检验时均接高电平。

P2.7脚为闪存器的读写选择,写入时(烧录)接高电平,读出时(检验)接低电平。

另外,测试用表笔可以用来检查地址、数据端口各位数据,端口为“1”即高电平时,LED发光,端口为“0”即低电平时,LED不发光。

当烧录过程中不慎写入错误数据时,则应该进行整片擦除,从头开始。

进行擦除时,要先把89C51置于擦除状态,即P2.6接高电平,P2.7、P3.6、P3.7都接低电平,然后按下“写入”按钮10ms以上,芯片即被整片擦除,片内所有地址单元均重新置为FF,可以重新置为编程状态,从头开始烧录。

51单片机DIY做PLC编程

51单片机DIY做PLC编程

51单片机DIY做PLC编程有朋友想定制一个净水机控制器,有一些独特的功能要增加,但是商品控制板没有这样的功能,问我能否做一个,我觉得单片机完全能满足这种简单的控制需要,上手开始编程序时候突然感到,用PLC逻辑编这种功能是非常简单轻松的,而如果用汇编或C编却感觉有点棘手,编程效率不高,所以想为何不在单片机上实现PLC的逻辑呢?上网搜索尝试看能否找到合适的程序下载来稍微改改就能用的呢?方案几年前就有了,实际上是利用三菱的低档PLC编程软件编辑好梯形图,存盘后用专用的格式转换工具转换成HEX单片机烧写文件烧进去,尝试下载三菱PLC工具软件,但是在我的WIN7-64位系统上不能正常工作,好容易换了系统装好开发工具,但是初次上手这款开发工具,界面挺复杂的,懒得研究各个按钮的使用,由于是单片机的硬件,对于程序的编制和转换有很多限制条件,否则是转换不成功的,嫌麻烦,放弃!某宝倒是有百元PLC板出售,但是为了这么个简单的东西专门买个全功能板子有点浪费,而且其编程软件仍然是三菱的盗版软件,算了,再想办法把。

由于工作中经常接触PLC程序,对其工作原理也略知一二,网上也有相关的说明介绍,其实就是三个主要步骤,第一步扫描IO输入,第二步执行逻辑,第三步输出逻辑到IO,很简单的,最早PLC也是用单片机实现的,我为何不用汇编在51上搭建一个架构,简单的逻辑编制进去就能运转呢?其中逻辑执行步骤还是有点意思的,需要把PLC逻辑翻译成单片机的汇编语言执行,这块开始也没有把握,后来搜索到一篇百度文章,介绍了一下三菱PLC逻辑是如何翻译成汇编的,我看了下估计其实是利用反汇编工具把HEX反编译成的ASM代码,并不清晰明了,而且还带着反汇编时候的行号,仅供参考了。

搜索结果中也有几篇论文,涉及到在51单片机上实现PLC逻辑的内容,但是那些论文都是充数的,仅仅几个IO逻辑,没有什么定时器,计数器功能的体现,哎!仅供参考!看来这个PLC系统还是需要自己写了!OK!既然决定自己重写,那就开工吧!利用春节休假时间,编制了如下ASM51汇编PLC代码:代码主要架构如下:1、IO定义部分:根据所使用的单片机IO口数量,任意指定多少个I多少个O,那几个脚是I,哪几个是O都可以任意指定,在这个51系统里面设计了最大32个I,32个O,占用64个位寻址区域,其实用不到那么多,也可以分配给其它需要的标志位用,因为51系统总可位寻址地址只有128位,需要仔细分配.2、位寻址变量定义(包括各类标志位,临时变量寄存器等等)目前设计了8个计时器的Timer DN, Timer EN,共16位,8个计数器的counter reset 和counter DN 标志位共16个,专用于上升沿下降沿检测的标志位4对,占用8个,剩余用于临时变量,这些地址分配在这块变量定义区域可以根据需要任意调整3、内存规划,包括堆栈区的设置,定时器,计数器的累加值和预设值地址等等,目前初步定义8个计数器的当前计数值和预设值,8个计时器的当前计数值和预设值,共占用32个内存地址,也可根据需要调整,51单片机片内总的用户可用内存地址包括堆栈区只有128个,实际去除位寻址区和堆栈区可用的估计只有80个左右,不过对于小程序应该够用的。

自制Monitor-51仿真器

自制Monitor-51仿真器

键盘左右键可以进行前后翻页操作自制Monitor-51仿真器自制Monitor-51仿真器51单片机是很适合初学单片机的人学习的,一则其结构和原理相对于其他单片机而言要简单些,二则现在国内关于51的书籍等学习资源也是很丰富的。

初学单片机的人可以在动手自己制作的过程中得到到动手能力的锻炼,而且往往动手过程要比只坐在那里写程序而言更为有趣味些。

尤其是这个过程中往往多少经历些失败挫折最终获得成功。

学单片机呢,仿真器往往是最为让人着迷的了,因为它可以帮助人更好理解和学习程序知晓程序的运行程序的结构,并能从中获得更多成功的喜悦---亲眼一步一步地看到自己程序的运行,而自制仿真器也是一件很有挑战和好玩的事了。

自己也亲手做过51和AVR单片机的仿真器,这里先介绍51单片机的Moniter-51仿真器,能在Keil编译环境中对51单片机仿真。

下图为用万用板焊的Monitor-51仿真器,由于不是做板焊的,多少看起来是有点粗糙了。

Monitor-51制作的资料包括电路图和调试程序等。

其实光是焊好还并不代表好使,之后的软件配置和烧写过程还颇费些力气的。

下面就介绍在XP系统中利用Keil编译器的仿真器配置文件INSTALL.BAT来生成自己做的仿真器所需要的配置文件。

这个文件在\Keil\C51\MON51中,同意文件夹下还有INSTALL.A51和MON_BANK.A51,这两个文件是Moniter-51的资源配置文件,用户需要修改相关的参数后才能使得仿真器正常运行。

首先由“开始”-->“运行”-->“CMD”进入XP系统的DOS状态,在进入提示界面光标闪烁处键入“CD C:\Keil\C51\MON51 ”(其中C:\为Keil所在的硬盘,可以根据你自己的电脑所安装的路径修改)然后敲”回车“进入MON51所在的文件夹。

然后在下一行的光标闪烁处键入”install.bat 0 7f 0"再敲回车,中途按提示按一次任意键就OK 了(其中参数0 7f 0 是可更改的,需要根据自己的仿真器的电路来设置。

自制51单片机、AVR单片机 USB下载线

自制51单片机、AVR单片机 USB下载线

现在的笔记本包括台式机都渐渐地舍弃了并口、串口;很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法。

看来做个USB-ISP下载线是势在必行了。

在网上搜了下,主要有两种方案,一种是用FT245串口芯片加ATMEGA8的方案,另一种是只用ATMEGA8进行USB串口协议的软件模拟和ISP下载全部完成。

据说第一种稳定,但成本高,电路复杂,不便自制。

我们还是本着低成本,简单易做的原则进行。

就用单个M8来做。

好!废话少说,干活。

在网上搜了一下找了个BUG少,易于自制的图。

在制做前首先要搞清楚几点,第一,这个USB下载线本身就是一AVR单片机,在制做完成后首先也得通过其它并或串口ISP下载线给它下载程序,这样它才能工作。

第二先得大概了解一下这个AVR单机机M8的基本资料。

这样才能对电路有个了解,从而便于调试。

因此,你原先用的并口ISP下载线在这里还得起着关键的作用,可别扔掉啊!我图示一下这个过程先:接下来按上述图的要求准备元件。

元件准备好后,先得检测下质量,电阻的阻值、发光管的极性、电容是否有短路。

要测试下两个稳压管的稳压值是否正确。

最最重要的是先把USB接口用延长线接到PC上,然后用万用表测一下正极在哪,做个标记,这样就能搞清楚了D+、D-的位置,也不会接反电源了。

免得焊好后发现错了极性反复焊,焊盘很容易脱落,也避免接反烧了元件。

(我开始用的是USB公头接口,后来发现在板子上吃不上劲,稍一用力很可能会松脱。

所以换成母口了)电路图我整理了一下,因为有的元件不需要,有的为了方便检查,避免漏连了线。

焊接过程就没什么好说的了,不是PCB板,是洞洞板的,在事先大概做个布局(布局原则就是减短引长度,跳线尽量少。

好像我做的跳线并不少哦!)然后就按照上面的电路图焊接,完成后如下图,感觉是不是还不错?:再来张反面吧,有点惨不忍睹吧!在调试前也还得先弄清几个问题:第一、电源题:原先的并口下载线是靠S51板上来供电的,也就是说当你焊好你的USB-ISP板后给它装固件时,USB-ISP板得向原并口下载线供电,而固件装好后USB-ISP板就是靠PC的USB口向我们的USB-IS板供电了,而你以后的51实验板就不能向这个USB-ISP板供电了,否则PC和51实验板都向USB-ISP供电,那么电压不同就有可能烧坏PC口或元件的。

51单片机汇编语言教程

51单片机汇编语言教程

51单片机汇编语言教程:1课:单片机简叙1、什么是单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。

在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。

而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。

单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。

天!PC中的CPU一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。

不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。

为什么会这样呢?功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。

另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。

既然如此,单片机的功能肯定不强,干吗要学它呢?话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比。

所以8051出来十多年,依然没有被淘汰,还在不断的发展中。

2、MCS51单片机和8051、8031、89C51等的关系我们平常老是讲8051,又有什么8031,现在又有89C51,89s51它们之间究竟是什么关系?MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自制51编程器
作者:佚名来源:不详录入:Admin更新时间:2008-7-26 19:46:23点击数:3
【字体:

AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。

一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。

为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。

由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。

对于很多像我这样一些不算太年轻的从80年代组装7管半导体收音机入门的电子爱好者来说,面对单片机似乎显得有点怯场,但是事实上我以为他甚至比组装一个收音机更简单:以下是它的硬件电路图,稍微有一点耐心,完全可以用面包板搭焊。

为了方便大家制作,我把电路简化设计了一下:
Q2, Q4以及周围的几个元件构成了电平转换电路,这样节省了1片max 232芯片,在要求不高的场合,这个电路在单片机通信中可以取代MAX232。

Q1, R2,R4,DW2,4个元件为编程器提供烧写用12V电压,其中,R4, R2构成了分压电路;平时,监控芯片89C51第13脚(P3.3)输出高电平,Q1导通,R2(1K)将DW2(12V)拉低,此时DW2电压由R4,R2 分压,大约3-5V 之间;当写程序时,监控芯片第13脚(P3.3)输出低电平,Q1截止,DW2(12V)直接送到被烧芯片的31脚,从而提供烧写电压。

ATMEL官方网站提供的编程器器烧写电压是用LM317调整得到的,并且用到了两个高精度电阻,电路复杂且成本高,该电路经过本人数百台的实验证明非常稳定可靠.
电源变压器要求为15V的电源,例如常见的3-12V直流可调电源,注意其空载电压不要低于13V , 滤波应好一些,否则可能出现编程不可靠的情况。

监控芯片用IC座安装,另外找一个编程器烧写好监控程序EZ51.HEX后插入,方便调试。

烧写卡座如果购买有困难,可以直接用一个IC座。

组装好后通电,用万用表检查:
1, 7805输出5V ,D2 电源指示灯亮。

(图中我用的是78L05)
2, DW2电压为3-5V。

4, 将Q1的基极对地短接,DW2电压为12V。

5,U1(89C51)的18,19脚电压为2.2V, 2.1V,此电压可作为电路是否起振的依据。

连接电缆用9对9一头公一头母的串口线,注意市场上有些串口线的两头2,3脚是交叉的,最好用万用表检查一下是否为一一对应。

如果没有串口线,也可拆一个老式的串口鼠标自制,只要两头把2,3,5脚连接好即可。

本电路对元件没有特殊要求,电阻用1/8W普通碳膜,三极管我用的是2SA1015,2SC1815, 实际上很多小功率管都可以,例如9014,9015。

只是需要注意他们的管脚排列区别。

二极管1N4148可以用1N4004替代。

另外12V稳压管最好挑选一下,精度要求为5%以内。

11.0592M晶体有条件的话应当测试一下,市场零售的晶体有些不起振。

这款编程器的烧写软件EZ31.EXE界面很简单;全兼容于WINDOWS9X-2000。

仅有几个按钮,分别为打开文件(SEND),读芯片(READ),退出(EXIT),COM选择,加密(LOCK CODE),以及校验(FAST VERILY)。

大家用一下就知道了。

注意目前提供下载的为它的升级版本ez4.0自动监测端口号和芯片。

使用更简单!
连接好编程器的电源以及串口线,并插入烧写的芯片,点击COM1或COM2(以实际连接为准,本例中我连接的是COM2), 窗口右下脚显示89C51Found。

此时应当看到信号指示灯D6每2秒亮一下,表示联机工作。

选择一个需要烧写的hex文件开始烧写,如果一切正常,显示的界面如上图所示。

双面板超级小型的pcb;注意监控芯片在反面贴片安装。

因此整个电路板仅仅比火柴盒子稍稍大一点,可能是您所能见到最小巧的编程器了。

是不是非常漂亮?
看看这张图:想必您一定搞得定了!一共不到30个零件,确实很ez,按组装一块连插件到焊接测试只要半小时。

元件清单
Part Type Designator Footprint
1K R19 axial0.3
1K R2 axial0.3
1N4148 D5 diode0.4
1N4148 D1 diode0.4
3K R3 axial0.3
3K R4 axial0.3
4K7 R13 axial0.3
4K7 R11 axial0.3
4K7 R8 axial0.3
10K*8 R18 (排形电阻)
10K R7 axial0.3
10K R6 axial0.3
10K R5 axial0.3
10UF C8 RB.2/.4
10UF C14 RB.2/.4
10UF C7 RB.2/.4
10UF C6 RB.2/.4
11.0592M XT2 rad0.2 (晶体)
12V DW2 (稳压管)
15V IN 7257 (电源输入插座)
18K R12 axial0.3
30P C15 RAD0.1
30P C16 RAD0.1
104 C4 RAD0.1
104 C5 RAD0.1
A1015 Q4 to-126
C1815 Q1 to-126
C1815 Q2 to-126
IN4148 D4 diode0.4
LED D2 rb.2/.4 (发光二极管)SINGAL D6 rb.2/.4 (发光二极管)
DB9 232插座
40PIN 烧写卡座
40PIN IC座(插监控芯片用)
232串口线
PCB
89C51监控芯片
15V电源
DIY安装步骤:
1:安装电阻,共11个;元件插到位后焊接剪脚:
2:安装二极管,三个1N4148 和一个12V稳压管DW2。

请仔细看管子的表面有字:稳压管印有12V字样,千万别给搞混了。

二极管是有极性的,二极管的黑头方向插向pcb的印有白色的一边就对了:元件插到位后焊接剪脚:
3:安装2个104和2个30p电容;11。

0592晶体,这些都没有方向性随便插:
4:插入三极管。

电解电容,发光管:注意这些东西都是有极性的:如果搞反了可不行。

电解电容和发光管很好办,都是负极向下。

三极管(2个2SC1815,一个2SA1015,)以及一个78L05的稳压IC:他们的方向在PCB上可以看到,屁股的方向就是半圆圈的方向。

5:插入排阻(排阻有一个白点的一端是公共端,他的位置在靠近PCB边源的一端;电源插座,232插座就不用说了。

6:插监控芯片的插座。

7:插烧写卡座。

由于他和监控芯片是面对面的,因此必须先焊接监控芯片插座,最后焊烧写卡座。

否则等会不好动烙铁了。

8:如果您实在搞不清除元件的方向,请睁大眼睛仔细看看上面的照片吧。

9:最后检查一下电路板的各个地方有没有插错,短路的。

再按照上面的调试方法调试。

如果没有插错基本可以一次调OK。

相关文档
最新文档