单片机的内外部结构分析(二)
技术交流 找杨工 Q1075349026
一、 程序的完善
上一次我们的程序实在是没什么用,要灯亮还要重写一下片子,下面我们要让灯不断地闪烁,这就有一定的实用价值了,比如可以把它当成汽车上的一个信号灯用了。怎样才能让灯不断地闪烁呢?实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10不断地输出高和低电平。怎样实现这个要求呢?请考虑用下面的指令是否可行:
SETB P10
CLR P10
……
这是不行的,有两个问题,**,计算机执行指令的时间很快,执行完SETB P10后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLR P10指令,灯又亮了,所以根本分辨不出灯曾灭过。第二,在执行完CLR P10后,不会再去执行SETB P10指令,所以以后再也没有机会让灭了。
为了解决这两个问题,我们可以做如下设想,**,在执行完SETB P10后,延时一段时间(几秒或零点几秒)再执行第二条指令,就可以分辨出灯曾灭过了。第二在执行完第二条指令后,让计算机再去执行**条指令,不断地在原地兜圈,我们称之为 循环 ,这样就可以完成任务了。
以下先给出程序(后面括号中的数字是为了便于讲解而写的,实际不用输入):
;主程序:
LOOP: SETB P10 ;(1)
LCALL DELAY ;(2)
CLR P10 ;(3)
LCALL DELAY ;(4)
AJMP LOOP ;(5)
;以下子程序
DELAY: MOV R7,#250 ;(6)
D1: MOV R6,#250 ;(7)
D2: DJNZ R6,D2 ;(8)
DJNZ R7,D1 ;(9)
RET ;(10)
END ;(11)
按上面的设想分析一下前面的五条指令。
**条是让灯灭,第二条应当是延时,第三条是让灯亮,第四条和第二条一模一样,也是延时,第五条应当是转去执行**条指令。第二和第四条实现的原理稍后谈,先看第五条,LJMP是一条指令,意思是转移,往什么地方转移呢?后面跟的是LOOP,看一下,什么地方还有LOOP,对了,在**条指令的前面有一个LOOP,所以很直观地,我们可以认识到,它要转到**条指令处。这个**条指令前面的LOOP被称之为标号,它的用途就是给这一行起一个名字,便于使用。是否一定要给它起名叫LOOP呢?当然不是,起什么名字,完全由编程序的人决定,可以称它为A,X等等,当然,这时,第五条指令LJMP后面的名字也得跟着改了。
第二条和第四条指令的用途是延时,它是怎样实现的呢?指令的形式是LCALL,这条指令称为调用子程序指令,看一下指令后面跟的是什么,DELAY,找一下DELAY,在第六条指令的前面,显然,这也是一个标号。这条指令的作用是这样的:当执行LCALL指令时,程序就转到LCALL后面的标号所标定的程序处执行,如果在执行指令的过程中遇到RET指令,则程序就返回到LCALL指令的下面的一条指令继续执行,从第六行开始的指令中,可以看到确实有RET指令。在执行第二条指令后,将转去执行第6条指令,而在执行完6,7,8,9条指令后将遇到第10条令:RET,执行该条指令后,程序将回来执行第三条指令,即将P10清零,使灯亮,然后又是第四条指令,执行第四条指令就是转去执行第6,7,8,9,10条指令,然后回来执行第5条指令,第5条指令就是让程序回到第1条开始执行,如此周而复始,灯就在不断地亮、灭了。
在标号DELAY标志的这一行到RET这一行中的所有程序,这是一段延时程序,大概延时零点几秒,至于具体的时间,以后我们再学习如何计算。 程序的**一行是END,这不是一条指令,它只是告诉我们程序到此结束,它被称为 伪指令 。
二、单片机内部结构分析:
为了知道延时程序是如何工作的,我们必需首先了解延时程序中出现的一些符号, 就从R1开始,R1被称之为工作寄存器。什么是工作寄存器呢?让我们从现实生活中来找找答案。如果出一道数学题:123+567,让你回答结果是多少,你会马上答出是690,再看下面一道题:123+567+562,要让你要上回答,就不这么容易了吧?我们会怎样做呢?如果有张纸,就容易了,我们先算出123+567=690,把690写在纸上,然后再算690+562得到结果是1552。这其中1552是我们想要的结果,而690并非我们所要的结果,但是为了得到*终结果,我们又不得不先算出690,并记下来,这其实是一个中间结果,计算机中做运算和这个类似,为了要得到*终结果,往往要做很多步的中间结果,这些中间结果要有个地方放才行,把它们放哪呢?放在前面提到过的ROM中可以吗?显然不行,因为计算机要将结果写进去,而ROM是不可以写的,所以在单片机中另有一个区域称为RAM区(RAM是随机存取存储器的英文缩写),它可以将数据写进去。
特别地,在MCS-51单片机中,将RAM中分出一块区域,称为工作寄存器区。
嵌入式学习网!www.edu118.com
技术咨询:杨老师13724236349 QQ1075349026 |
技术咨询:杨老师13724236349 QQ1075349026
这里是【深圳信盈达嵌入式实训学院】,单片机培训、嵌入式ARM培训、linux培训、PCB培训、FPGA培训,汇编C语言培训、Android培训、
数电模电培训、cortex-m3培训!
地址:
南山实训基地:深圳市南山区南新路与桃园路交汇处苏豪名厦705室
龙华实训基地:深圳市宝安区民治大道东边商务大楼1188
沙井实训基地:深圳宝安区沙井街道创新路沙井广场1号楼1506室,
布吉实训基地
|
友情提示:
信息由用户自行发布,采用请谨慎,我们鼓励您当面交易。如有不符合法规或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们。名站在线只为传递信息,我们不做任何双方证明,也不承担任何法律责任。 信息转载,请标明来源于www.fwol.cn ,谢谢。 |
当前页在本站[名站在线]7天内点击次数(点击次数为零的日期不显示): |
信息评估: |
(还没有网友对该信息作出评估,你想为该信息提供第一个评估吗?) |
江苏科翔制泵混流潜水泵怎么样_潜水泵价格江苏科翔制泵混流潜水泵怎么样_潜水泵价格 过多年的持续发展,江苏科翔制泵的规模不断发展壮大。我司供有完善的销和后团队的服务,已在企业中取得用户广泛的支持。公司注重产品质量,以及提供完善细致的服务,对于公司出的混流潜水泵,公司不仅会在双方协商的时间内准时发货,并且还提供优质的后服务。混流潜水泵品牌江苏科翔生产厂江苏科翔制泵有限公司生产地址江苏省徐州市沛县经济开发区1号路保修期一年材质铸铁产品等级优质...高品质钢波纹管涵批发_广东销量全国的钢波纹管涵高品质钢波纹涵批发_广东销量全国的钢波纹涵 奇佳交通设施坐落于兰州市城关区雁西路鑫亿城,成立于2009-05-10,是一专业制造建筑建材类材的企业。具有钢波纹涵等各种新型材多个品种,产品具有寿命长、韧性好、环钢度高、耐寒性强、耐腐蚀、无污染、环保可回收等优点。公司拥有雄厚技术实力和一套完善的科学理体系,电话来询。联系手机13359466069,联系人胡经理 奇佳交通设施的钢波纹涵主要是用于排水,产品性能优良,具有虽短...西北哪里有做新风系统_甘肃质量可靠的新风系统生产厂家西北哪里有做新风系统_甘肃质量可靠的新风系统生产厂 兰州绿健配有国内外先进的新风系统生产设备、稳定熟练的生产和销团队,多年的新风系统生产经验,**竞争优势的销价格,以及**的前、后服务赢得了广大需求群体的信赖与支持。用户间的口碑相传成为公司发展的重要资源。作为兰州绿健公司主导产品之一,新风系统具有优越的实用性,质量可靠等特点,被广泛用于通风。生产地址甘肃新风系统品牌绿健生产厂绿健环保科技有限公司后维...防伪标签哪里有卖福州防伪吊牌防伪标签哪里有卖福州防伪吊牌工艺印刷规格条码防伪标签品牌倍诺服务地区福建是否定制可定制后维修地区福建后服务优质价格商议 厦门倍诺信息科技有限公司成立于2009-01-22,是一集生产制造,市场营销,技术服务于一体的高新技术有限责任公司。公司专注于各类防伪标签研发与生产,在福建各地都有销网点,市场营销,后服务。产品多年来深受广大品牌企业青睐,在业界拥有很好的口碑。 一、类别
A.防伪标签
B.溯源防窜货标签
C...潮州欧式真皮沙发_爆款欧式金色真皮沙发威灵顿家具供应潮州欧式真皮沙发_爆款欧式金色真皮沙发威灵顿具供应 威灵顿具为用户提供科学的合营销方案,欧式金色真皮沙发是以批发;零;直销;厂直销;网上销的方式向客户销,对于需要购买我司具产品的客户,可通过在线支付;现金支付;银行转账的方式进行付款,我们会在2-3天内及时发货。高质量的产品与优质的后服务,打消您在选择和使用中的顾虑。 威灵顿具凭借近几年快速地发展,不断为客户带来高品质的产品,主营的欧式金色真皮沙发在生产...
|
|
|
|
|