ia4421 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接口,所以电路板的体积、重量也减少了不少,也显得更美观时尚,呵呵。在此强调一点:推荐使用CH340芯片(可以用CH340G,它引脚间距大很容易焊接)而不是PL2303,上文已说PL2303水货多,况且PL2303的外围电路比较复杂,这也给硬件电路的调试增加了难度。当然如果项目对成本特敏感,那么采用价钱相对较低的PL2303也无可厚非。大家看到没,图二的电路结构比图一要简化很多,那么是不是可以说明图二的性能比图一要更好呢?应该是吧!简单的结构出问题的概率当然更小了!
值得一提的是在使用CH340时,有些问题得注意下,因为很多同学反映用CH340下程序失败,但其实一般都很容易解决的。经本人总结常见原因有三:
一:某些CH340的引脚给单片机供了电导致单片机断电不彻底(下载程序要断电重启),从而导致程序没法下载。解决方案:在CH340的TXD引脚反向串联一个二极管(推荐肖特基二极管)、在CH340的RXD引脚串联一个约300欧姆的电阻。如此单片机可以彻底断电,问题解决!!(特别注意:此种情况不适用于stm32等芯片)
二:有些同学在给单片机供电时,为了防反接保护电路,在电源处串联了个二极管,由于二极管的正向压降导致单片机供电不足,从而导致程序无法下载。解决方案:将二极管用0欧电阻代替或者采用正向压降很小的二极管,以确保单片机的正常供电。问题解决!!
三:有些同学由于粗心将CH340的TXD引脚连接了单片机的TXD引脚,RXD引脚连接了单片机的RXD引脚,这自然不能下载程序了,一收一发不用多说吧,呵呵。解决方案:将CH340的TXD引脚连接单片机的RXD引脚,RXD引脚连接单片机的TXD引脚。问题解决!
原文标题:浅谈单片机下载程序电路原理
文章出处:【微信号:edn-china,微信公众号:EDN电子技术设计】欢迎添加关注!文章转载请注明出处。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
发布评论请先
随着单片机应用的普及,单片机间通信问题已引起广泛的关注。目前,应用较多的是有线通信,而如何利用现有的....
学51单片机的时候,总是伴随很多有关于晶振的问题,其实晶振就是如同人的心脏,是血液的脉搏,把单片机的....
PWM这个功能在飞思卡尔、STM32等高档的单片机内部有专用的模块,用此类芯片实现PWM功能时只需要....
RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能检....
本人最近一直想用51单片机来设计制作一个“大功率直流有刷电机PWM调速控制器”。由于平时工作忙,没时....
在初学51单片机的时候,总是伴随很多有关于晶振的问题,其实晶振就是如同人的心脏,是血液的脉搏,把单片....
笔者从事安卓底层开发,工作一年,个人看法 ,处女答。个人感脚51就是就是搞嵌入式第一门技术。把c语言....
设计了一个基于LM317和AT89C51的数字显示可调稳压电源。系统包含主电源和辅助电源模块、电压数....
下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。使用这种方法,无需任何....
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8....
51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的....
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8....
六款单片机流水灯电路图介绍。采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片....
本文详细的介绍了八款单片机时钟电路图。时钟电路就是产生像时钟一样准确运动的振荡电路。任何工作都按时间....
P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。
在初学51单片机的时候,总是伴随很多有关与晶振的问题,其实晶振就是如同人的心脏,是血液的是脉搏,把单....
指令周期指的是单片机执行一条指令的时间。按指令执行的时间可分为:单周期、双周期和四周期(只有乘法和除....
当用单片机和PC机通过串口进行通信,尽管单片机有串行通信的功能,但单片机提供的信号电平和RS232的....
本文主要介绍了max7219驱动数码管:STM32硬件SPImax7219驱动8位数码管显示模块程序....
BOXZ,昵称盒仔,是一款开源的互动娱乐平台!百度一下,有很多盒仔的制作教程,基本都是用arduin....
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-用汇编语言编写51单片机程序,指令程序存储在ROM里还是RAM里?
51单片机采用的是哈佛结构,即数据和程序分开,这样可以提高程序的执行速度,如果是MOV 21H
#35H这样的指令,#35H是作为一个立即数,是要和指令放在一起的,就是放在了om里,如果是定义了的变量,那么就会放到数据存储器am里,在定义变量的时候,可以通过命令选择变量放到om或是am中。
用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址
(1)对于8051单片机来说,由于片内无ROM,只能外部扩展程序存储器,求地址范围是0000H~FFFFH;即64KB。
(2)8051单片机片外数据存储器空间...
51单片机有一个引脚EA
当EA接高电平的时候,51的ROM地址是从内部ROM开始,然后接外部ROM
但是对于内部ROM已经占用的地址,不能使用,也就是说如果你...
在51单片机的输出口中,P3口的输出电流最大,也只有800μA左右,也就是说51单片机的输出电流是微安级的而不是毫安级的,要输出毫安级电流应该加驱动器。
英雄无敌5对硬件要求是比较高的。
调整虚拟内存的方法是,鼠标右键点击“我的电脑”——“高级”——性能“设置”——性能选项里面选“高级”——虚拟内存“更改”,里面...
答: 不用说的,肯定是电源,电源功率不够等着你的是无限重启关机
答: 一些厂商开支支持多跳网络技术,或者用几个小路由器组成无线网络,以求覆盖到整个家庭
答: 笔记本才有的
在网上邻居
win7在 网络里面
或是电脑的右下角
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区&>&51单片机C程序应用实例详解.PDF
51单片机C程序应用实例详解.PDF
上传大小:38.46MB
单片机软件开发的经典教程
包含大量的典型实例讲解
综合评分:4(4位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有2条
不错,完整的。就是再清晰点就好了
这个资源不错。。正是我需要寻找的那份完整版资料。。其他分享的是前80页的。。这个是完整版本。。
擦肩的阳光
综合评分:
积分/C币:10
猴子搬来的救兵Castiel
综合评分:
积分/C币:3
chengnan9898
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:10
shuyuan0128
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
chairuixin
综合评分:
积分/C币:3
jianqing_72
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
51单片机C程序应用实例详解.PDF
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
51单片机C程序应用实例详解.PDF51单片机应用中5个常见问题总结
本文就51单片机应用中一些常见问题作个总结,这都是我实际碰到过的,因为文章篇幅所限,这些问题远远不足以表达单片机的常见问题。希望对初学者有所帮助,文中不完善的地方务请指点。谢谢!
1:C51编译器如何区分位地址和字节地址
是靠预定义实现的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者声明了P0端口地址位于0x80,后者说明了P0端口的bit0,即P0.0位于位地址空间0x80处。这2个0x80具有完全不同的含义,靠关键字sfr和sbit来区别。这样当程序被编译时,编译器会依此编译成相应的汇编语言。例如:
C51语句: P0 = 1;
P0声明为sfr,因此编译成:mov 80h,01h,将把0x01数据送入0x80单元,由于0x80单元物理上对应P0端口,因此,P0.0脚将输出高电平(其实是呈现高阻态,P0口独有的),其他.1-.7脚输出低电平。
C51语句: P0_0 = 1;
P0_0声明为sbit,因此编译成:setb 80h,这将把位地址空间的0x80地址的bit的值置1。这个位正是P0口的bit0,执行后,P0.0将输出高阻态。而P0.1-.7不会变化。
2:C51为什么要嵌套汇编
51单片机一个显著优点就是指令执行时间固定,因此可以适应时序要求严格的场合。例如符合ISO7816协议的cpu卡的读写,对时序要求比较严格。其实就是用io脚做出来的同步半双工串口。支持cpu卡的程序一般比较庞大,需要用c51来组织,但是由于c编译的不确定性,必须把底层程序封装成汇编语言模块嵌入到工程中。这就带来几个问题:如何声明函数、参数如何传递等。限于篇幅,不能说得很细。下面举例:
汇编程序单独保存一个文件,加入到工程中,函数如下:
用c语言在.h文件中声明: extern unsigned char proc_a(unsigned char val);
调用时形如: retvalue = proc_a(0x11);
a:汇编程序如果带参数,则需要在汇编程序前多加一个下划线。而声明它的地方不用加(伟福编译器这么要求的)。
b:函数的形参中第一参数用R7传递,函数返回值用R7返回,这是C51的通用规范。其他参数都有相应规定。函数可以返回一个位,用psw的c位返回。c:上面的语句,执行顺序是把0x11给R7,然后跳转子程序,子程序将它加1后送回。
d:函数跳转到汇编程序时,本区的R0-R7,A,B,PSW,DPTR等寄存器可以供子程序使用,不必考虑调用后是否要恢复这些常规资源。上例中,A的值被函数使用了,编程者不必恢复调用前的值。
3:51单片机的P0口特殊之处
许多新手都碰到这个问题,其实很简单,这涉及到芯片的io脚是怎么做出来的。这对硬件工程师来说十分重要。TTL的io脚模型:
P1,P2,P3口都可以理解成左图,注意vcc下面有个电阻,因此可以理解成:引脚输出1的能力弱。地那边没有电阻,可以理解成引脚吸入电流能力强。而P0口,可以理解成右图。这就是集电极开路输出,也叫OC输出。可以看出,当CTR=1时,三极管导通,引脚被接地;当ctr=0时,三极管截止,引脚浮空,也叫三态。这个端口这么做的目的是考虑P0口肩负读写数据和地址复用,这个关系要仔细看懂cpu时序图。因此,P0口要加合适的上拉电阻,绝不要加下拉电阻。上拉电阻的选择要看外部负载情况。
4:P1-3口如何输入输出
从上节的左图可以看出。做输出时,ctr=1则输出强信号0,ctr=0则输出弱信号1。当io脚做输入时,应使ctr=0,这样三极管截止。外部信号如果是1,则上拉电阻加强了这个1,单片机就会读到1。当外部信号为0时,注意,必须将上拉电阻的上拉作用全部抵消,才能在引脚上得到0。
因此,对于程序来说,把io脚置1就处于接收状态,当然也是输出1状态。程序置io口为1,读取的信号是不是1就依靠外部电路了,如果外部电路没有&吃掉&上拉电阻的电流,则读取得到1,反之,虽然程序置io脚为1,但是读取得到的就是0。
因此,如果用io脚的高电平驱动外部电路时,要小心外部电路把这个1&吃掉&从而输出不了1。而作为输入时,为0电平的外设必须足够有能力将io脚拉低。所以,用io脚直接点亮led的时候,最好用反逻辑,就是输出0,让led亮。这样能保证驱动能力。就是io脚接led的负端,led的正端过电阻接vcc。
因此,io脚输出1时,外部电路将它强行接地是没有关系的,而io脚输出0的时候,外部电路强行接电源就会把io脚损坏。所以,程序加电之后,一般把所有io口都写成1:MOV P0,0FFH。
P3口引脚复用,必须引脚都处于输出1状态。例如,把RXD脚输出0,则它什么数据都读不进来了,笔者早期曾调试一整天才发现串口收不到数据是没有把RXD置1的原因,把时间都浪费在外围了,当时很是汗颜。
5:有关晶振
单片机的晶振在内部可以简化成一个反向器。当晶振输入脚XI刚过坎压、被认为是1的一瞬间,输出脚XO就输出0,这个0会带动晶振使XI电压下降,当降低到坎压被认为是0的一瞬间,输出脚XO就输出1。这样周而复始。
因此,用示波器观察正常工作的晶振输入脚XI时,得到的是一个不高不低的近似水平线。而XO则是幅值很大的正弦波。测量晶振输入脚XI时,示波器表笔要打在X10档上,否则,表笔就能把晶振弄停。
因此布线时,晶振输入脚XI要尽量靠近晶振,而XO脚可稍远。同时XO具有一定的驱动能力,某些芯片可以用它驱动其它时序电路(不推荐这么做,因为系统可靠性下降)。
写到这里,才发觉51单片机的问题太多了,这篇文字简直就是沧海一粟。
原文标题:电子设计之C51单片机常见问题
文章出处:【微信号:mcu168,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
发布评论请先
在接触过多种MCU,接触过复杂设计要求,跑过操作系统等等后,我们在回到单片机的裸机开发时,就不知不觉....
压控晶振输入电压和输出频率的关系是什么?VCXO压控振荡器的频率偏移值同加在其调谐电路上的控制电压的....
本文主要介绍了基于FPGA的压控晶振同步频率控制系统的研究与设计。利用GPS提供的1pps秒脉冲信号....
本文主要介绍了压控晶振电路原理_压控晶体振荡器分类,压控晶振的参数及选型。压控晶振主要由石英谐振器、....
本文主要介绍了恒温晶振电路图大全(五款恒温晶振电路设计原理图详解)。恒温晶振是利用恒温槽使晶体振荡器....
本文主要介绍了温补晶振结构介绍,温补晶振原理,TCXO的应用。温补晶振(TCXO):是在晶振内部采取....
本文主要介绍了32768晶振作用与计时。32.768KHZ时钟晶振在电子产品中起到的重要作用,327....
本文主要介绍了32768晶振封装尺寸详解。首先32768分有源和无源的区别。一般32.768kHZ这....
32768晶振不起振原因及解决办法有哪些?32.768kHz晶振是市面上使用最为广泛的一类晶振。爱普....
本文主要介绍了32768晶振实现秒信号。32.768KHZ的时钟晶振产生的振荡信号经过石英钟内部分频....
本文主要介绍了32768晶振电路图大全(五款32768晶振电路图设计原理图详解)。CD4069的门I....
一、基本概念1、 89C51单片机中共有5 个中断源:两个外部中断,两个定时/计数器中断(溢出),一....
常有同学问我单片机应该怎么学,我的回答都是两个字:实践。我觉得实践才能出真知,不实践是永远也学不会单....
单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运....
与有线数据传输相比,无线数据传输以成本低廉、适应性好、扩展性好、组网简单方便、设备维护简单等特点在工....
holtek单片机是由盛群半导体设计开发,盛群半导体为国内专业微控制器IC设计领导厂商,营业范围主要....
随着单片机应用的普及,单片机间通信问题已引起广泛的关注。目前,应用较多的是有线通信,而如何利用现有的....
系统共用RAM,用缓冲器隔开,还有问题:如果两机同时使用RAM,则会发生冲突,双机都发生故障。解决的....
本程序应用在51单片机上的,程序如下:
单片机是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器(CPU)、存储器(含程序存....
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-}

我要回帖

更多关于 单片机51流水灯程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信