完成的任务: 在**软件上实现交通灯的效果。
讲解的知识点:
1、单片机工作原理。
用户引脚、系统引脚、高低电平输出原理、程序**原理)
用户引脚 32个用户引脚就是在程序的控制下可以输出高低电平或者输入高低电平。
系统引脚:单片机正常工作必须要引脚晶振电路电源电路等等。
单片机数字芯片
人:数字芯片植物人。
单片机正常人(是可以进行程序控制的数字芯片 ,程序控制思想。)
四组用户引脚 p0 p1 p2 p3 i/o口输入输出高低电平。
每个单片机引脚的功能都是唯一的,,并且每个引脚都有一个指定的序号(1~40) 51单片机有40个引脚。。。
用户引脚四组 ,每组 8个。。。
用户引脚 32个
系统引脚 8个。
高低电平 是相对于电源电压。。。是两种电压信号。。。
比如:电源电压是5v
高电平 5v的电压信号程序命令或则数字1
低电平 0v的电压信号命令或则数字0
2、程序的功能。
思想的作用、程序的输出、输入高低电平、led电路分析、)
高低电平的作用,,,单片机如何将程序和电路联系起来呢?
比如在程序的控制下控制一个led亮或则熄灭。单片机输出高低电平的用途。
led特性单向导电。。。正负极功率 2v/15ma
按键电路分析。
开关两种状态。
3、单个输出控制。
clr setb 两个程序交替**实现两个led交替亮)
第一个命令:::让p2.0引脚输出一个低电平
clr 控制单个引脚输出低电平。
格式:clr p2.0 ;控制p2.0引脚输出低电平 clr p3.7
汇编语言的后缀名 .asm
c语言的后缀名 .c
写信格式。汇编有自己的格式。
开头(程序所在的位置)
执行语句。结束。
org 00h
loop:clr p2.0
jmp loop
end存储器一个单元存储一个字节的数据。。。字节。。。8个位组成 8个0或则1组成的一个数据。。。
51单片机内部有1k的flash 1k 1024个字节 400h
功能:无条件跳转到相应的位置 jmp
格式 jmp 地址标号。
第二个命令:::让p3.0引脚输出一个高电平。
setb 控制一个引脚输出高电平执行时间1us
格式 setb p3.0
红灯亮黄灯熄灭
org 00h
loop: clr p2.0 ;执行一次的时间是1us
setb p3.0 ;执行一次的时间是1us
jmp loop
end红灯灭黄灯亮。
作者: 杨荣国。
日期: 2010-9-26
功能: 控制p3.0的黄灯亮,控制p2.0的红灯熄灭。
版本: v1.0
org 00h
loop: clr p3.0 ;执行一次的时间是1us
setb p2.0 ;执行一次的时间是1us
jmp loop
end 4、多个输出控制。
mov 两个程序交替**实现8个led交替亮)
单片机两个数据单位 位:字节:
计算机最小的存储单位为位,最基本的存储单位为字节,并且一个字节有8个位组成。位表示为二进制数据。
十进制数据: 27
二进制数据 00011011b
十六进制进制数据 1bh
51单片机是8位单片机。。。**r 飞思卡尔比赛的 16位 arm 32位。
每个数据都有8个二进制位组成。
p2.7 p2.6 p2.5 p2.4 p2.3 p2.2 p2.1 p2.0
p2端口。第三个命令:复制一个字节的数据到另一个地方 mov
mov p2,161
10100001b===161 a1h
p2.0 p2.5 p2.7
p2.7 p2.6 p2.5 p2.4 p2.3 p2.2 p2.1 p2.0
1 0 1 0 0 0 0 1 b
5、延时的重要性-控制闪烁。
延时原理分析不同的cpu运行速度不同每个程序有时间规定单周期双周期主频(实际电路系统引脚晶振电路12m晶振 1us 2us) 多个语句实现1ms)
clr p2.0 执行一次大概为1us
cpu的频率 。。2ghz 3ghz 主频超频。
我们关心的是电脑的运行速度。。。运行软件。。。qq….是程序组成。。。
汇编程序。。。51单片机在12mhz的频率。。。1ghz==1024mhz)
单周期指令运行一次时间为 1us 双周期指令运行一次时间为2us….
org mov clr setb jmp 都属于单周期指令。
clr p2.0 执行一次时间为1us
51单片机频率是由外部晶振决定。。。频率范围是 1m~33m
6m 频率 clr p2.0 2us 频率是24m 时间是 0.5us
人的眼睛 16ms以内的变化时识别不出来。。正常情况。。。
clr p2.0 执行一次是 1us ….
执行1000次就是1ms 执行1000 000 是不是1s
1ms 延时。。。
setb p3.0 执行一次是1us 执行1000次。。。
clr p2.0 ;红灯亮。
setb p3.0
setb p3.0
setb p3.0
setb p3.0
etb p3.0
setb p2.0 ;红灯熄灭。
5000米长跑足球场 。。一圈的长度是400米跑 12圈半。。。
setb p3.0
第四条命令: 控制循环次数 mov djnz
格式:mov r0,#
loop: setb p3.0
djnz r0,loop
r0 是一个八位的寄存器 (存放数据的空间)
djnz 有条件判断循环。 双周期指令 2us
先将r0的值减1。。并判断r0的值是否为0 。如果r0的值不为0则跳转到loop 如果r0的值为0 ,则执行下一个语句。
mov r0,#100 ;1us
loop: setb p3.0 ;1us
djnz r0,loop ;2us
是不是延时了100us 答案是错的。。。
1+(1+2)*r0===1+3*100==301us
问题。。。如何修改该语句段实现 1000us的延时。。。
是不是 mov r0,#1000 答案是错的。。。为什么呢???
r0是八位的寄存器。。。
里面只能放0或则1 只有8个。。。
最小。0000 0000 二进制 0
最大。1111 1111 二进制 255十进制。
r0最大只能放255的值。。。
mov r0,#100 ;1us
loop: setb p3.0 ;1us
djnz r0,loop ;2us
策略:::多层循环。。。
单片机汇编语言。。。32个默认有 r0 r1…..r7 8个
mov r1,#4 1us
loop1:
mov r0,#100 ;1us
loop: setb p3.0 ;1us
djnz r0,loop ;2us
djnz r1,loop1 2us
1+(1+(1+2)*r0+2)*r1 1+303*4= 1213us
子程序 。。将重复调用的程序段用子程序包装并以ret作为子程序的结束标志 end。。通过调用指令可以随机调用。。。call 子程序调用。
call 子程序名。
mov r0,#200 ;1us
dv1: mov r1,#248 ;1us
dv2: djnz r1,dv2 ;2us
djnz r0,dv1 ;2us
1+(1+2*r1+2)*r0===1+(499)*200== 10 00 00 100ms 0.1s
6、循环的重要性( 操场1000米与5000米的道理裁判的作用计数寄存器控制寄存器的数字减少汇编命令 r0 djnz 跳转的概念 )
7、单片机是8位机(r0是8位的r0的最大值所以要实现1ms的延时需要双层循环结构)
8、子程序的概念(让程序更加节俭、子程序重复使用、call 调用)
9、控制一个led循环闪烁。
1 1 2第一课
1.1.2 集合间的基本关系。课时目标 1.理解集合之间包含与相等的含义。2.能识别给定集合的子集 真子集,并能判断给定集合间的关系。3.在具体情境中,了解空集的含义 1 子集的概念。一般地,对于两个集合a b,如果集合a中 元素都是集合b中的元素,我们就说这两个集合有包含关系,称集合a为集合b的子...
开学第一课 1
开学了,第一节课,上些什么呢?我想了想,还是跟孩子们聊聊学习的习惯吧。于是,从语文的听说读写的基本功入手,聊了四个话题,简单记录下来,算是自己的工作日记吧!听听君一席话,胜读十年书。认真听讲,动笔记重点难点之处,自己疑惑之处 用心听别人发言,捕捉信息,取长补短。利用各种方式听,拓展听的渠道,获取更多...
开学第一课 1
观 开学第一课 有感。跑出一片天。黄壁庄学校八2班刘佳然指导教师 张文霞。天空随着时间的流逝,蒙上了一层月色,由于快要开学的缘故,妈妈很早就让我去睡觉了。我躺在床上,久久不能入睡,回想在学校的时光,和同学在跑场上飞奔,在校园中赛跑,在做游戏时东跑西跑 想着想着,我带着甜甜的笑睡着了。正月十七,这一天...