① 单片机实验注意事项
单片机开发规则与注意事项
随着大规模集成电路技术的发展,单片微型计算机也随之大发展,各种新颖的单片机层出不穷。单片机具有体积小、重量轻、应用灵活且价格低廉等特点,广泛地应用于人类生活的各个领域,成为当今科学技术现代化不可缺少的重要工具。
单片机系统的开发融合了硬件和软件的相关技术。要完成单片机系统的开发,用户不仅需要掌握编程技术,还需要针对实际应用选择合理的单片机芯片和外围器件,以此为基础,设计硬件电路。
正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。
要完成单片机系统的开发,用户不仅需要掌握编程技术,还需要针对实际应用选择合理的单片机芯片和外围器件,以此为基础,设计硬件电路。
单片机开发规则与注意事项
设计满足要求的最精简的系统
正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。
看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由单片机来完成,如果在一定间隔内没能更新看门狗,那看门狗将产生复位信号,重新复位单片机。更新看门狗的具体形式多是给看门狗芯片相关引脚提供一个电平上升沿或读写它的某个寄存器。使用看门狗电路将在单片机发生故障进行死机状态时,重新复位单片机,像EN8F154本身就带有看门狗。
确定系统的复位信号可靠
一般在单片机的数据手册(Datasheet)中都会提到该单片机需要的复位信号的要求。一般复位信号的宽度应为。复位电平的宽度和幅度都应满足芯片的要求,并且要求保持稳定。还有特别重要的一点就是复位电平应与电源上电在同一时刻发生,即芯片一上电,复位信号就已产生。不然,由于没有经过复位,单片机中的寄存器的值为随机值,上电时就会按PC寄存器中的随机内容开始运行程序,这样很容易进行误操作或进入死机状态。
确定系统的初始化有效
系统中的芯片以及器件从上电开始到正常工作的状态往往有一段时间,程序开始时延时一段时间,是让系统中所有器件到达正常工作状态。究竟延时多少才算合适?这取决于系统的各芯片中到达正常工作状态的时间,通常以最慢的为准。一般来说,EN8F154的延时20-100毫秒已经足够。对于系统中使用嵌入式MODEM等“慢热”型的器件来说,则应更长。当然,这都需要在系统实际运行中进行调整。
当然,仿真是单片机开发过程中非常重要的一个环节,除了一些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主要目的是进行软件调试,当然借助仿真机,也能进行一些硬件排错。一块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电路,仿真就是利用仿真机来代替应用电路板(称目标机)的单片机部份,对应用电路部份进行测试、调试。仿真有CPU仿真和ROM仿真两种,所谓CPU仿真是指用仿真机代替目标机的CPU,由仿真机向目标机的应用电路部份供给各种信号、数据,进行调试的办法。
② 单片机怎么编程
1、下个keil3软件,新建工程之后,新建文件,写文件名的时候,写.asm后缀的就是写汇编语言,写.c后缀的就是写C语言。
2、至于怎么编程,单片机编程,重点就是掌握单片机有哪些I/o口,哪些寄存器,哪些特殊寄存器。
3、推荐看一下视频《十天学会单片机》,搜一下都有的,对初学者非常有帮助。
4、另外补充一点,学单片机,光看书一年都学不会,边看边学,一个月就能入门了,所以最好弄一块板子,在上面跑跑程序。
③ 51单片机编程的注意事项
模块化的写
平时把一些模块存着
④ 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编译的不确定性,必须把底层程序封装成汇编语言模块嵌入到工程中。这就带来几个问题:如何声明函数、参数如何传递等。限于篇幅,不能说得很细。下面举例:
汇编程序单独保存一个文件,加入到工程中,函数如下:
_proc_a:
mov a, r7
inc a
mov r7, a
ret
用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的值被函数使用了,编程者不必恢复调用前的值。
⑤ 单片机编程的几个问题,欢迎高手!!
答:
1.是个循环,而且是个死循环。他在单片机中是常要用到的,功能就是只要单片机上电它使程序不停里执行死循环里的内容!
2.这个看你的单片机的硬件电路了,你最好也先看懂硬件电路才编程。通常LED的公共端是用三极管选通的!看来你的LED是共阳极接法的,就是8个LED正极共同接到三极管的发射极,集电极接VCC,基极连到P1口的接法,如果你会三极管,应该就能看懂为什么了!P1=0,三极管正向导通,VCC加到LED上,如果LED的另一端接的是低电平,使LED正偏,则LED亮。想想吧~~
3。CPU不停地执行while(1)里面的语句,但是当有中断发生时,CPU得先去执行中断,然后才能返回到while处继续执行,也就相当等待中断了!也就是说:有中断发生CPU就立该执行中断,没有的话就一直执行while(1)里面的~~
⑥ 单片机编程步骤
一、什么是 nec 单片机
随着大范畴集成电路的显现和发展,将计算机的cpu、ram、rom、定时/数器和多种i/o接口集成在一片芯片上,组成芯片级的计较机,因此单片机早期的含义称为单片微型计较机,直译为单片机。单片机是一种集成在电路芯片,是采用超大范畴集成电路技能把具有数据处理本事的中心处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和间断系统、 定时器 / 计时器 等成果(大要还包括表现驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完竣的计算机系
二、nec单片机的操纵教程详解
1、在智能仪器仪表中的操纵:在各类仪器仪表中引入单片机,使仪器仪表智能化,进步测试的自动化程度和精度,简化仪器仪表的硬件结构,进步其性能价格比。
2、在机电一体化中的操纵:机电一体化产品是指集呆板、微电子技能、计较机技能于一本,具有智能化特征的电子产品。
3、在实时过程控制中的操纵:用单片机实时进行数据处理和控制,使系统保持最佳事变状态,进步系统的事变从命和产品的品格。
4、在人类生活中的操纵:目前国外各种家用电器已普通采用单片机代替传统的控制电路。
5、在此外方面的操纵:单片机除以上各方面的操纵,它还遍布操纵于办公自动化范围、商业营销范围、汽车及通信、计较机外部装备、暗昧控制等各范围中。
以上就是为大家整理的关于单片机含义及其具体操纵教程的全部内容了。此外小编还额外为大家整理了单片机的优点:低电压、低功耗、集成度高、可靠性高、体积小、控制成果强等。希望通过这篇文章能够给想要了解单片机相关知识的朋友带来一些帮助。另外大家如果想了解更多单片机的知识可以通过图书查阅、网络查阅等方式。
⑦ 学习51单片机怎样才能熟练掌握使用编程
自学MCS-51单片机心得体会
无论是作为一名业余的电子爱好者还是一名电子行业的相关从业人员,掌握单片机技术无疑可以使您如虎添翼,为您的电子小制作或者开发设计电子产品时打开方便的大门! 而且现在学习单片机技术的热潮正在不断升温,时下多家电子类的报刊杂志如:《电子制作》《无线电》《电子报》《电子世界》都开设了详细的单片机学习专栏,对于想学习单片机的朋友来说帮助很大,可以说现在的单片机学习环境是最好的,经过一段时间的努力,采用单片机来开发设计电子产品已经不再是专业电子工程师的“专利”!作为一个普通的电子爱好者完全可以通过一番努力后熟练掌握!国外的电子爱好者采用单片机来设计小制作非常普及,一些智能机器人、智能自动装置内部都离不开单片机的身影~~~
现今单片机学习环境真的是太好了,有网络,有书籍,有报刊杂志,还有视频教程,元件的采购方面也非常充足,相关的器材又多有便宜,相比而言,本人当初的学习条件就只可以“寒碜”二字来形容了:
站长的单片机技术是通过看书、动手自学学会的。 又因为站长的专业不是电子专业,所以单片机对于我来说是完全陌生的——最初我对单片机的概念都不清楚,还弄了一年多时间的单板机(i8085)——直到后来在图书城“蹲点”(当时上网还是件奢侈的事情,何况我也没电脑),才总算明白什么是单片机。 当时(7年前,我还上高中的时候),可以供选择的单片机种类并不如现今这么多,因此通常说起单片机就是特指MCS-51,因此我也就学了它。不过,正是因为用它的人多,所以能够获得的资料也多,元件也比较好购,因此我的自学之路才得以顺利走下去。 当时那个穷啊,不敢买新零件,只能在废旧家电上拆,参数不匹配也将就着用,而且还多亏了商铺老板看我可怜而以6折的价给了我一片i8051和一片2864,要知道当时这两个东东加起来有七十多块啊,够我三个月的零花钱了(都高中了,三个月才这么点零花钱!)。 元件基本上差不多了,没有电脑写程序怎么办呢,好在我买的那本书上提供了指令的机器码,所以我就先用笔在纸上把汇编源程序写出来,然后根据书上的指令表把源程序手工翻译成机器码,就是10001111这样的代码,写在源程序旁边。这就是我的“编辑环境”和“编译器”! 程序也有了,可是怎样把它弄到存储器里去呢,买编程器是不现实的,一来没有电脑,二来,当时一只编程器上千元的价格也只能让我啧啧摇头。
那怎么办呢……想来想去,找来找去,最后我利用以前做小实验的那几块面包板,拼在一块合适大小的木板上,然后把存储器按照要求插好,用插线连好电源和地,用电阻做出高低电平,然后通上电,再根据地址和数据的状态,用镊子把那些连线一根一根插到高或低电平,核对之后再把WR引线接一下地,这样就可以写入一个字节,写下面的字节的时候就重复以上这些步骤就行了。若是程序要改动一点,那个工作量就“非常庞大”了。
这就是我的“编程器”! 我写的第一个MCS-51单片机程序——点亮一只LED,以及后来的流水灯程序等,就是在这样的条件下来完成的。 现在,一个最廉价的仿真器也才人民币几十元,一块功能多些的单片机实验板也才上百元,简直就是学习者的天堂了。 网络也给爱好者提供了很多很好的资料,例如平凡的单片机网站。平凡的单片机网站上有非常详细的51单片机基础知识教程,写得非常生动朴实,对初学者来说帮助极大,其它还有不少网站也提供这些内容,还有专供爱好者讨论交流的论坛。 学习单片机技术有一定的难度,不花费一番努力是很难学会的,但是只要不断努力就一定能成功,学习单片机永远记住一句话:实践是检验真理的唯一方法。多动手做,哪怕是从点亮一只指示灯开始,也要动手去做,否则就会永远停留在书本上。 从51系列开始学单片机是个不错的选择:
1.书多、资料多
2.掌握51技术的人多,碰到问题能请教的老师也就多了
3.51系列的实验芯片AT89C51价格低廉而且很容易买到,AT89C51芯片而且可以反复擦写1000次以上,对于初学者来说真是太合适了,就算以后考虑工业运用,也可以先学透51后再学其他类型的单片机,毕竟技术是相通的。
4.相关的器材很廉价,具有绝大多数功能的下载型仿真器才几十元,最简单的专用编程器也才几十元,如果有能力自己做编程器就更便宜。 学习单片机的第一步是看书,单片机是一个知识密集的东东,不看书是绝对不行的,北航出版社(北京航空航天大学出版社)出版了大量单片机方面的好书,可以直接登录他们的网站进行邮购。本人认为第一本书应该是8051单片机的基础原理书。我看的第一本书是咬牙买的兵器工业出版社的《8051/8098单片机原理几接口设计》,这本书不是别人向我推荐的,也不是教材,但它比较系统地介绍了51芯片的基础知识,我正是通过这本书入门的,可以很系统地了解51单片机。对比我后来买的其它51方面的书籍,我还是推荐这本。虽然这些书籍一开始不一定能懂,不过确实很有用,很有嚼头,可以先大致看一遍,不消化的可以以后在试验实践中反复研究。 学习单片机的第二步是购买工具,单片机芯片必须借助编程器才能写入程序,本人用的编程器是一种性能较好的TOP2003通用编程器,通用编程器的特点是专为开发单片机和烧写各类存储器而设计的通用机型,它的编程可靠性高,支持的器件品种很多,不过这些商品化的设备价格偏高,不太适合初学者,或者说有一定程度上的浪费。 本人向初学者推荐一类廉价的编程器,注意,我说的是“一类”,而不是一种特定型号的。
这种编程器一般具有以下特点:
1.没有外壳,而是以裸露的线路板直接销售
2.通常支持常用的单片机和一些其它的芯片,例如存储器等
3.通常不是USB接口,一般采用串行或并行接口连接电脑
4.价格一般在一两百元左右
本站暂时不打算做这样的编程器,但若朋友们有需要,本人也可以考虑做一些提供给大家。
不过从长远的方面考虑,购置一台通用编程器还是有必要的,需要了解的朋友可以搜索一下“单片机编程器”。 学习单片机的第三步是反复编程实践,一个好的实验平台非常重要,实验平台的类型有许多,那些专业的产品动辄几千元,不是普通爱好者能承受的,也完全没有必要使用那样的产品。象编程器一样,有廉价实验板作为替代,有的产品比那些专业器材更好,例如本站推出的MCS-51 Study Board V3.0和V5.0板,就是非常贴近实际使用的设计,如果给它们配上适当的软件,是完全可以直接作为工业控制板而安装在机械设备中使用的。 仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,所以站长在自学单片机的时候没有用过仿真器,碰到程序出错的时候,只好苦思冥想,或者在程序中插入一些驱动端口的指令,然后再接上一些发光二极管做简单指示,一般调试一个程序,反复烧写几十次芯片是很经常的。 具备了必要的工具以后就可以开始学习单片机了,对单片机进行编程可以采用汇编语言或者C语言,汇编语言的特点是代码紧凑,对初学者的电脑水平要求低、上手快,但是程序编写工作量大,站长网站的程序范例就是采用汇编语言编写的,这里说的C语言是专用于51单片机的C语言,它的特点是编写效率高,但是对使用者的电脑水平要求高,最好是已经会C语言了,站长网站上也有单片机C语言教程,是磁动力工作室网站明浩站长编写的,站长不会C语言,所以是从汇编语言开始学编程的。我认为初学单片机的人最好懂一些汇编语言,汇编语言可以直接控制单片机的资源,比如具体的单片机引脚、内存地址,掌握这些也是很有必要的,学会汇编语言可以打下比较好的基础,很多参考书也是这么说的,如果你是专业单片机开发人员,那么C语言效率高,更适合你。 自学汇编语言,首先要学会看懂别人的汇编语言程序,可以将汇编语言的指令翻译成自己容易理解的功能描述性文字,详细注释在程序后面,这样便于自己以后引用或者别人容易看懂。站长看到别人写的一些汇编程序的注释都非常少,这非常不利于初学者学习和互相交流,所以只要是站长写的程序都做了非常详细的注释。 学习汇编语言可以参考相关的书,汇编语言有100多条指令,但是常用的指令也就二三十条,可以先记住常用的汇编指令,如果一时记不住可以打印在纸上慢慢熟悉,然后对别人的汇编程序再加以试验验证,最后还可以在自己理解的基础上对汇编程序的相关参数修改再反复试验。 最后告诉朋友们一个秘密:学习单片机没有捷径!
⑧ 51单片机编程让新手最容易出错的几点总结
新手容易出错的地方可能有:
1、数据类型,unsigned char在单片机中是最常用的数据类型,不是C语言中的自字符串或字符类型,新手很容易搞错。
2、关键字的使用,单片机中有很多内部关键字,比如特殊功能寄存器、中断等等,如:P0,SBUF、interrupt、using等等,这些都不能作为用户的变量用,新手常常不太注意。
3、中断的使用,比如独立按键接到外部中断上,编程时一般利用中断来处理,程序上不会明显看到“键”的显示,新手会很迷茫,怎么没有按键处理?
4、 while循环的使用,单片机C语言中,至少有一个while(1)循环,一保证程序运行在可控状态下,新手往往忽略掉,从而造成程序乱飞。
⑨ 求51单片机进行数据处理时的注意事项,如编程时能进行什么类型的计算,效率有多高等等,100分先奉上
现在大都在用C语言。注意事项:
数据类型:变量尽量用8位单字节unsigned char型的,或者16位双字节unsigned int。一般足够了。如果只是用真假两种状态,(比如标志位)可以用1位的bit型,才用八分之一个字节。不能像电脑编程那样挥霍内存。浮点数等类型,就算了吧。
计算方面:尽量用加减运算,移位运算,与、或、非、运算。
以上运算一个或几个机器周期就能完成。而一个乘除运算,可能需要接近200个时钟周期!(8位)
经验表明,程序不太复杂的情况,乘除法用用也无妨。但尽量用8位的。
是在需要复杂的函数运算的话,(比如说一些温度补偿运算,复杂的函数)可以用查表法,把可能出现的答案都放在code里面,在C语言里是以数组的方式直接查询答案,非常快,缺点是比较占用flash,现在单片机flash都很大,各方面权衡一下。
另外,如果乘以或者除以一个2的平方数的因子,直接可以用移位代替。比如a除以16,等价于a右移4位。
有一些乘除法可以凑数的,靠近2的平方数比较近的数字,根据上一条:
例如:a*30相当于a*32 - a -a 还相当于 a<<5 - a - a
如此一换算,就把乘法拆分成了加减法和移位。大量节约了资源。
另外,比较高级的单片机AVR,MSP430,PIC,大多数型号都集成了硬件乘法器,做乘法只需要一个机器周期,需要复杂运算的时候可以考虑这些高级单片机。