搜档网
当前位置:搜档网 › 使用MPLAB烧写PIC单片机程序步骤(自己写的)

使用MPLAB烧写PIC单片机程序步骤(自己写的)

使用MPLAB烧写PIC单片机程序步骤(自己写的)
使用MPLAB烧写PIC单片机程序步骤(自己写的)

步骤:加载文件------选择单片机型号-------选择烧写器--------连接器件--------烧写程序

1、加载文件

选择软件界面左上角“File”选项;

弹出下拉选项框,选择“Import”选项,弹出对话框;

在“查找范围”中选择要烧写文件的路径,然后选择要烧写的后缀为.hex的文件,再点击右下角“打开”按钮

2、选择单片机

选择软件界面第一行第八个“Configure”选项;

弹出下拉选项框,选择“Select Device”选项,弹出对话框,在Device选项的下拉框中选择所要烧写的单片机型号;

3、选择烧写器

选择软件界面第一行第六个“Programmer”选项;

弹出下拉选项框,选择“Select programmer”选项,弹出右拉选项框,选择第4项“PICkit_3”;

硬件连接好后,继续操作以下步骤:

4、连接器件

再次选择软件界面第一行第六个“Programmer”选项;

在此次下拉框中点击“Reconnect”选项

5、烧写程序

点击第一个图标

如何使用BSL方式给MSP 单片机烧录程序

如何使用BSL方式给MSP430单片机烧录程序 一,使用两个软件:IAR(EW430)和MSP430BSL.exe 二,IAR软件用于编程和编译;BSL软件负责载入烧录。三,在IAR中编程操作: IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。 国内普及的MSP430开发软件种内不多,主要有IAR公司的Embedded Workbench for MSP430(简称为EW430)和AQ430。 目前IAR的用户居多。IAR EW430软件提供了工程管理,程序编辑,代码下载,调试等所有功能。并且软件界面和操作方法与IAR EW for ARM等开发软件一致。因此,学会了IAR EW430,就可以很顺利地过渡到另一种新处理器的开发工作。 IAR新建工程步骤 Step1:选择主菜单的File >New>Workspace命令,然后开启一个空白工作区窗口 Step2:选择主菜单Project>Create New Project>选择Empty project。点击OK。最好新建一个文件夹,用于放置所有的生成文件。选择保存路径后,点击保存,新工程建立完毕 Step3:file>new>file>编辑代码>save>文件名可以自己起,但后面一定要加 ”.c” ,保存为C文件 Step4: 右击工程名,将写好的程序添加进去Add>Add Files,也可以用Add>Add“main.c”添加入工程。 Step5: 右击工程名,点击Option>General Options>Device>选择MSP430F149 Step6: 继续设置Linker>Output>文件名.txt(这步很关键)>fomat>

51单片机实验程序

3 3 3 用查表方式编写y=x1 +x2 +x3 。(x 为0~9 的整数) #include void main() { int code a[10]={0,1,8,27,64,125,216,343,512,729}; //将0~9 对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255 或-128~+127 之间的话就用char ,而现在的值明显超过这个范围,用int 较合适。int 的范围是0~65535 或-32768~32767 。 int y,x1,x2,x3; //此处定义根据习惯,也可写成char x1,x2,x3 但是变量y 一定要用int 来定义。 x1=2; x2=4; x3=9; //x1,x2,x3 三个的值是自定的,只要是0~9 当中的数值皆可,也可重复。 y=a[x1]+a[x2]+a[x3]; while(1); //单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。 } //结果的查询在Keilvision 软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch 的框架内双击“double-click or F2 to add”文字输入y 后按回车,右侧会显示其16 进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10 进制数。 1、有10 个8 位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的 数据(1 的个数为偶数)都要存到内RAM50H 开始的数据区中。试编写有关程序。 #include void main() { int a[10]={0,1,5,20,24,54,64,88,101,105}; // 将所要处理的值存入RAM 中,这些可以根据个人随意设定,但建议不要超过0~255 的范围。 char i; // 定义一个变量 char *q=0x50; // 定义一个指针*q 指向内部0x50 这个地址。 for(i=9;i>=0;i--) //9~0 循环,共十次,也可以用for(i=0;i<10;i++) { ACC=a[i]; //将a[i] 的值赋给累加器ACC if (P==0) //PSW0 位上的奇偶校验位,如果累加器ACC 内数值1 的个数为偶数那么P 为0,若为奇数,P 为1。这里的P 是大写的。 { *q=a[i]; q++; // 每赋一个值,指针挪一个位置指向下一个。 } } while(1); //同实验一,程序不能停。 }

自制单片机烧写器

