9.11学习笔记

1:免费样品的申请 AD公司,飞思卡尔公司,美芯公司等等都有免费样品的申请,也有相关芯片的资料的介绍,

这里介绍常用的网址

美芯公司的网站http://china.maximintegrated.com/

AD公司的网站:http://www.analog.com/

TI公司的网站:www.ti.com

2:keil软件的调试

打开调试窗口:Debug ->start/stop Debug Session

观察函数值的窗口:View ->watch&call stack window

观察各个I/O口的输出高低情况:Peripheral->I/O port 3

关于单片机工作的基本时序

(1)振荡周期:也称为是时钟周期,是指单片机提供时钟脉冲的震荡源周期

(2)状态周期:每个状态周期为时钟周期的两倍,是振荡周期经过二分频后得到的(频率越高,周期越短,频率越低,周期越长)

(3)机器周期:一个机器周期包含六个状态周期S1到S6,也就是12个时钟周期,在一个机器周期内,CPU可以完成一个独立的操作 (4)指令周期,它是指CPU完成一条操作所需要的全部时间,每条指令执行时间都是由一个或几个机器周期组成,在MCS-51系统中,有单周期指令,双周期指令和四周期指令

4:软件模拟看软件执行的时间: 第一步:必须要把晶振的频率改了,改成对应板子上的晶振的

频率 第二步:进行软件调试,即可

5:延时函数的设计:for语句中的两个变量类型都为unsignednt型时,内层的for语句中的变量值恒定为110时,外层for语

句中变量为多少,这个for的嵌套语句就延时多少毫秒

延时函数模版:

void delayms(uint xms)



{



      uint i,j;

       for(i = xms;i>0;i--)  

            for(j=110;j>0;j--); 

} 

 

 6:循环函数的模版 包含的头文件为#include<intrins.h>

示例代码:

uchar aa;

aa = 0xfe;

while(1) 

       {  

        aa = _crol_(aa,1);//循环左移 

          P0 =aa; 

       }

 作业,驱动一个喇叭,使奇数次流水灯流转的时候喇叭不叫,偶数次喇叭叫

示例代码:

#include<reg52.h>

#include<intrins.h>

#define uint unsigned int

#define uchar unsigned char

void delayms(uint xms);

void delays(uint x);

sbit Feng = P2^3;//定义喇叭的控制引脚



void main()

{

	uchar aa,b=1;

	aa = 0xfe;



	while(1)

		{

		while(1)

		{

		P1 = aa;

		delayms(500);//延时500ms

		if(b==10)

			b=0;

		if(b%2!=0)//如果b为偶数,执行函数

			{

				delays(2);

				Feng = ~Feng;

			}





		aa = _crol_(aa,1);

		if(aa == 0xfe)//如果P0为0xfe跳出循环

			break;



		}

		b++;

	}



}



void delayms(uint xms)

{

	uint x,y;

	for(x = xms;x>0;x--)

		for(y = 110;y>0;y--);

}



void delays(uint x)

{

	while(x--)

	{

		delayms(3);//输出的波形为300HZ

		delayms(3);

	}

}

 

版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen

 

你可能感兴趣的:(学习笔记)