缺少满30秒时蜂鸣器发声函数和按键2清空秒数和关闭蜂鸣器的函数,能请你完善一下吗
追答贴部分,字数超出了,还有数组大小我开错了DisplayCode[8]改成DisplayCode[10]
#include
sbit Button1 = P1^0;
sbit Button2 = P1^1;
sbit Beep = P1^2;
void KeyboardScan()
{
if(Button1 == 0)
{
//等待按键1松开
while(Button1 == 0);
//松开后执行
second++;
}
if(Button2 == 0)
{
//等待按键2松开
while(Button2 == 0);
//松开后执行
Second = 0;
Minute = 0;
}
}
void Calculate()
{
if(Second >= 30)
{
//蜂鸣器报警
Beep = 0;
}
if(Second >= 60)
{
Second = 0;
Minute++;
}
//秒个位
DisplayData[0] = Second % 10;
//秒十位
DisplayData[1] = Second / 10;
//分个位
DisplayData[2] = Minute % 10;
//分十位
DisplayData[3] = Minute / 10;
}
这里是假设你蜂鸣器外部电路为低电平有效
很不幸呢,出现3个警告消除不了,数码管连亮都不亮
追答有按照我的接口么,还是你电路没有按照我上述的。这种问题,应该是你带着图来问我就可以很准确的给你写出来,要是你软件硬件两头都不大清楚,我也是描述不太清晰的
追问那我直接明白告诉你吧,原题目是:
设计一用T0记数一生产流水线,每生产20个工件(中断方式),发出一包装命令,包装成一箱,并记录其箱数,光源用按键-1代替,数码管显示,到了记数值,蜂鸣器叫,灯亮,按键-2后继续。
其中数码管是4位数共阴数码管,软件是keil uvison4,用52的单片机
我也写了一个,只不过用一个按键调用两个函数时有警告,没法排除,功能实现不了
阴数码管,肯定贴我的不行了,我写给你的是共阳,楼主,你真的把图贴出来就好了,按照你的硬件写给你
追问你说的图应该是这些吧
哎,比如J8,三极管控制蜂鸣器,接到最小系统的P几几口,原理图就可以了,实物图就不用了,像最下边这个数码管断码用驱动芯片在加大电流,驱动芯片的数据输入口则是接在J12,一样看不见J12接到最小系统的哪个脚上了。