(很多大公司都有)(以美信为例) 第一步:输入公司网址 出来的网页是英文的,如果要将网页内容改成中文可点击右上角的简体中文 第二步:点击申请样品(画红线部分) (以时钟芯片DS12CR887为例)该如何申请指定想要的芯片
此页面往下翻阅 之后直接点击提交便可 其他公司方法相似
题1:尝试让第一个发光管闪烁(这就涉及到了时间延迟问题,可用while语句进行循环致使延时) (为防止出乱最好在程序外围加一个大循环while(1){}) (若要将程序停在某一行就可用while(1);)
#include<reg52.h> sbit p1_1=P1^0; unsigned int a; void main() { while(1) { a=50000; p1_1=0; while(a--); a=50000; p1_1=1; while(a--); } } 调节时间的时候需要将软件模拟时钟周期与单片机晶振周期相匹配,及为11.0592MHz(每个实验板各不相同) 查看时钟停留时间(如图所示)(改变a的值可以控制闪烁停留时长)延迟时间就是这样子微调出来的(此方法适用于大概的时间延迟,若要精确延迟需要使用晶振可精确到1微妙,此方法后续会讲) (500ms如图所示)
刚好延迟时间为10ms的程序
#include<reg52.h> #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit D1=P1^0; //void delay();//子函数的声明 void delay(uint z);//z可写可不写如有其他参数用逗号隔开 void main() { while(1) { D1=0; delay(10); D1=1; delay(10); } } /* void delay() { uint x,y; for(x=100;x>0;x--) for(y=2000;y>0;y--); }*/ void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=120;y>0;y--); }程序延迟时间如图所示:
方法二、可通过位运算,与和或的关系来计算哪个灯亮
蜂鸣器原理图如下(蜂鸣器内阻非常小几乎就是一小段线圈):
FM对应CPU的P2.3口:控制蜂鸣器响还是灭。b极给个低电平就响,高电平就不响;
sbit beep=P2^3;//控制蜂鸣器 beep=0; //打开蜂鸣器