针对常用51单片机下载程序问题做下详解
- 格式:doc
- 大小:14.50 KB
- 文档页数:2
单片机程序下载方式总结一、编程器下载(离线下载、脱机下载)编程器也称为程序烧录器,将单片机从电路板下取下来,放入烧录器的芯片座并固定好,然后进行程序下载。
编程器与PC机之间用USB、串口、并口等方式连接并传输数据,目前主流的产品支持USB和串口连接,部分产品支持插装CF卡,即将程序提前复制到CF卡中,烧写过程可不需要PC机。
程序烧录器成本较高,如图1所示的SmartPRO 5000U售价在2400元左右。
该方式不如在线编程方式灵活方便,现在个人和小批量的编程已经很少使用了。
该方式主要用于量产编程,对于批量生产的产品,使用专门的编程器实现脱机编程,一次可烧写大量的芯片。
同时,公司指派专人负责程序下载,保密性强。
有些技术公司外接项目时,将烧定芯片次数与产品提成挂钩,烧一个芯片表明生产了一台产品。
图1单片机程序烧录器二、在系统编程ISP(In System Programming)不用将单片机从线路板上取下来,直接烧写,适用于样机研发阶段或小批量的程序下载。
根据PC机与单片机的通信方式不同分为2种:(1)SPI接口模式SPI模式是ATMEL和PIC单片机常用的下载方式,该方式要求单片机必须具备SPI接口,如AT89S51系列单片机的P1^5、P1^6、P1^7分别为MOSI(主输出从输入),MISO(主输入从输出),SCK(同步时钟)引脚,下载程序时还要用到RST引脚。
SPI接口和电脑的现有通讯口都不兼容,因此需要通过转换电路把PC机的端口转换成SPI方式,常见的包括并口、RS232串口、USB口转SPI下载。
并口和RS232串口转换到SPI比较简单,可以网上查找资料自己制作。
USB转SPI的电路做起来有点难度,但是使用比较方便,一般网上都有成品销售。
SPI下载的优点是下载比较可靠和稳定,与单片机的接口简单。
图2 USB转SPI下载器图3 SPI接口(2)串口模式单片机还可利用自身的串口来下载程序,典型的如STC单片机。
51单片机的RAM区域划分以及常遇到的问题前几天群里有一位同学使用AT89S51这个单片机编程,遇到了一个情况:keil软件的options for Target的Target选项中,其中的Memory Model选项,同样的程序,如果选择Small模式进行编译,把程序下载到单片机内,程序就工作正常;如果选择Large模式进行编译,下载到单片机内程序就工作不正常,这个就是新手偶尔遇到,但是很难分析出原因的内存使用溢出问题。
51单片机的问题,是历史问题,比较复杂,那现在一般一些新型单片机这种问题就简单一些,但是也得注意关于RAM的溢出问题。
RAM是用来保存临时数据的,一旦我们的使用量超过了RAM的大小或者区域,那就可能造成一些不可预知的错误问题。
51单片机的RAM分为片内和片外,标准的51内核是0x00~0x7F 一共128B,而现在的大多数半导体厂商开发的51系列单片机都带了扩展片内RAM,即片内RAM区域一般是从0x00到0xFF一共256B。
随着功能需求越来越多,程序量越来越大,那片内这256B也不够用了,因此又扩展了片外RAM,片外RAM的预留比较大,最大可以从0x0000到0xFFFF一共64KB,当然了,每个具体型号有多大不一定,具体看通过芯片的手册来了解。
而现在的51单片机的片外RAM,“片外”只是一个名词而已,实际上很多也是直接做到了单片机内部,但是访问地址,还是以外部的起始地址的方式。
就是说,片内RAM的地址从0x00到0xFF,而片外是从0x0000到0xFFFF;其中最开始的256B是重复的地址,这部分通常情况下只要RAM够用就可以不理会,软件编译器会自动给我们处理好。
当选默认small模式,优先使用内部的前128B,而选Large 模式,优先使用的是片外的64K。
因此上面那个同学的问题就在这里了,因为他用的是AT89S51单片机,而这个单片机是没有片外RAM 的,如果选择了Large模式,那优先使用的是片外,因此编译完成,下载到单片机里,程序运行时用了这个单片机所没有的区域,那肯定就不行了。
51单片机的程序编写下载入门(本讲解是在win7旗舰版系统下实现的)首先在PC要安装好1、keil4软件开发环境2、stcisp程序下载软件3、usb转串口的驱动程序一、新建工程:打开keil uVision4→Project→New uVision Project→选择工程文件存放地址,给工程命名(存放地址和工程名不一定要一致!)→选择芯片类型(一般选择Atmel下的AT89C52)→添加启动文件?选择“否”新建文件,可以从File里面建,也可以直接按Ctrl+N新建完文件紧接着就保存(Ctrl+S),注意后缀名要是.c然后就要将新建的文件添加到工程中去选择刚刚新建好的c文件,单击Add,单击Close。
当左侧的窗口显示如下就说明添加成功了接下来就可以编辑程序了!二、编辑编译刚装上的keil软件编辑的字体是很小的而且看着很不舒服,下面就来调节字体。
根据自己的喜好选择字体和大小吧,最后点击ok就行了。
终于可以开始敲击程序了!经过一番辛勤的耕耘,代码终于敲好了。
可是要让硬件去实现功能还有不少的事情要做啊!不用担心,你会很享受这个过程的!自己敲好的代码一般会存在两个方面的问题。
一是c语言的语法上的问题。
这个可以通过keil的编译器帮助查出,进行修改。
点击下图圆形中的图标进行编译。
在界面的下方会出现这个框,显示编译结果。
我们最终要得到以下图椭圆中的字样。
但是一般情况下编译后会有以下的问题:1、error C202: 'led': undefinedidentifier——这是没有定义led这个量。
2、error C141: syntax error near '}'——这表明在'}'附近有句法错误,一般情况下是附近少了分号。
3、warning C206: 'DelayMs': missingfunction-prototype——这是DelayMs函数没有在主函数前声明。
引言概述:51单片机是一种常见的单片机型号,它具有广泛的应用领域和较高的使用率。
本教程旨在为初学者提供51单片机的入门知识和基础操作指南。
本文将介绍51单片机的基本概念,硬件配置,编程语言,程序以及常见问题解答。
通过学习本教程,读者可以对51单片机有一个全面的了解,并在实践中掌握其基本应用。
正文内容:1.51单片机基本概念介绍单片机的定义和类型,包括其基本构成和特点。
详细解释51单片机的命名由来,并介绍其典型应用场景。
探讨51单片机与其他单片机型号的区别和优势。
2.51单片机硬件配置介绍51单片机开发板的主要组成部分和功能。
讲解51单片机的复位电路、晶振电路以及外部扩展接口。
提供常见的硬件错误排查方法,如常见的电路连接问题和芯片供电问题。
3.51单片机编程语言简要介绍51单片机所支持的主要编程语言。
详细解释汇编语言和C语言在51单片机编程中的应用。
提供汇编语言和C语言的编译和调试方法,以及注意事项。
4.51单片机程序介绍不同的程序方法,如串口、ISP以及仿真器。
解释如何选择合适的方法和调试工具。
提供常见错误和解决方法,如速度慢、失败等问题。
5.51单片机常见问题解答回答常见的初学者问题,如51单片机如何上电启动、如何设置端口输入输出、如何控制LED等。
解决常见的编程问题和错误,如程序死循环、程序崩溃等。
提供进一步学习资源和推荐书籍,以帮助读者更深入地理解和掌握51单片机。
总结:通过本教程的学习,读者获得了对51单片机的基本概念、硬件配置、编程语言、程序以及常见问题解答等方面的全面了解。
无论是初学者还是有一定经验的工程师,都可以通过实践操作和进一步学习,掌握51单片机的基本应用和进阶技巧。
希望本教程能给读者带来实际帮助,并激发更多的学习兴趣和创造力。
引言概述:本文主要介绍了51单片机入门教程。
51单片机是一种非常常见的单片机,广泛应用于各种电子设备和嵌入式系统中。
本文将详细介绍51单片机的基本原理、开发环境、编程语言以及常用功能及应用等方面的内容。
51单片机程序编写及下载
1,硬件准备
(1)将单片机小系统供电,一般为5V供电
(2)将并口下载线一端连接到电脑机箱后面的并口插槽,一端连接到单片机小系统板的下载口
2,编写程序
(1)打开keil c开发环境
(2)选择project—new project,新创建一个工程,并保存在相应目录下
(3)选择芯片类型,我们这里使用的是at89s52 (4)添加汇编启动代码,点击YES
(5)此时,程序已包含startup.a51的汇编启动代码,主要完成单片机各个寄存器的定义(6)创建c语言程序,点击file—new
(7)编写代码
(8)编写好的文件保存
(9)添加文件到工程(10)选择编写好的文件
(11)此时,在工程文件中,我们可以看到两个文件startup.a51汇编程序和test2.c的c程序(12)选择project—opinions for file test2.c
(13)选择output选项卡
(14)将create hex file 选项选中
(15)将文件编译连接
(16)如果文件没有错误,可以在相应文件夹中看到以下文件
3,下载程序
(1)打开ISPlay.exe应用程序
(2)点击检测器件
(3)点击擦除
(4)点击文件,选择.hex文件
(5)此时,可看到二进制代码
(6)点击autorun,将程序写入单片机。
常见51单片机指令及详解1. 简介单片机是一种集成电路,具备处理和控制功能。
51单片机是指Intel公司推出的一系列8位单片机,常用于嵌入式系统和物联网设备。
本文将介绍一些常见的51单片机指令,并对其进行详解。
2. 数据传送指令2.1 MOV指令MOV指令用于将数据从一个寄存器或内存位置传送到另一个寄存器或内存位置。
例如:MOV A, #10 ;将立即数10传送给累加器AMOV R0, R1 ;将寄存器R1的值传送给R02.2 XCH指令XCH指令用于交换两个寄存器或内存位置中的数据。
例如:XCH A, B ;交换累加器A和B的值3. 算术运算指令3.1 ADD指令ADD指令用于将两个操作数相加,并将结果保存在累加器中。
例如:ADD A, B ;将累加器A和寄存器B的值相加,结果存储在A中3.2 SUBB指令SUBB指令用于将第二个操作数的补码与累加器的值相减,并将结果存储在累加器中。
例如:SUBB A, B ;将B的补码与累加器A的值相减,结果存储在A中4. 逻辑运算指令4.1 ANL指令ANL指令用于对两个操作数进行按位与运算,并将结果存储在目的操作数中。
例如:ANL A, B ;将累加器A和寄存器B的值按位与,结果存储在A 中4.2 ORL指令ORL指令用于对两个操作数进行按位或运算,并将结果存储在目的操作数中。
例如:ORL A, B ;将累加器A和寄存器B的值按位或,结果存储在A 中5. 跳转指令5.1 JMP指令JMP指令用于无条件跳转至指定的目标地址。
例如:JMP 2000H ;跳转至内存地址2000H处执行指令5.2 JZ指令JZ指令用于在累加器为零时跳转至指定的目标地址。
例如:JZ 3000H ;当累加器为零时,跳转至内存地址3000H处执行指令6. 输入输出指令6.1 IN指令IN指令用于将外部设备的数据输入到累加器或指定的寄存器中。
例如:IN A, P1 ;将P1端口的数据输入到累加器A中6.2 OUT指令OUT指令用于将累加器或指定的寄存器中的数据输出到外部设备。
51单片机入门程序下载(程序烧写)串口串行接口简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。
我们比较熟悉的USB接口,全名通用串行总线(Universal Serial BUS),就属于串口。
串行接口按电气标准及协议来分还包括UART、RS232、RS422、RS485等。
老式的台式计算机和部分笔记本上则有RS232串口,这里RS232指的是RS232电平的串口。
后来由于这种串口使用很少、速度较慢、体积较大而逐渐在笔记本甚至台式机上被淘汰了。
而51单片机等中含有UART串口,UART这里指的是TTL电平的串口。
UART与RS232区别主要在于其电平定义不同。
TTL电平是5V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。
标准串口即RS232串口(通常指COM接口),如图。
由于USB接口与单片机的TTL串口无法直接连接,一般通过转换芯片来连接。
连接到USB接口的转换芯片一般需要在电脑上安装驱动。
USB转RS232串口(常用转换芯片为CH341,价格10-20元)RS232转TTL(电平转换芯片MAX232)USB转TTL串口(常称为USB转TTL升级小板,USB-TTL转接板,常用转换芯片为PL2303,价格6-10元)USB - RS232串口 - TTL串口转接板USB-RS232电路图通常成品学习板上都是USB接口或者RS232串口+USB接口。
一方面USB接口负责给单片机供电,另一方面,USB转TTL或RS232转TTL已经集成的学习板上。
51单片机程序的烧写我们最常见的51单片机是美国Atmel公司生产的AT系列单片机和中国宏晶公司生产的STC系列单片机。
早期的AT89C51系列(89后面是字母C)单片机,下载程序时需要使用专门的烧写器烧写进去,单片机烧写程序时必须从电路上取下来,非常麻烦。
后来退出了支持ISP(In System Programming)在线编程的AT89S51系列单片机,只需连接几根线即可烧写程序,也不需取下单片机。
单片机下载程序原理
单片机下载程序的原理可以分为两个阶段:编写程序和下载程序。
编写程序:
在编写程序时,首先需要选择适当的编程语言,如C或者汇编语言。
然后,根据需求设计程序的逻辑结构,包括输入、处理和输出。
接下来,使用适当的编译器将源代码编译成目标代码。
编译器会将高级语言代码转换成适合单片机的机器语言代码,这些代码可以被单片机识别和执行。
下载程序:
下载程序是将编写好的目标代码转移到单片机中的过程。
通常有两种方式来下载程序:使用专用的下载器通过串行通信或并行通信接口将程序写入单片机中,或者使用单片机自带的编程器。
在使用下载器时,首先需要连接单片机和下载器。
通过串行通信或并行通信接口,将下载器与单片机进行连接。
然后,在计算机上打开下载器软件,并选择相应的单片机型号和通信接口。
接下来,将编译好的目标代码从计算机发送到下载器,并通过通信接口将程序写入到单片机的存储器中。
另一种方式是使用单片机自带的编程器。
编程器通常包括一个与计算机连接的编程接口,并带有单片机的插槽。
首先,将单片机插入编程器的插槽中,然后将编程接口连接到计算机上。
接下来,在计算机上打开编程器软件,并选择相应的单片机型号。
最后,将编译好的目标代码从计算机发送到编程器中,并通过编程接
口将程序写入到单片机的存储器中。
总结来说,单片机下载程序的原理是将编写好的目标代码转移到单片机中的过程。
通过下载器或编程器,将目标代码从计算机发送到单片机的存储器中,使得单片机能够识别和执行这些代码。
CX-51(STC89C52)系列开发板下载程序说明一、认识实验开发板CX-51二、实验开发板常用配件USB供电线(标配) 串口处长线(标配)温度传感器(标配)USB转串口线 步进电机红遥控器液晶1602 12864 USB下载器选择用S系列单片机使用三、检查实验开发板主要检查实验开发板在运输过中有没有明显的压示痕迹,如果没有请用USB供电线与实验开发板通电,按下电源开关,确认有没一个跑马灯程序在运行,电源开关如下所示:以上如全部正常说明检查通过。
四、程序下载步骤如果使用USB转串口线烧写程序的话,应该选择安装USB驱动程序。
使用用串口处长线(USB转口线)连接PC机与CX-51实验开发板,连接图如下如示:打开光盘资料中下载软件中STC-ISP下载软件,具体操作是双击该图标出现如下界面:3、设置MCU type。
选择“STC89C52RC”打开程序文件;选择单片机光盘中峰鸣器选择串口,我们电脑用USB转的是COM3,注这个需根据自己电脑COM号选择。
保持默认设置直接烧写(点击步骤5里面Download/下载)。
会出现步骤3中COM后面绿灯变亮。
说明串口驱动安装正常,串口正常工作。
等待出现如下图:出现上图画面后,按下左下角的带锁电源开关,会出现下面画面:亲爱的同学们:大学四年稍纵即释,我们要珍惜每一分钟时间,不要觉得大学学的知识很快会过时。
别的学科我不敢保证,像电子类专业的一些基础知识是永远不会过时的。
《电路》《模电》《数电》这些课程要好好学,有些学生说是学不懂,抽象。
那请你别把课本当废纸卖了,留着。
等到你课程设计,毕业设计,或者用实验板学习时,你再回过头去查你所需要的知识,到时候你会觉得一切都突然开朗。
在做实验时碰到问题先要独立思考。
不要遇到任何问题都毫不思索的求助别人,这样是永远学不好单片机的。
祝愿各位都能学有所成!。
51单片机教程51单片机是一种常用的微控制器,学习51单片机的教程可以帮助初学者快速入门。
在本篇教程中,将介绍51单片机的基本知识和编程技巧。
1. 概述51单片机是基于哈佛体系结构的8位微控制器。
它具有丰富的外设和接口,适用于各种嵌入式应用。
在学习51单片机之前,需要了解单片机的基本结构、寄存器和指令集等重要概念。
2. 开发环境搭建搭建合适的开发环境对学习51单片机至关重要。
可以选择Keil C51或者SDCC等集成开发环境,并安装相应的编译器和调试器。
此外,还需要连接51单片机与电脑,才能进行程序下载和调试。
3. 程序编写与调试使用C语言编写51单片机的程序是最常见的方法。
首先,需要了解51单片机的IO口、定时器、中断等基本知识,以及相应的编程方法。
然后,可以通过编写简单的程序,例如LED闪烁、计数器等,来测试和调试开发板。
4. 外设和接口的应用51单片机具有丰富的外设和接口,例如串口、SPI、I2C等。
学习如何使用这些外设和接口,可以帮助实现更多功能。
例如,可以使用串口进行与计算机的通信,或者通过SPI接口与外部设备进行数据交换。
5. 项目实践通过完成具体的项目,可以深入理解51单片机的应用。
例如,可以设计一个温度测量系统、一个电子钟或者一个自动控制系统等。
在实践过程中,可以遇到各种问题和挑战,通过解决问题,可以提高面对实际问题的能力。
总结:通过本篇教程,介绍了51单片机的基本知识和编程技巧。
希望读者可以通过学习,掌握51单片机的应用和开发方法。
在学习过程中,需要勤加练习,不断积累经验,才能更好地应用单片机技术。
针对常用51单片机下载程序问题做下详解目前为止,接触单片机已有不少,从选择元器件、原理图、PCB、电路硬件调试、软件开发也算小有心得。
单片机软件开发里面第一步当属下载程序了,如果这一步都有问题,那么后面的一切便无从谈起,记得当初刚接触单片机时,对于下载电路方法及原理也是一头雾水。
好在随着经验的积累以及自己的努力探求,现在对此问题算是有了点点自己的经验理解。
故今天在此针对常用51单片机下载程序问题做下详解,以求新手们少走弯路。
原理单片机的TXD、RXD是TTL电平,所以你得万变不离其宗的将其它信号转成TTL电平,只有这样给单片机下载程序才有可能成功!其中CH340、PL2303等芯片是直接将USB信号转换为TTL电平,而MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL.下面请看利用这种原理的两种常用方法:方法一:请看图一,这是我们最常见的单片机下载电路了,其中从②到⑥属于大家常用的USB转串口线,用这种方案的好处是,如果自己的PC 带有串口(可能很老的机器没有USB接口),那么就可以直接给单片机开发板下载程序,因为采用这种方法的开发板必定带有串口接口嘛。
当然,如果PC仅有USB接口而不带串口,那么只能找根USB转串口线了(其电路原理就是图中②到⑥),这里我推荐大家使用采用CH340芯片的USB转串口线,而不要采用PL2303的USB转串口线,因为PL2303价钱便宜所以山寨的水货较多,这会导致下载电路不稳定,甚至无法正常下载。
同时此方案的坏处是电路板上必定要做一个9针串口接口(太巨大了),这必将增加了电路PCB的面积,当然也就增加了成本啦!(顺便发表下个人见解:那个9针接口实在太丑,又大又重,无形中便降低了自己的设计档次,哈哈。
所以不推荐这种方法!)请看图二,这是我经常采用的单片机下载电路。
实践证明效果非常好,几乎没出过任何问题!它的好处是只需要找根普通的USB2.0线(如图二中②)就可以下载了,比找根USB转串口线要轻松的多,同时由于将串口9针接口换成了USB接口,所以电路板的体积、重量也减少了不少,也显得更美观时尚,呵呵。
首先是编程软件
安装详解
安装
1.先安装c51v901.exe,安装到后面去除第一个选项的勾,完成安装。
注册
2. 解压注册机
3. 打开uVision4,点击 Management...,打开License Management窗口,复制右上角的CID
4. 打开注册机“KEIL_Lic”,将复制好的CID粘贴到KEIL_Lic中的“CID”处
5. 点击Generate生成许可号,复制生成的key。
6. 将复制到License Management窗口下部的New License ID Code,点击右侧的Add LIC
7. 若下方显示的是“***LIC Added Sucessfully***”即注册成功,
Support Period为有效期,一般可以到20年左右,若有效期较短,可多次生成许可号重新注册。
汉化
8.将“keil 4 汉化补丁”复制至keil安装目录(如:X:\Keil\UV4)下,覆盖原始文件。
安装驱动
烧录程序
使用详解
打开
点工程
新建~~
要建哪建哪
选单片机型号,一般都是选这个
点否
点+
选源组1,点图上那个
这个就是写程序的地方
写完了,点这个
名字要自己打拓展名XX.c
右键
添加
关闭
点这个
这个看晶振多少就多少
这个记得打钩
点这个编译
编译完
生成这个
连上串口线
打开
选单片机型号——打开刚刚的hex文件,点下载
来自北理机器人协会论坛。
51单片机程序简单详解什么是51单片机51单片机是一种基于8051架构的微处理器,是被广泛应用于嵌入式系统领域的一款小型芯片。
其核心结构包括CPU、ROM、RAM、I/O等。
在嵌入式系统开发领域扮演着极其重要的角色,常用于电子闹钟、计时器、温度计等小型电子设备中。
51单片机程序开发硬件基础在51单片机开发过程中需要一些硬件设备,例如开发板、USB下载器、连接线等,这些设备的选用必须与芯片兼容。
同时还需要了解51单片机的管脚功能表,知晓不同管脚的作用,从而在开发过程中进行正确的连接。
软件基础在51单片机程序开发过程中还需要对软件环境有一定的了解,如编译工具、调试工具、下载工具等。
通常使用Keil C51集成开发环境作为开发工具,其中包括了开发、调试、下载等多个功能。
此外,在开发过程中还需要一些辅助工具,如调试器、仿真器等。
代码编写在开发过程中,基于51单片机的开发工具提供了一款类似于C语言的高级语言——汇编语言,用来描述芯片的运行过程。
在编写代码之前需要了解汇编语言的语法、指令、变量声明等。
在编写程序时,需要使用开发工具提供的汇编编译器将程序编译为机器码,并下载到芯片中。
代码调试调试是开发过程中不可或缺的一环,通过调试可以及时发现程序的错误并加以纠正。
调试工作主要包括软、硬件两个方面。
在软件方面,开发工具通常提供多种调试模式,如单步调试、断点调试等。
通过这些调试工具,可以逐条执行程序并观察程序状态,从而发现程序中的错误点。
同时,调试工具还可以显示寄存器状态、内存中的数据等,方便开发者进行调试。
在硬件方面,需要通过示波器等工具观察程序执行过程中电信号的变化,从而定位问题所在。
这些硬件设备需要与开发芯片兼容,否则无法正常工作。
常见技术和应用中断在51单片机程序中,中断技术是一项重要的应用。
中断是指在程序执行过程中,由芯片内部或外部设备发送的一种特殊信号,用来改变程序的执行流程。
通过搭配中断处理程序,可以在程序运行时及时处理各种中断事件,提高程序的响应能力。
常见51单片机指令及详解数据传递类指令(1)以累加器为目的操作数的指令MOV A,RnMOV A,directMOV A,@RiMOV A,#data第一条指令中,Rn代表的是R0-R7。
第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。
第四条指令是将立即数data送到A中。
下面我们通过一些例子加以说明:MOV A,R1 ;将工作寄存器R1中的值送入A,R1中的值保持不变。
MOV A,30H ;将内存30H单元中的值送入A,30H单元中的值保持不变。
MOV A,@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。
如执行命令前R1中的值为20H,则是将20H单元中的值送入A中。
MOV A,#34H ;将立即数34H送入A中,执行完本条指令后,A中的值是34H。
(2)以寄存器Rn为目的操作的指令MOV Rn,AMOV Rn,directMOV Rn,#data这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。
(3)以直接地址为目的操作数的指令MOV direct,A 例: MOV 20H,AMOV direct,Rn MOV 20H,R1MOV direct1,direct2 MOV 20H,30HMOV direct,@Ri MOV 20H,@R1MOV direct,#data MOV 20H,#34H(4)以间接地址为目的操作数的指令MOV @Ri,A 例:MOV @R0,AMOV @Ri,direct MOV @R1,20HMOV @Ri,#data MOV @R0,#34H(5)十六位数的传递指令MOV DPTR,#data168051是一种8位机,这是唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入DPTR中去。
其中高8位送入DPH,低8位送入DPL。
例:MOV DPTR,#1234H,则执行完了之后DPH中的值为12H,DPL中的值为34H。
STC51单片机的下载问题相关之前记录了一个关于ch340的问题,简单记录一个CH340T的小问题解决方法(冷启动时重启导致下载失败)blog.sina/s/blog_717116870102vauh.html主要写了U转串那部分,ch340的要点。
(TXD和RXD接二极管和300欧,ch340电源5口要接电容稳压,要离的近。
)网上也有一些人也遇到下载的问题openedv/posts/list/6634.htm也介绍了max232的问题,虽然现在不怎么用了近期公司开发一款STC51核心的射频卡和2.4G无线通讯开发板,由本人操刀,原本认为难做的地方并没费什么力气,反倒是在串口下载这一块卡了壳,虽然最终搞定,但也费了不少周折,在网上查询了一下,发现为此类问题所困扰的难兄难弟难姐难妹们也不老少,因此把这次的经历成文以供大家参考,长文慎读。
板子上的下载接口设计成USB和RS232双接口形式,两者共用一个串口,都可以ISP下载;USB转串选择了CH340,这个芯片经过大量的试用,证明速度快、性能相当稳定,要注意的是电容C5,一定要靠近芯片布置,否则CH340会毫不客气地罢工;RS232电平转换芯片用的是SP3232,电路形式和参数都是以前用过的。
由于USB接口比较方便,所以做程序的时候,一直用的USB下载,没什么问题。
程序做好之后,到了整板验证阶段,突然发现,RS232口下载不了程序,握手通不过!这真是辛辛苦苦二十年,转眼回到解放前。
测试了RS232串口通讯,115200的波特率毫无问题,看波形也没发现有啥异常。
到底为啥?网上搜索一番,发现有人说,STC51单片机下载,用SP3232不行,得用MAX3232!换!果然,奇迹。
还就是没有发生,依然是握不上手,不管波特率设到多低。
呆坐半晌,突然想起,板子刚焊好的时候,串口下载是试验过的,肯定是曾经通过,为什么现在就不行了?有啥不同呢?找来找去,目光落到ISP软件商,以前用的是STC-ISP4.83,现在是4.88,莫非是软件版本问。
51单片机下载程序原理
单片机的下载程序主要是通过串口或者并口与计算机进行通信,将计算机上编写的程序下载到单片机中。
原理如下:
1. 准备工作:首先需要编写好单片机的程序,保存
为.hex、.bin等格式的文件,并确保计算机上安装了相应的下
载工具和驱动程序。
2. 连接硬件:将单片机与计算机相连接。
一般情况下,使用串口下载的话,需要用串口连接线将单片机的串口引脚与计算机的串口接口相连;使用并口下载的话,则需要将单片机的并口引脚与计算机的并口接口相连。
3. 打开下载工具:打开下载工具软件,选择对应的单片机型号和端口。
4. 设置下载参数:在下载工具中设置好波特率、数据位、停止位等参数,确保与单片机的通信参数一致。
5. 选择文件:选择要下载的文件,将其加载到下载工具中。
6. 下载程序:点击下载按钮,下载工具会将文件中的指令按照预定的通信协议发送给单片机,单片机接收到指令后依照指令执行相应操作。
7. 下载完成:下载过程中,下载工具会显示下载进度,当下载完成时,会提示下载成功。
完成以上步骤,单片机的程序就成功地被下载到了单片机中,并可以进行相应的运行和调试。
内容列表1.系统简介 (2)2.系统技术参数 (2)3.操作规范 (2)4.维护措施 (5)5.故障原因及解决方法 (6)6.安全注意事项 (6)1.系统简介本系统为冷挤(喷)胶设备。
挤(喷)胶模组采用GRACO Premier 67:1 供胶模组,挤(喷)胶压盘适用于标准美制55gal(内径580mm)桶。
压盘升降器为双柱气动式。
胶由泵经过高压管道输送到供胶工位,挤胶的压力可通过空气调压器来调整(系统图详见附图一)。
2.系统技术参数泵浦:•最大流体输出压力: 5000psi(345bar);•最大空气输出压力: 75psi(5.2bar);•压比 67:1;•空气进口尺寸: 3/4npt(f);•流体出口尺寸: 3/4” npt(f);•建议最佳泵浦往复次数: 30个往复/分钟以下。
•重量: 363 kg3. 操作规范1)准备•检查泵出口联结是否可靠,如需要,紧固联结接头;•检查管线接头,避免泄漏及阻碍系统部件运动;•松开油雾器加油口闷头,加注10号机械油;•在泵喉部油杯中加注GRACO喉部专用润滑油(TSL液);•逆时针旋转所有空气调压器,旋到旋不动为止;•用不小于3/4’’的空气管连接主控空气球阀与气源。
•将设备接地2)上料•打开主控空气球阀;•将升降臂上升,操作步骤如下:a) 关闭全部压缩空气调节器;b) 将升降臂手动控制阀置于“上升”位置;c) 慢慢旋动“上升”压缩空气调节器使升降臂上升,当压盘升过料桶高度时,将升降臂手动控制阀置于“关闭”位置;•将打开桶盖后的料桶推入压盘下的对中装置,使桶中心对准压盘中心;•用与材料兼容的润滑剂均匀涂抹在料捅内壁或压盘密封圈上;•打开压盘上的排气球阀;•扳下压盘压柱上下控制手柄,以压下压盘;•调节压下空气调压器至(0.45 - 0.6 MPa);•当压盘压入料桶后,将压下空气调压器调至(0.4-0.5 MPa);•当压盘停止下降后,关闭排气球阀。
重要:装入料捅后至换桶前,禁止按压设备上的压盘充气按钮。
STC89C52单片机程序下载说明(精简版)本说明适用于L先森的设计(QQ:1301496482)。
单片机最小系统如图1所示,规定晶振部分为下(图中S),下载程序的插针依次为1.VCC 2.RXD 3.TXD 4.GDN图1 单片机最小系统下载工具为USB转TTL下载器,如图2所示,可以使用CH340、PL2303等,第一次安装到电脑端时,需要安装驱动,安装成功后,可在设备管理处查询是否安装成功,如果不成功需要重新安装。
查询结果如图3所示。
与单片机的连接方法为:VCC—>VCC,RXD—>TXD,TXD—>RXD,GND —>GND。
图2 CH340实物图3 CH340安装成功单片机的识别语言为HEX文件,使用KEIL软件可以生成一个机器码,通过厂家专用软件下载,(需要软件可以进群免费下载,群号:711496024,下载完成后请自行退群)。
软件如图4所示:图4 下载软件区域划分:1.程序下载选择区。
2.串口助手使用区,设计中无串口功能请忽视。
3.反馈,当下载成功后,显示成功。
下载步骤:1.选择单片机型号,这里选择使用的单片机型号,一般为STC89C52RC。
2.下载COM口,根据设备管理器提供的端口号设置。
3.选择要下载的文件,HEX格式。
4.点击下载,此时开始下载,成功后将在区域3处提示。
如果下载失败,可能出现如下原因:1.单片机与下载器线连接错误,常见为TXD与RXD没有交叉连接,单片机的TXD必须连接下载器的RXD。
2.安装驱动失败,驱动没有正确连接。
重新安装驱动,在设备管理处查询正常后重新选择COM。
3.反馈口提示连接超时,此时可能是部分下载器不兼容,解决办法是断开VCC,等待3S后再次连接,即可完成下载。
注:本文档所述已在WIN7/64系统上得到验证,其他系统可能出现不同的情况,可根据文档流程自行验证。
针对常用51单片机下载程序问题做下详解
目前为止,接触单片机已有不少,从选择元器件、原理图、PCB、电路硬件调试、软件开发也算小有心得。
单片机软件开发里面第一步当属下载程序了,如果这一步都有问题,那么后面的一切便无从谈起,记得当初刚接触单片机时,对于下载电路方法及原理也是一头雾水。
好在随着经验的积累以及自己的努力探求,现在对此问题算是有了点点自己的经验理解。
故今天在此针对常用51单片机下载程序问题做下详解,以求新手们少走弯路。
原理
单片机的TXD、RXD是TTL电平,所以你得万变不离其宗的将其它信号转成TTL电平,只有这样给单片机下载程序才有可能成功!其中CH340、PL2303等芯片是直接将USB信号转换为TTL电平,而MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL.下面请看利用这种原理的两种常用方法:
方法一:
请看图一,这是我们最常见的单片机下载电路了,其中从②到⑥属于大家常用的USB转串口线,用这种方案的好处是,如果自己的PC带有串口(可能很老的机器没有USB接口),那么就可以直接给单片机开发板下载程序,因为采用这种方法的开发板必定带有串口接口嘛。
当然,如果PC仅有USB接口而不带串口,那么只能找根USB转串口线了(其电路原理就是图中②到⑥),这里我推荐大家使用采用CH340芯片的USB转串口线,而不要采用PL2303的USB转串口线,因为PL2303价钱便宜所以山寨的水货较多,这会导致下载电路不稳定,甚至无法正常下载。
同时此方案的坏处是电路板上必定要做一个9针串口接口(太巨大了),这必将增加了电路PCB的面积,当然也就增加了成本啦!(顺便发表下个人见解:那个9针接口实在太丑,又大又重,无形中便降低了自己的设计档次,哈哈。
所以不推荐这种方法!)
请看图二,这是我经常采用的单片机下载电路。
实践证明效果非常好,几乎没出过任何问。