单片机编程
标签: 单片机编程
上传时间: 2014-12-26
上传用户:ABCDE
51单片机编程
上传时间: 2013-11-04
上传用户:浩子GG
单片机编程汉字字库提取工具
上传时间: 2014-12-26
上传用户:liu999666
51单片机寄存器的描述。。引脚
上传时间: 2013-10-14
上传用户:jiangshandz
单片机编程实例_led等
上传时间: 2013-11-25
上传用户:luke5347
摘要:本文通过介绍PIc秉列单片机的优越性和其所配置的定时器/计数器TMRo.TlⅥI“、TMR2模块之间的共性及各自的特性,以 及PIc单片机在电机调速中的应用。 关键词:单片机定时器/计数嚣TMRo,TMRl,TMR2 电机
上传时间: 2013-10-14
上传用户:dingdingcandy
说明:适用于没用烧写ATmega8并行编程器的朋友,初用ATmega8的工程师常常在串行编程时写错熔丝位,及加密位,造成不能再串行编程的不便,没并行编程将无法再使用,本人就是因此才特花两天时间做了一个简易的并行编程器(很简单,用万能板搭焊即可),将的芯片加密位及熔丝恢复出厂默认值恢复串行编程。
上传时间: 2013-11-07
上传用户:牧羊人8920
微型51/AVR 编程器套件装配说明书 请您在动手装配这个编程器之前,务必先看完本说明书,避免走弯路。 1.收到套件后请对照元器件列表检查一下,元件、配件是否齐全? Used Part Type Designator ==== ================ ========== 1 1k R6 1 1uf 50V C11 5 2k2 R2 R3 R4 R5 R11 1 10K*8 RN1 2 11.0592MHZ Q1 Q2 1 12V,0.5W D2 2 15k R7 R8 2 21k R9 R10 4 33p C6 C7 C8 C9 1 47uf 25V C10 1 74HC164 IC6 2 78L05 IC4 IC5 1 100uf 25V C12 1 220R R1 1 AT89C51 IC2 1 B40C800(W02) D1 2 BS170 T1 T2 1 BS250 T3 1 DB9/F J2 1 J1X2 J1 1 LED GN5 D3 1 LM317L IC1 1 TLC2272 IC7 1 ZIF40 IC3 5 1uf C1 C2 C3 C4 C5 另外,套件配有1.5米串行电缆一根和配套的PCB一块,不含电源。编程器使用的15V交流电源或12V直流电源需要自己配套。2.装配要点:先焊接阻容元件,3个集成电路插座(IC2,IC7,IC6)其次是晶振, 全桥,稳压IC 等,然后焊接J2,最后焊接T1,T2,T3三只场效应管。焊接场效应管时务必按照以下方法:拔去电烙铁的电源,使用电烙铁余温去焊接三只场效应管,否则静电很容易损坏管子。这是装配成功的关键。这三只管子有问题,最典型的现象是不能联机。由于电源插座封装比较特殊,国内无法配套上,已改用电源线接线柱,可直接焊接在PCB板焊盘上,如下图1所示(在下图中两个红色圆圈内指示的焊盘),然后在连接到套件中配套的电源插座上。最近有朋友反映用15V交流比较麻烦,还要另外配变压器。如果要使用12V的直流电,无需将全桥焊上,将两个接线柱分别焊接在全桥的正负输出位置的焊盘上即可,如下图2所示,蓝色圆圈内指示的焊盘,连接电源的时候要注意正负极,不要接错了。方形焊盘是正极。40脚ZIF插座焊接前,应该将BR1飞线焊接好。注意:由于焊盘比较小,注意焊接温度,不要高温长时间反复焊接,会导致焊盘脱落。
上传时间: 2013-12-31
上传用户:caiguoqing
第一部分:硬件结构和安装方法 将组装好的编程器主板用串口电缆连接到计算机COM1口上,连接好电源线,电源使用的是15V交流电或12V直流电。具体连接方法可以参考装配说明书。加电后指示灯闪烁,表明电路工作正常。如果能联机成功,表明编程器已通过了自检,可以开始编程操作了。注意:指示灯持续亮的时候,表明正在读写,这时不能插拔芯片。编程器使用中途不能断电,如断电再次加电时,不能联机。需要重启动计算机。再次启动编程器软件。第二部分:软件的安装设置将光盘上51PROG子目录拷贝到计算机硬盘上,为使用方便,可以将PROFLASH.BAT命令建一个快捷方式在桌面上。然后需要设置计算机串口COM1通讯波特率,步骤如下:单击鼠标左键,选择“开始”---〉单击“设置”---〉单击“控制面板”---〉双击“系统”---〉单击“设备管理器”---〉双击“端口(COM&LPT)--->选择“通讯端口COM1”如下图一所示
标签: 51编程器
上传时间: 2013-11-12
上传用户:zzbbqq99n
串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 { nTimeOut++; if(nTimeOut>1000)//超时了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上传时间: 2013-11-12
上传用户:gut1234567