像我们这样搞电子的人,要的就是动手的乐趣。下面我们来介绍近期在网络上非常流行的USBasp下载线,因为现在的笔记本包括台式机都渐渐地舍弃了并口、串口;所以之前的并口或串口下载线已经不能再使用了,应该说是做个USBasp下载线是势在必行的,下面我们来介绍其制作的全过程。 图(1) 图1为原作者设计的原理图,为了便于制作我修改过某部分电路如图2,其功能一样。

图(2) 在制作之前首先要搞清楚几点: 第一、这个USB下载线本身就是一块AVR单片机,在制作过程中也必需对其进行程序下载才能运行。 第二、先得大概了解一下这个AVR单机机ATmega8的基本资料。这样才能对电路有个了解,从而便于调试。第三COM1是PC机与USB相接的端口,我们在焊接时一定要区分GND、VCC、D+、D-,下面图(3)是对应本次制作的USB端口的引脚功能。在焊接的之前务必搞清楚,否则会造成PC机端口的USB或下载给的ATmega8烧毁。

图(3)USB端口引脚功能 第四﹑最后我们来了解一下电路的结构。对应图2,其中JP1是选择下载时的速度是快速或慢速,当JP1接地时选择低速,否则为高速。对于选择快速还是慢是相对于被下载的单片机晶振时钟而言的。一般来讲,目标单片机与USBasp的ATmega8的时钟不能相差太远。而JP2是电源的选择,当短接时被下载的单片机选择USBasp供电,则否选择独立供电。切记:两者只能任选其一。LED2为ATmega8程序运行的指示灯,当其点亮时就证明USBasp运行正常。LED1为下载程序时的工作指示灯,当接收到上位机信号

时,此灯就会闪动。 图(4)制作的全部元器件 图(5_a)与图2对应的PCB板顶层

51单片机考试常见试题简答 题

简答题部分 1、什么叫堆栈? 答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。 2、进位和溢出? 答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。 3、在单片机中,片内ROM的配置有几种形式?各有什么特点? 答:单片机片内程序存储器的配置形式主要有以下几种形式:(1)掩膜(Msak)ROM型单片机:内部具有工厂掩膜编程的ROM,ROM中的程序只能由单片机制造厂家用掩膜工艺固 化,用户不能修改ROM中的程序。掩膜ROM单片机适合于 大批量生产的产品。用户可委托芯片生产厂家采用掩膜方法 将程序制作在芯片的ROM。 (2)EPROM型单片机:内部具有紫外线可擦除电可编程的只读存储器,用户可以自行将程序写入到芯片内部的EPROM 中,也可以将EPROM中的信息全部擦除。擦去信息的芯片 还可以再次写入新的程序,允许反复改写。 (3)无ROM型单片机:内部没有程序存储器,它必须连接程序存储器才能组成完整的应用系统。 无ROM型单片机价格低廉,用户可根据程序的大小来选择外接 程序存储器的容量。这种单片机扩展灵活,但系统结构较复 杂。 (4)E2ROM型单片机:内部具有电可擦除叫可编程的程序存储器,使用更为方便。该类型目前比较常用 (5) OTP(One Time Programmable)ROM单片机:内部具有一次可编程的程序存储器,用户可以在编程器上将程序写入片 内程序存储器中,程序写入后不能再改写。这种芯片的价 格也较低。 4、什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系? 答:某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周

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位,需要仔细分配.

单片机如何运行程序

单片机如何运行程序 知道了单片机通过I/O口与外设打交道,也知道了单片机的程序与数据如何保存,到底单片机是如何运行程序的?原来单片机和其他微机一样,也拥有一个中央处理器(CPU),它是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。它在单片机中的核心地位见图2.10所示。它通过单片机的内部总线,将单片机内部的各个部分:程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等联系在一起,内部总线有三种:数据总线,专门用来传送数据信息,地址总线专门用来传送地址信息,选中各操作单元,控制总线专门用来传送CPU各种控制命令,以便CPU统一指挥协调工作。完成程序所要执行的各种功能。CPU执行程序一般包括两个主要过程:第一,就是从程序存储器中取出指令,指令的地址由PC指针提供,在前面我们已经知道,PC指针在CPU取指后会自动加一,所以PC指针总是指向下一个将要取出的指令代码或操作数。这样,就能保证程序源源不断往下执行。第二,就是执指过程,取出的指令代码首先被送到CPU中控制器中的指令寄存器,再通过指令译码器译码变成各种电信号,从而实现指令的各种功能。 4.怎样保证CPU工作? 现在我们知道了单片机怎样取指、执指,即怎样运行程序了。那么怎样才能保证CPU有序的工作?这就必须提到单片机的两个非常重要的外围电路:单片机的时钟电路和复位电路。在单片机上面有两个引脚,分别是它的第18、19脚,其功能如下。

