|
1. 实验任务
用P1.0 输出1KHz 和500Hz 的音频信号驱动扬声器,作报警信号,要求1KHz
信号响100ms,500Hz 信号响200ms,交替进行,P1.7 接一开关进行控制,当
开关合上响报警信号,当开关断开告警信号停止,编出程序。
信号产生的方法500Hz 信号周期为2ms,信号电平为每1ms 变反1 次,1KHz 的信号周期为1ms,信号电平每500us 变反1 次;
C 语言源程序
#include
#include
bit flag;
unsigned char count;
void dely500(void)
{
unsigned char i;
for(i=250;i>0;i--)
{ _nop_(); }}
//====================
void main(void)
{ while(1)
{
if(P1_7==0)
{
for(count=200;count>0;count--) // 这个语句,和下边那个语句有什么区别吗?
{
P1_0=~P1_0;
dely500();
}
for(count=200;count>0;count--) // 我看这俩个是一样样的,为什么作者要编写连个一样的呢?希望懂的大虾给讲解讲解。
{
P1_0=~P1_0;
dely500();
dely500();
}
}
}
本人新手,正在学习,这段程序是教程里的,手头没有学习板,也没有单片机,只是用仿真软件进行仿真的,但是,仿真的时候没有通过,不知道是什么原因。
同事,那两个for语句也没有看懂是什么意思,看它们是一样的,有必要这么编写吗?
[ 本帖最后由 cawyai23 于 2013-4-10 22:27 编辑 ]
|
|