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