Pin19:时钟XTAL1脚,片内振荡电路的输入端。 Pin18:时钟XTAL2脚,片内振荡电路的输出端。 89S51的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体和振荡电容,振荡电容的值一般取10p~30p。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。如图2.11 当时钟电路起振后,产生一定频率的时钟信号,单片机的CPU在时钟信号的控制下,就能一步一步完成自己的工作。通常我们必须了解以下几种周期。 【振荡周期】:单片机外接石英晶体振荡器的周期。如外接石英晶体的频率若为12MHz,这其振荡周期就是1/12微秒。 【状态周期】:单片机完成一个最基本的动作所需的时间周期。如扫描一次定时器T0引脚状态所需要的时间。一个状态周期=2个振荡周期。 【机器周期】:单片机完成一次完整的具有一定功能的动作所需的时间周期。如一次完整的读操作或写操作对应的时间。一个机器周期=6个状态周期。 【指令周期】:执行完某条指令所需要的时间周期,一般需要1~4个机器周期,如MUL AB指令是四机器周期指令。一个指令周期=1~4个机器周期。 单片机工作时,除了需要时钟支持外,还必须有一个初始状态,即单片机的复位状态。在单片机外部引脚第9脚,就是专门给单片机提供复位脉冲的。 Pin9:RESET/Vpd复位信号复用脚,当89S51通电,时钟电路开始工作,在RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位。

自制PIC单片机烧写器

此主题相关图片如下:

此主题相关图片如下: ========================================================================= ===== 测试JDM烧录器 用RS232延长线将JDM烧录器与你的电脑连线,开启IC-PROG程式。选JDM programmer,再依你的连线选COM1或COM2,其他的不动。如不知道是COM1或COM2,就一个一个试吧。 此主题相关图片如下:

