标题:
20天89C51单片机总结
[打印本页]
作者:
cogobuy123
时间:
2012-10-24 14:35
标题:
20天89C51单片机总结
从芯片的内部看的话主要的就两个独立的存储器
ROM,RAM
一个为程序指示,一个为数据处理和存放。编程时通过寻址方式区别
ROM,RAM
。他们都为
64KB
的容量。
ROM
的片内为
4KB
存储空间。由
EA
指示是从片外执行程序还是从片内执行。
RAM
片内为
256
字节即
FFH
分
4
个部分。
00H~1FH
为工作寄存器组。
20H~2FH
为为寻址空间。
30H~7FH
为用户
RAM
区。
80H~FFH
为特殊寄存器区。有
22
个
SFR
(这里就不在介绍了)。
说说指令系统吧。
MOV
,
MOVX
,
MOVC3
个传送指令其中片外存储器是不能直接传送的。
3
个调用指令
AJMP,LJMP,SJMP.
分别用于不同的调用范围。逻辑算术指令
ANL ,ORL ,XRL.
还有加
ADD
,减
SUBB
,乘
MUL,
除
DIV
。还有很多的指令如交换,跳转,循环,位寻址,布尔处理指令等。
例如下面的循环
-
跳转指令
MOVR0,#00H
MOV R1,#AAH
MOV R7#0BH
loop: MOV A ,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R7,loop
END
这个程序就是执行片内传送功能的。
说说程序的一般流程吧。分为顺序,分支,循环,还有组合嵌套。上面的例题就是循环的一种。
写个分支程序的例题
MOV A,R1
RL A
MOV DPTR,#data
JMP @A +DPTR
data: AJMP KK1
AJMP KK2
AJMP KKn
这个指令就是以
data
为首地址
R1
为偏移量的分支转移,因为
AJMP
为双字节指令所以要执行
RL A
。
下面在说下中断跟定时吧。
中断涉及的寄存器由
TCON , IE, IP,SCOM.
通过对中断中断标志位的设置区执行中断请求。中断有
5
个入口地址
03H 0BH 13H 1BH 23H.
例如外部中断一的入口在默认模式下设置为最高优先级
SETB PX1
STEB EX1
STEB EA
非常简单,有点像闯关游戏每个环节都完成才能执行中断。
下面是定时器,定时器在单片机的运用是非常高的。
4
种工作模式
0
,
1
,
2
,
3
。
我就用典型的定时器
0
模式
2
在
12MHZ
的程序编写一个正弦波输出
XXMS
在
P1.0
。初值就用
KKH
代替吧。
MOV P1 ,#FFH
MAIN: MOV TMOD , #02H
MOV TH0 ,#KKH
MOV LHO ,#KKH
STEB ET0
STEB TRO
STEB EA
AJMP $
中断程序
TIME0: CLR TF0
CPL P1.0
RETI.
还有串行口传输了。
89C51
有
4
种模式的传输,其中波特率的设置尤为重要。
涉及寄存器有
TCOM TDOM SCOM SDOM PCON.
其实
89C51
还可以用软件模拟总线接口。如
SPI I2C
等还有按键的程序设置外部的扩展实在太多了。以后有时间在编写发上来。
由
科通芯城(
www.cogobuy.com
)
中国首个
电子元器件
自营电商
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0