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