此主题相关图片如下: OK后再选Hardware Check,把Enable MCLR打勾`,拿电表量(什么?你没有!!那...那...)IC 插座第4脚对第5脚应有13.3V,把Enable MCLR勾拿掉,应为0V或0.3V以下,这是Vpp 烧录电压。 此主题相关图片如下: Enable Data Out打勾则第13,17脚对第5脚都是5V,同时Data in会自动打勾。 Enable Clock打勾则第12,16脚对第5脚都是5V。 Enable VCC打勾则第1,3,10,14脚对第5脚都是5V。 如果都对,那恭喜你,烧录器做好了。否则...

Do(去抽根烟、喝杯水,再回来检查一遍)" Loop until OK ============================================================== 插上PIC16F84A...........烧............. 先把IC选为PIC16F84A,现在可以把PIC16F84A插上读读看,如果是空白IC就会全是'3FFF'。不是的话可以按清除键,全部清除。 去下载个现成的16F84A的HEX档来烧看看。将ZIP档解开,存到桌面。Open file读入RC_84A.HEX,然后照下图社设定WDT enable,PWRT enable,Oscillator XT。...........烧.............数秒钟后就知道了!! 再次恭喜你,哦?失败?IC是好的吗? 此主题相关图片如下: OK!! =========================================================================组译程式MPASMWIN ASM档写好后,需组译成.HEX档才能烧录。MPASMWIN的使用很简单,下载一个ASM档来试试。 依PIC的型号设定Processor即可,其他不动,用Default,按Assemble就会产生.HEX,及.ERR档。 此主题相关图片如下:

如何将程序代码烧录进STC单片机

不能用keil作下载,它应该只是一个程序编辑和调试用的吧,用keil生成hex 文件。下载时用专门的下载软件找到生成的那个hex文件就可以下载了。,有专门的单片机烧写软件的。那个软件的名字叫STC-ISP V391(你可以下载个更高版本的)的,你的开发板里面应该自带下载软件的啊! 如果你用的下载下是USB转串口的线的话,你需要安装一个USB转串口驱动才能下载程序。网上搜一下就可以了。如果有光盘的话就在光盘里面找,里面肯定有的。 如何将程序代码烧录进STC单片机 先安装<STC单片机编程工具>软件到计算机中,然后进行下面的操作。 以下是烧录程序的主要界面。烧录过程非常简单,操作也非常简单。图中红色的五个大数字就表示了整个过程。简简单单的五步就可以了(实际上只需4步)。 启动本烧录程序后,第一步就是选择烧录器件。本烧录软件支持STC全系列的51单片机芯片,因此,第一步必须选择相对应的型号。由于本实验板选用的单片机芯片就是本烧录

软件首次启动默认的型号,所以,本项一般都不需要选择。 另外,“AP Memory”是指该芯片的内存大小和起止地址,根据器件型号自动更改,不必理会。 选择了器件型号,第二步就应该选择将要被烧录的HEX机器码文件。HEX文件由单片机开发环境输入、编辑代码,最后编绎产生。

至于如何产生HEX文件,很多资料也都有介绍,本板光盘中有详细的说明,并且提供了多套开发软件(每套都能用)。通过对照自学完全可以很快掌握操作。并且,本实验板光盘也提供了多种单片机开发环境供大家学习研究。 本光盘中提供了一些例子程序,大家可以点“open file”按钮,弹出以下窗口(源程序也有,但这里不显示),先选择一些例子程序烧录实验。 选好了文件后,大家可以发现“文件校验和”中的数据发生了变化,大家可以通过留意这个数据是否变化来确定打开文件是否成功,或者文件刷新是否有更改。 当然,文件打开后,会显示在右边的数据区,大家也可以观查右边数据区是否有更改。不过,当数据太多时,更改的地方又很少时,观查“文件校验和”会更快更准确。 选好了器件,选好了文件,第三步就可以设置串口和串口通信速度了。串口是一个九针的插座,老式的鼠标口就是串口。为了让通信可靠,我们可以适当的选低一些的速度,这个串口线较长时非常重要。 烧录过程中,如果出现失败,可以考虑将串口通信速度降低再试,这是由于机器配置以及当地环境因素决定的,当环境干扰过大时,必需选低一点的波特率(即通信速率)。烧录成功与失败,可以从信息区的提示看出。 选择并设置好串口后(一般不需更改),进入第四步,而这一步基本上不用更改。设置时钟倍频主要是为了提高工作速度,设置时钟增益是为了降低电磁幅射。这些,对于高级工程人员和最终产品会很有用,对于初学者来说,只当没有看见就行了。 第五步是最后一步,点击“Download/下载”,就可以进入烧录状态。 特别说明:点击“Download/下载”之前实验板的电源开关必须关闭,使单片机彻底断电,点击“Download/下载”之后才可以使单片机上电,完成程序的烧录。 注意:点击“Re-Download/重复下载”也可以,这常用于大批量的编程,不必每次都去点“Download/下载”。出现以下图状态时,给实验板通电就可以完成编程过程(如果实验板已经通电,则必须关掉电源1秒钟再次通电)。

自制51编程器

自制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调整得到的,并且用到了两个高精度电阻,电路复杂且成本高,该电路经过本人数百台的实验证明非常稳定可靠.

单片机各种烧写文件格式简介

各种烧写文件格式简介-ELF Hex Bin 一,ELF Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,有三种主要类型: Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,有三种主要类型: (1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。 (2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载的内存执行。 (3)共享目标文件(shared object file),连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映像。 ELF文件格式比较复杂。 二,hex 什么是Intel HEX格式? Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录 由十六进制数组成的机器码或者数据常量,Intel HEX文件经常被用于将程序或数据传输 存储到ROM.EPROM,大多数编程器和模拟器使用Intel HEX文件. 记录格式 一个Intel HEX文件可以包含任意多的十六进制记录,每条记录有五个域,下面是一个记录的格式. :llaaaatt[dd...]cc 每一组字母是独立的一域,每一个字母是一个十六进制数字,每一域至少由两个十六进制数字组成,下面是字节的描述. :冒号是每一条Intel HEX记录的开始 ll 是这条记录的长度域,他表示数据(dd)的字节数目. aaaa 是地址域,他表示数据的起始地址 <如果是数据记录,这表示将要烧录的这条记录中的数据在EPROM中的偏移地址,

自制STC自动烧录器

自制STC自动烧录器 一直在网上找自动烧录器的资料,就是不用冷启动的那种。冷启动说来也没什么,就是很反感它。找不到,东西并不复杂。不知道为什么没人上传。这证明了懒人多。 后来想到,直接把学习板上的电路照着做就是了,那个就是免冷启动的,还找什么。于是动手。先把原图摆出来。 电路很简单。元件极少。为省事,电源开关不要,电源指示灯不要,4个插短路帽的座子也不要。注意一下,图上的8550画错了,画的是个8050。制作的时候,8550的e接电源VIN1,c接继电器。芯片的15,16脚通过27Ω电阻接USB公头,第1脚接个二极管再接单片机第10脚RXD,第5脚接单片机第11脚TXD。单片机的供电(VCC)由继电器提供。就这样完事了,简单得要死。手头刚好有两片芯片,于是动手。 说起来几句话就完事,动手来才知道难度。这PL2303是SSOP封装,长约1CM,宽大概0.8CM,上面挤满了28个脚。这东西,圆头烙铁别碰它,最好是用特尖特细的那种。 至于PCB,有条件自己做印刷板的就简单。我的打印机做不了那么精细的胶片,想想元件也不多,干脆不要线路板了。先把它乌龟翻身仰天放,用双面胶粘在板子上。然后照着图纸焊接元件。因为脚太细密,0603的电阻不好用,就在废手机板上找的电阻。然后……(充满痛苦的1000字)…….. 终于做成了!!!可是那难看的样子实在让人高兴不起来。

从没做过这么难看的东西。 插上电脑,居然一次就通过。可想而知,给我的鼓励是巨大的!! 于是继续,开工做第二个。继电器,电解电容,晶振。三极管。都要换成小型的。三极管换

成贴片的,电容在手机上拆贴片的,晶振找个小圆柱的。继电器有点难办,再小也小不到哪里去,干脆不要吧,用个贴片8550代替。(其实,用一个8050的就可以了,不用2个管) 2个小时后,第二个烧录器做成,虽然还是不怎么好看,但是小了很多了。 下面就简单了,用热熔胶厚厚的封起来,固定那些脆弱的线路,兼顾遮丑。 好了,哥俩合个照。

51单片机多任务运行

51单片机多任务运行 最近发现有的幺弟在对系统的内核感兴趣,加上我也是部分内核的初学者,突然来兴,便用了两天写了一个简单的内核。这个内核简单得不能再简单了,加上空格行、大括号和详细的注解只有246行,还带了4个点亮LED的任务。至今为止我所见最简单的内核~~~ 就跟这个内核取个“多任务分时处理内核”吧!这个内核和ucos系统思想有很大的差异,但是能够帮助我们学习理解ucos系统,能够帮我们了解51的内部结构,以及大多数的单片机运行处理数据的原理~~~ 好废话就不说啦!希望我们能互相学习共同进步 1、先来讲讲原理: 首先,我们看书时会知道51单片机在执行中断的时候,会有以下几个步骤和几种情况。 根据KEIL的编译惯例(这个编译惯例你可以在编完程序后点仿真,里面有个后缀为.src 的文件,这个文件里面是一句C对应一句汇编,你就可以知道你编译的C代码它是怎么处理的,能帮助你学习汇编哦~~~),通常把进入中断后的所使用的通用寄存器组根据情况选择压栈。也就是说,中断前后使用的寄存器组可能不一样,中断前可能使用0,中断中可能使用1。如果使用的同一组寄存器,为了保存现场,KEIL就PUSH现场数据,然后POP 就行啦。但是keil很多时候不是你想象中那样,你叫它怎样他就怎样编译。所以在程序中嵌入了少量的汇编。 其实,嵌入汇编是很简单的事情。 只要在C代码中加入#pragma asm 和#pragma endasm并在他俩的中间加入汇编就行。别忘了还要在工程文件中添加C51S.LIB,这个文件在KEIL/C51/LIB中,这个文件也很重要,不然编译会出现警告,记得把文件类型选择为全部文件,不然看不见它。 接下来说说KEIL的中断汇编。在C51中,中断到来时,CPU响应中断保存当前PC 指针地址压栈SP所指地址。然后将PC指针指向中断向量地址,在中断向量地址中只有一句汇编程序:LJMP XX 意思是跳转到某地址。因为中断后只有8个寄存器,但是你的代码量远远不只有8个寄存器能装下的。这也就是说,响应中断后,先跳转到硬件规定的地址,再由那个地址跳转到中断程序入口。 然后,PC指针跳转到中断程序地址,开始从SP所指地址压栈ACC,B,DPH,DPL,PSW,按理说还需要压栈R0~R7,但KEIL一般是通过换通用寄存器来实现的(也就是改变RS1和RS0来实现的)。也就说KEIL根本不压栈R0~R7。 这个怎么能行,当然不行!不保存我们就不能完全的返回先前压栈的任务啦!好吧,那我们就只有手动保存压栈,这样不就行了,简单吧! 所以我们来帮它。已经通过前面知道它在进入中断的时候已经把中断前的PC指针压栈到中断前SP所指的地址了,所以进入中断后,实际在SP中断前所指地址中已经按顺序压栈了PC低8位,PC高8位,ACC,B,DPH,DPL,PSW总共7个数据,SP是向上增长的,也就是说每压一次堆栈SP+1。然后再把我们的R0~R7寄存器压入堆栈,这不就行啦,就保护现场所需的全部数据,就算有时R0~R7寄存器用不上我们也得加进去,为了为了保证正确的返回现场。 因此我们保存一次数据就需要7+8=15字节的堆栈,每个任务的起始地址保存一次,中间临时要保存一次,共需要15+15=30字节的堆栈。所以定义程序空间为现场保存空间为 0~29。名字叫:unsigned char TASK_STACK[TASK_MAX][30];//程序现场保存数组。TASK_MAX是程序个数,因为每一个程序都需要保存两次,每次15个变量来保存现场,并且51是8位的单片机所以用unsigned char。 然后就是程序现场保存数组的初始化使每个数据都是0。 首先,根据响应中断后的压栈顺序,知道了数组0位和1位保存的是中断前程序的地

STC系列单片机程序烧录方法

S T C系列单片机程序烧 录方法 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

STC系列单片机程序烧录方法 来源:互联网作者: 关键字:STC单片机 ??单片机烧录 ??单片机烧录方法 ?? STC单片机具有通过串口编程功能,简单到通过串口3三根线就能将程序烧录到单片机内,这大大的方便了开发人员,省去了昂贵复杂的编程器,在调试程序时也可将内部数据直接通过串口发送到PC上观看,一些不太复杂的程序甚至可以省掉仿真器。 目前大部分的计算机都不带串口,这里还得介绍一下一个小转换工具,可将PC上的USB口转换成单片机的TTL电平。插入硬件后提示安装驱动,完成后查看PC上设备管理器,端口中会多出一个串口,这里是COM3,记住这个串口号,下面给单片机烧录是要用。

单片机板和转换板连线对应连接好,如发现无法通讯,可调整2、3的连线。 1,地线----地线 2,TXD-----RXD 3,RXD-----TXD 转换板由于PC供电,指对外提供很小的供电能力,建议单片机板用单独的电源供电,切记不能外接电源和转换板同时对单片机板供电,否则会烧设备或计算机的危险。 硬件连接正常后就是通过STC专门的烧录软件进行烧录了。

1、现在对应的单片机型号 2、打开编译过的需要写入单片机内的程序,类型都是以.bin和.Hex 结尾的文件。 3、选择连接的串口号,就是上边在设备管理器里看到的COM3。 4、选择通讯波特率,单片机目标板上有晶振的,这一项基本可以不用理会,系统会自动适应合适的波特率。如果目标板使用的是内部振荡,由于内部制造误差,自动波特率可能会连接不成功,这时就要手工

松翰单片机的OTP可重复烧写的技巧!

松翰单片机的OTP可重复烧写的技巧! 1.问题:笔者在前期工作中,常常遇到在做测试时,只要修改一些简短的指令或数据时,就要再换一个全新的芯片重新烧录一下,再测试。这样即浪费时间,又消费芯片,还消费金钱呢。 2.解决:其实OTP不是你想象的那么“顽固”,只要你对它好一些,还是有些回报的。在烧录前,芯片的内部全是由2进制的1组成,烧录后,是对里面的1进行切断成0,如此,烧录过的不能再烧录,是对已经把1烧录成0的不可再烧,而是没有把1烧成0的,还是可以再烧的。也就是说,1可以变成0,而0不可再变为1,就象保险丝一样,烧断了就不可再烧,而没烧断的,你还可以把它烧断。要想实现重烧的过程,还是要有些技巧的。哎,废话这么多,来些实例的讲吧。 你可以在你想要的地方预留些空间,等你想要在这修改时,再从里面提取出来。 ;-----------------------------------------------------------------------------; 3.实例1:在已经烧过程序的IC上修改数据: incms t_enter_io ;500ms 进入一次 nop ; mov a,#0xFF ;1 预留数据修改(二进制为:b) mov a,#0xFF ;2 预留数据修改 mov a,#0xFF ;3 预留数据修改 mov a,#0xFF ;4 预留数据修改

mov a,#0xFF ;5 预留数据修改 mov a,#0xF3 ;等待被修改的数据 cjb t_enter_io,a,e_tele_io ;249次进入一下 clr t_enter_io ; ;-----------------------------------------------------------------------------; 3.1.1 (直接修改)比如我想在已经烧有上面程序的IC的基础上,修改a=0xF3(2二进制:B)为a=0xF1,此时,你就不要再浪费IC了,直接在上面修改就可以。你可以看到,0xF3与0xF1的区别只在于3和1,二进制为:0011B和0001B,所以你可以把0011B(十进制3)中第2位的1修改为0,即从0011B成为0001B,所以可以直接修改,当然你也要以把它修改成为你想要的数据,但前提是:你只能从二进制中的1烧成0,不可从0变为1. 比如我可以把0xF1再烧成0xA1或0xA0或0x01或0x00等等。 ;-----------------------------------------------------------------------------; (覆盖修改)是否有一种可以在上面的程序中任意修改数据呢这是有的!读者可以看到,我上面的程序为了防止修改不同的数据而所预留的5条 :mov a,0xFF ,这是为了修改各种数据而预留的。你可以把 0xFF(二进制:B)修改成0~255范围的任意一个数据。修改过程为:先把在最下面的不想要的数据(直接送数指令:mov a,0xF3 ;此指令生成的机器指令为:2DF3),用 NOP(机器指令为:0000 )给填充掉。然后第5条的0xFF修改为你想要的数据),比如修改为:0x45,修改后的程序如下: incms t_enter_io ;500ms 进入一次 nop ; mov a,#0xFF

简单方便自制的几个AVR51 ISP编程器(下载线)

简单方便自制的几个AVR/51 ISP编程器(下载线) 2009-06-06 11:17 AVR单片机有许多优点,我也是个忠实支持者,是从51过度到AVR的,中途还学PIC,初学51时买了学习板,液晶屏等不少东西,有经验后,学AVR时就从自制的下载线开始了,注意,这只是个开始,简单的东西总存在着一些局限性,但对于初学者来说,这可是个非常有用的东西,有了它就可以开始学习AVR 单片机,甚至是一些开发了,这些编程器都是出自网上流传的,虽然我也不是很清楚出自那位高人,但感谢原作者.以下分享我的自制经验. 1.由于AVR的编程方式有并行高压和串行ISP (In System Program 在系统编程)方式,高压并行编程能修复一些错误的配置位,但这并不常用,因为并行通信其布线会较多,不便于在成品中预留编程接口,也不便自制,而串行的ISP是基于SPI(Serial Peripheral interface)通信方式的,SPI通信时只需三根数据线, 分别是SCK,MISO,MOSI,再加上VCC,GND,Reset共需6根线,而VCC是可选的,用于向目标芯片供电,或由目标板反供电给编程器. 那么设计目标板时,最少只要保留6根线,以后就可随时烧写,升级芯片上的程序了.而无需将芯片取下.这是ISP方式的最大特点,具体6根线连到那个引脚,不同型号不一样,要看芯片引脚定义图,例如ATtiny2313引脚定义如下: 至于编程接头,尽可能以官方的10针接口为准,也可像我一样自定义一个6针的,因为我更喜欢水晶头,其实都是排列不同而已,只要再制作一条线进行转换就什么都搞定了. 2.基于并口的ISP下载线,我最初也是自制了这款,这种下载线可以下载AVR全系列和AT89S系列51单片机,成本较低,不过需要PC机有并行口,许多笔记本电脑现在都没有并口了,比较麻烦,市场上卖的USB转并口,大都是用于打印机的,无法使用.

自制一台ATMEL 89系列FLASH单片机编程器

自制一台ATMEL 89系列FLASH单片机编程器 学习单片机最有用的恐怕是编程器和仿真机,一台商品化的编程器至少要几百元,仿真机价格更高,往往让初学者难以选择。这里介绍的一款国外电子网站推出的廉价51编程器,能够读写最常用的12种51单片机,自己动手装配一台,既能锻炼自己的动手能力,又能廉价地装备一台多用编程器,无论是学习单片机或业余时间搞开发,都是一个非常好的选择。笔者按照资料自制了一台,十分好用,不敢独享。特编译了全部制作资料介绍给大家。这个编程器硬件使用标准的TTL系列器件而没有使用特殊元件。它连接在计算机的并行端口,对PC的并口没有特殊要求,所以配置很低的计算机也能用这个编程器。Atmel Flash 系列单片机是当前最流行的单片机,易于擦写,不象OTP芯片容易造成浪费。特别是89系列单片机与大家熟悉的INTEL51系列单片机完全兼容,这个编程器支持的单片机主要是Atmel flash系列。 支持的器件: 这个编程器支持以下ATMEL单片机 AT89C51,AT89C52,AT89C55,AT89S51,AT89S52,AT89S53,AT89C51RC, AT89C55WD,AT89S8252,AT89C1051U,AT89C2051,AT89C4051 注意:20脚的单片机需要一个简单的适配器。(图 2 ) 硬件:

图1显示了这个FLASH 编程器的电路图,编程器和标准的计算机并口连接。电路图中的U2是用于控制计算机和控制器之间的数据流,U4 锁存低位地址字节,U5 锁存高位地址字节,U3用于产生控制信号给被编程的单片机。IC U1用于产生编程脉冲给单片机.当U7提供编程电压给控制器时,电源部分用U8产生逻辑5v供给。IC U6用于产生5V或6.5V VDD 电源电压给单片机。 图 1 编程器的电路图 调试:

51单片机的看门狗

“看门狗”概念及其应用 在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(watch dog)。 加入看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过单片机的程序控制,使它定时地往看门狗芯片的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时,看门狗电路就会由于得不到单片机送来的信号,便将它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,从而单片机将从程序存储器的起始位置重新开始执行程序,这样便实现了单片机的自动复位。 通常看门狗电路需要一个专门的看门狗芯片连接单片机来实现,不过这样会给电路设计带来复杂,STC单片机内部自带有看门狗,通过对相应特殊功能寄存器的设置就可实现看门狗的应用,STC89系列单片机内部有一个专门的看门狗定时器寄存器,Watch Dog Timer 寄存器,其相应功能见下个知识点。 看门狗定时器寄存器(WDT_CONTR) STC单片机看门狗定时器寄存器在特殊功能寄存器中的字节地址为E1H,不能位寻址,该寄存器用来管理STC单片机的看门狗控制部分,包括启停看门狗、设置看门狗溢出时间等。单片机复位时该寄存器不一定全部被清0,在STC下载程序软件界面上可设置复位关看门狗或只有停电关看门狗的选择,大家根据需要可做出适合自己设计系统的选择。其各位的定义如表4.2.1所示。 表1看门狗定时器寄存器(WDT_CONTR)

单片机片内存储器如何烧写 几种烧写方式介绍

单片机片内存储器如何烧写几种烧写方式介绍 单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU 可取出这些指令重新执行。只读存储器(Read Only Memory,ROM)中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称只读存储器。向ROM中写入信息称为ROM编程。根据编程方式不同, 掩模ROM.在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。这种芯片存储结构简单,集成度高,但是由于掩模工艺成本较高,只适合于大批量生产。 可编程ROM(PROM).芯片出厂时没有任何程序信息,用独立的编程器写入。但是PROM 只能写一次,写入内容后,就不能再修改。 EPROM.用紫外线擦除,用电信号编程。在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息,使用编程器可将调试完毕的程序写入。 E2PROM(EEPROM).用电信号擦除,用电信号编程。对E2PROM的读写操作与RAM存储器几乎没什么差别,只是写入速度慢一些,但断电后仍能保存信息。 Flash ROM.闪速存储器(简称闪存),是在EPROM和E2PROM的基础上发展起来的一种电擦除型只读存储器。特点是可快速在线修改其存储单元中的数据,改写次数达一万次(ROM 都有改写次数),读写速度快,存取时间可达70ns,而成本比E2PROM低得多,因此正逐步取代E2PROM。 注意:更多存储器内容请参考,《电子技术基础》数字部分(第五版) 主编康华光. 第七章,或者电工学(第七版)(下册) 主编秦曾煌第22章. 烧写器、烧录器、编程器、下载器、仿真器、调试器 单片机编程器(烧写器、烧录器)是用来将程序代码写入存储器芯片或者单片机内部的工具。编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。如下图所示是一个典型的编程器外形。图中黑色的是集成电路插座(也有下载编程器,不用取下芯片,涉及ISP、ICP,后面有介绍),通过拨动手柄可以将置于其中的集成电路芯

51单片机中断系统程序实例

51单片机中断系统程序实例(STC89C52RC) 51单片机有了中断,在程序设计中就可以做到,在做某件事的过程中,停下来先去响应中断,做别的事情,做好别的事情再继续原来的事情。中断优先级是可以给要做的事情排序。 单片机的学习不难,只要掌握学习方法,学起来并不难。什么是好的学习方法呢,一定要掌握二个要点: 1. 要知道寄存器的英文全拼,比如IE = interrupt中断 不知道全拼,要去猜,去查。这样就可以理解为什么是这个名称,理解了以后就不用记忆了。 2. 每个知识点要有形像的出处 比如看到TF0,脑子里马上要形像地定位到TCON寄存器的某位 看到ET0, 马上要形像地定位到IE寄存器的第2位 https://www.sodocs.net/doc/4312889262.html,/tuenhai/独家揭秘:形像是记忆的最大技巧。当人眼看到某个图时,是把视觉信号转化成电信号,再转化成人能理解的形像。当我们回忆形像时,就是在重新检索原先那个视觉信号,并放大。在学习过程中,不断练习检索、放大信号,我们的学习能力就会越来越强。 写程序代码时,也要把尽量把每行代码形像化。 51单片机内中断源 8051有五个中断源,有两个优先级。与中断系统有关的特殊功能寄存器有IE(中断允许寄存器)、IP(中断优先级控制寄存器)、中断源控制寄存器(如TCON、SCON的有关位)。51单片机的中断系统结构如下图(注意,IF0应为TF0):

8052有6个中断源,它比8051多一个定时器/计数器T2中断源。 8051五个中断源分别是: (1)51单片机外部中断源 8051有两个外部中断源,分别是INT0和INT1,分别从P3.2和P3.3两个引脚引入中断请求信号,两个中断源的中断触发允许由TCON的低4位控制,TCON的高4位控制运行和溢出标志。 INT0也就是Interrupt 0。在这里应该看一下你的51单片机开发板的电路原理图。离开形像的记忆是没有意义的。读到上面这句,你应该回忆起原理图上的连接。任何记忆都转化为形像,这是学习的根本原理,我们通过学习单片机要学会这种学习方法,会让你一辈子受益无穷。 TCON的结构如下图: (a)定时器T0的运行控制位TR0

相关主题