第二章 keil软件的使用以及流水灯的实现
2.3 while语句
- 在程序的最后加上“while(1);”这样的语句就可以让程序停止。
- 单片机是无法停止工作的,只要它有电,有晶振在起振,就不会停止工作,每过一个时间周期,它内部的程序指针就要加1,程序指针就指向下一个程序
- 完整的点亮第一个发光二极管的程序
#include<reg52.h>
void main()
{
P1=01fe;
while(1);
}
2.5 keil仿真以及延时语句的精确计算
#include <reg52.h>
#define uint unsigned int
sbit led1=P1^0;
uint i,j;
void main()
{
while(1)
{
led1=0;
for(i=1000;i>0;i--)
for(i=110;j>0;j--);
led1=1;
for(i=1000;i>0;j--)
for(j=110;j>0;j--);
}
}
-
如何模拟出延时语句是延长了多长时间呢?
回到keil编辑界面,打开工程设置对话框,在【Target】标签下的【Xtal(MHz):】后面将后面的默认值修改成实验板上面的晶振频率值 -
进行调试
①在这里有个I/O PORT的选项,可以查看端口的信息
②左下角可以查看变量的大小
③这里可以查看各个寄存器的状况和时间
- 知识点 单片机的几个周期介绍
- 时钟周期:也称震荡周期,定义为时钟频率的倒数,可以理解为单片机外接晶振的倒数,比如12MH真的晶振,它的时钟周期为1/12μs,它是单片机最基本的、最小的时间单位。对于同一种单片机,时钟频率越高,单片机的速度也就越快。
- 状态周期:它是时钟周期的两倍
- 机器周期:单片机的基本操作周期,在一个操作周期内,单片机完成一项基本操作,如取指令、存储器读/写等,它由12个时钟周期组成
- 指令周期:它是指CPU执行一条指令所需要的时间
- 在两端设置端口断点可以快速知道时间