标题:
单片机学习小小结
[打印本页]
作者:
xiaos
时间:
2015-4-10 19:10
标题:
单片机学习小小结
单片机的学习:
对8位单片机的理解
1位有8字节,一个字节有8个i/o口,如STC89C51单片机:
P0.0~P0.7(一位)
P1.0~P1.7(一位)
P2.0~P2.7(一位)
P3.0~P3.7(一位)
XTAL1 XTAL2(外接晶振电路,但现在的好多单片机内置有晶振电路)
RST(一位)
PSEN(一位)
ALE(一位)
EA(一位)
人类的视觉时间是1/24秒,小于此范围内的视觉时间是感觉不到的。
汇编延时的子程序一:
DELAY200MS: ;@12.000MHz
MOV 30H,#2
MOV 31H,#134
MOV 32H,#13
NEXT:
DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
RET
DELAY150MS: ;@12.000MHz
MOV 30H,#2
MOV 31H,#40
MOV 32H,#16 ;未加H则表示为十进制
NEXT:
DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
RET
DELAY100MS: ;@12.000MHz
MOV 30H,#197
MOV 31H,#16 ;未加H则表示为十进制
NEXT:
DJNZ 31H,NEXT ;自减15次
DJNZ 30H,NEXT ;自减(n-1)*(0-1)= (n-1)*255
RET
注意:
加“#”号表示一个数,不加则表示一个“物理地址”
【重点】如何计算延时时间:
1.利用STC-V6.24中的延时计算器来生成汇编或C代码
DELAY200MS: ;@11.0592MHz
PUSH 30H
PUSH 31H
PUSH 32H
MOV 30H,#2
MOV 31H,#103
MOV 32H,#140
NEXT:
DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 32H
POP 31H
POP 30H
RET
2.计算得到:
;2014年7月17日17:00:34 8个流水灯的演示
ORG 00H
MAIN:
MOV P2,#0AAH ;等价于#10101010B(从P2.1~p2.7管脚) 注意:如果汇编语言的数字表示是以字母开头的话,则字母开头要加零(0)如,0FF,0AA等
LCALL DELAY200MS
MOV P2,#55H ;等价于#01010101B(从P2.1~p2.7管脚)
LCALL DELAY200MS
SJMP MAIN
DELAY200MS: ;@12.000MHz
MOV 30H,#2 ;30H表示的是地址,单片机的一段数据缓存内存单元,从30H~7FH共80个这样的数据缓存单元
MOV 31H,#134
MOV 32H,#13 ;未加H则表示为十进制
NEXT:
DJNZ 32H,NEXT ;自减12次
DJNZ 31H,NEXT ;自减133*(0-1)等价于133*255 = 33915
DJNZ 30H,NEXT ;自减1*(0-1)*(0-1)= 1*255*255 = 65025
RET ;所以总共自减12+33915+65025 = 98952次 每次执行耗时为2us 所以总共耗时为98952*2 = 197904 us 约等于20万us = 0.2s = 200ms
END
汇编延时的子程序二:
DELAY50MS:
MOV 30H,#90
MOV 31H,#158
NEXT:
DJNZ 31H,#NEXT
DJNZ 30H,#NEXT
RET
在汇编里";"或"//"可以屏蔽该行的语句
SJMP的转移指令范围为256字节
AJMP的跳转范围为2K
注意:当所要跳转的范围比较长时用AJMP指令
时钟周期 和 指令周期
在12MHz(兆)的时钟一个周期的时间为1/12us(微秒)
在汇编中
0-1 = ? 结果是255 写一个小程序来验证一下
时间的换算单位:
1秒=1000毫秒(ms)
1毫秒=1/1,000秒(s)
1秒=1,000,000 微秒(μs)
1微秒=1/1,000,000秒(s)
1秒=1,000,000,000 纳秒(ns)
1纳秒=1/1,000,000,000秒(s)
1秒=1,000,000,000,000 皮秒(ps)
1皮秒=1/1,000,000,000,000秒(s)
1s=1000ms
1ms=1000us
1us=1000ns
1ns=1000ps
对晶振的理解:
单片机的晶振堪称为单片机的“心脏”,提供节拍的作用,即单片机工作一次,
它可能会振动好几次。其频率一般在11.0592MHz左右,即1秒中内单片机会振
动11.0592M次
三极管的作用:
1. 开关控制
2. 信号放大
3. 电平转换
74HC138简称为“三八译码器”
3-8即是单片机的IO口不够用了,将单片机的3个IO口转换为8个IO口,即3个输入控制了
8个输出,3个IO口形成8种不同的状态,从而控制相关灯或数码管的亮灭。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1