原创 学单片机软件

2006-10-18 17:54 3482 15 10 分类: MCU/ 嵌入式

下面再给大家讲一下软件的学习,学习软件首先是语言的学习,建议大家先学汇编,因为相对来说单片机的汇编语言还是比C要入门快一点,当然,如果你C很牛的话,那就另当别论了!
学习汇编语言,首先的是指令的学习。有的人说指令要去背,先背熟了再说。而还有的人说指令不用去细细的学,只要看明白就OK了,以后会有大量的程序让你熟习的!其实,我觉的这两种说法都不是很对,因为指令确实是很重要的,你想一下如果单词都不认识的话,你怎么去看英语的文章呢?所以指令是一定要学精的,但有没有必要要去背下来呢?答案是肯定的,不过不是在一开始就背,因为那个时候你什么都不知道,背下来也没什么用,所以,开始的时候就要去了解一下指令,当你都知道是什么意思了,并且知道它对PSW的CY,OV,AC.P的影响的时候,就去背它,要能默的出来,而且是很熟的默的出来,当然这是在以后的程序练习中,慢慢的去学的。
指令的分类有几种,大体上可分为单字节指令(49条),双字节指令(45条),多字节指令(17条)。还有一种分法就是分为数据转移类指令(也称MOV类指令共有29条)`算术运算类指令(24条),逻辑运算类指令(24条),控制转移类指令(17条),位操作类指令(17条)。
另指令的寻址方式有七种:寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,立即数寻址方式,变址寻址方式,和位寻址方式。
下面详细的给大家讲一下111条指令:
    首先要明白这五个东东的意义:A(累加器)Direct(地址寄存器)Rn(寄存器组n="0"---7)@Ri(间接寻址i="0".1)#data(立即数)
数据转移类指令(也称MOV类指令共有29条)
以累加器A为目的(4条)
 
MOV A, Rn (寄存器数据传送指令)   
MOV A,direct(直接寻址数据传送指令)   
MOV A,@Ri (间接寻址数据传送指令)   
MOV A,#data (立即寻址数据传送指令) 
相应练习:
例1:设(R5)=03H,(A)=E7H,执行MOV  A,R5指令后,(A)=?
(R5)=?



例2:设(A)=24H,执行 MOV  A,#05H指令后, (A)=?



例3:设(A)=23H,(30H)=A6H,执行 MOV  A,30H指令后,(A)=?
(30H)=?



例4:设(A)=23H,(R1)=40H,(40H)=09H,执行 MOV A,@R1指令后,(A)=?
以Direct为目的(5条)
 
MOV direct,A (累加器数据传送指令)   
MOV direct, Rn (寄存器数据传送指令)   
MOV direct2, direct1 (直接寻址数据传送指令)   
MOV direct,@Ri (间接寻址数据传送指令)   
MOV direct,#data (立即数传送指令) 
相应练习:
例5: 设(A)=35H,(60H)=FEH,执行MOV 60H,A指令后,(A)=?  (60H)=?



例6: 设(R5)=03H,(40H)=6DH,执行MOV 40H.R5指令后,(R5)=? (40H)=?



例7: 设(89H)=12H,(23H)=4BH,执行MOV 23H,89H指令后,(89H)=?
(23H)=?



例8: ,MOV 70H,#20H



例9: 设(64H)=34H,(R1)=67H,执行MOV 64H,@R1指令后,(64H)=?
   3,以Rn为目的(3条)



MOV Rn,A (累加器数据传送指令)   
MOV Rn,direct (直接寻址数据传送指令)   
MOV Rn,#data (立即数据传送指令) 
相应练习:
例10: 设(R4)=5AH,执行MOV R4,#3FH指令后,(R4)=?



例11: 设(R7)=03H,(50H)=1FH,执行MOV R7,50H指令后,(R7)=?



例12: 设(A)=80H,(R6)=32H,执行MOV R6,A指令后,(R5)=? (A)=?
   4以@Ri为目的(3条)



MOV @Ri,A(累加器数据传送指令)   
MOV @Ri,direct (直接寻址数据传送指令)   
MOV @Ri,data (立即数传送指令) 
例13: 设(R0)=65H,(65H)=F5H,执行MOV  @R0,#23H指令后,(65)=?



例14: 设(37H)=4CH,(R1)=10H,(10H)=45H,执行MOV @R1,37H指令后,(10H)=?



例15: 设(A)=4DH,(R0)=14H,(14H)=34H,执行MOV @R0,A指令后,(14H)=?
5.  16位数据传送指令(1条).


MOV  DPTR  #data 16     


例16: MOV DPTR #230FH     DPH=?    DPL=?
6累加器A与片外RAM之间的数据传送4条)
    
 
MOVX A,@Ri (寄存器间接寻址外部RAM读指令)   
MOVX A,@DPTR (数据指针间接寻址外部RAM读指令)   
MOVX @Ri,A (寄存器间接寻址外部RAM写指令)   
MOVX  @DPTR,A (数据指针间接寻址外部RAM写指令) 
例17: 将片外0123H单元中的内容送到片内RAM地址为70H单元中.
7累加器A与程序存储器ROM之间的数据传送(2条)
 
MOVC A,@A+DPTR (程序存储器指令)   
MOVC A,@A+PC (程序存储器指令) 
例18: 设(A)=54H,(DPTR)=3F21H,(3F75)=7FH,执行MOVC A,@A+DPTR指令后,(A)=?
8 堆栈操作(2条)



PUSH  direct  (进栈)   
POP    direct   (出栈) 
例19: 已知(20H)=40H,(21H)=70H 执行  MOV SP,#30H
                                     PUSH 20H
                                     PUSH 21H
                                     POP 20H
                                     POP 21H
后的(20H)=?,   (21H)=?.
9字节交换指令(5条)
 
SWAP  A (累加器高低半字节交换指令)   
XCH  A,Rn (寄存器寻址字节交换指令)   
XCH  A, direct (直接寻址字节交换指令)   
XCH  A,  @Ri (间接寻址字节交换指令)   
XCHD  A,  @Ri (半字节交换指令) 



例20: 设(A)=23H, (R1)=7FH,(7FH)=75H,执行XCH A,@R1指令后,(A)=?,(R1)=?,(7FH)=?



例21: 设(A)=12H,(35H)=71H ,执行XCH A,35H指令后,(A)=? (35H)=?



例22: 设(A)=62H,(R0)=55H,(55H)=7BH,执行XCHD A, @R0指令后,(A)=? (R0)=? (55H)=?



例23: 设(A)=34H,(R3)=07H, 执行XCH A,R3指令后,(A)=?  (R3)=?
先到这里喽,多了大家又要头大了!哈哈,其它的大家自己总结吧!只有这样子才印象深啊!答案大家可以问我要啊!不过你一定要自己做完哦!记住一点:软件的学习一定要多多练习,多上机调试。否则,单片机等于没学!!!!1

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户50661 2006-10-18 22:10

唉,说来惭愧,我95年开始想自学单片机,买了学习板还有很多书,就是因为指令入不了门,现在还是一知半解,荒,看来还得重新学习~ 我的QQ:2475034,大家有空一起交流经验呀,一个人学很乏味的。

用户1401609 2006-10-18 18:24

不错!我正在学这个,所以还有很多地方不太懂!学习学习!

用户1614197 2006-9-28 21:04

顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!

用户860311 2006-9-26 17:15

cocappjj ,我这里还是不行啊,那就怪了!
1.不可以设置友情链接
2.不可以显示公告

用户1053025 2006-9-26 14:20

agan,管理——》参数设置——》友情链接,应该可以管理的,你看我的博客已经改好了。

用户1053025 2006-9-26 14:11

是freebird提供的?这个世界真小啊。。。是因为EDN变小的吗?嘻嘻
相关推荐阅读
jerrymiao 2015-05-06 13:24
Markting工作进阶笔记
我一直在从事IC分销行业的Markting工作,业内的工作职位名称是PM(Product Markting)。有意思的是这正好与产品经理(PM:Product Manager)撞车。但因为我们都是...
jerrymiao 2015-04-28 08:46
一篇文章了解MEMS硅晶振
如果把CPU比作是电路的大脑的话,那么晶振毫无质疑就是心脏。同样,电路对晶振的要求也如同一个人对心脏的要求一样,最最需要的就是稳定。目前晶振的主要加工材料还是石英,这主要是因为石英的压电效应。除此...
jerrymiao 2015-04-13 15:35
关于IC推广中的服务问题
任何行业归根结底都是服务行业,只有为客户提供超出期望的服务,才能可能在众多竞争对手中脱颖而出。 一般IC的推广期,也就是所谓的Desgin  IN期,需要我们提供的服务大体可分为三个方面:方案...
jerrymiao 2015-04-10 12:18
我所认为的IC分销行业中的互联网+
   “互联网+”似乎成了最近最热的一个词汇,今天在小区门口买煎饼的时候,摊煎饼的阿姨突然对我讲,“扫一下玻璃上的微信二维码免费多加个鸡蛋,以后可以通过微信提前下单不用排队”。我瞬间石化……,...
jerrymiao 2015-04-10 09:56
有源晶振参数详解
有源晶振作为时钟元件,为电路提供标准的时钟频率。所以晶振工作的稳定与否直接决定了整个系统的稳定与否。电子设计人员普遍认同晶振为关键器件,但在选择晶振时,对各参数情况却不甚了解。往往造成调试时出现这样那...
jerrymiao 2015-04-10 09:53
为什么MEMS硅晶振终将替代石英晶振
如前面所述,一个事物是否会被取代或者取代别的事物,我们主要从其是否适应行业发展趋势来看。 1959年世界首颗硅集成电路研发成功,从此替代了晶体管,开创了电子行业发展的新纪元。 我们原来用的相机胶卷,如...
EE直播间
更多
我要评论
2
15
关闭 站长推荐上一条 /3 下一条