1、直流电压的测量,如电池、随身听电源等。首先将黑表笔插进“com”孔,红表笔插进“V
Ω
”。把旋钮选到比估计值大的量程(注意:表盘上的数值均为最大量程,“V-”表示直流电压档,“V~”表示交流电压档,“A”是电流档),接着把表笔接电源或电池两端;保持接触稳定。数值可以直接从显示屏上读取,若显示为“1.”,则表明量程太小,那么就要加大量程后再测量。如果在数值左边出现“-”,则表明表笔极性与实际电源极性相反,此时红表笔接的是负极。
2、交流电压的测量。表笔插孔与直流电压的测量一样,不过应该将旋钮打到交流档“V~”处所需的量程即可。交流电压无正负之分,测量方法跟前面相同。无论测交流还是直流电压,都要注意人身安全,不要随便用手触摸表笔的金属部分。
看到你的问题,感觉很好玩,就试着做了一个程序
不过你的问题中要求3秒,时间太长了,不是很理想
我设计的是,8个LED,一个按键,按键的间隔不超过半秒即可,半秒后进行处理
每次按下按键,都重新开始计时,不论按几次按键,经过硬件实测
半秒的时间刚刚好,基本上没有空等待的时间,就是按完按键后,等待程序输出效果的时间
按键以及LED的端口你可以随意修改,如果感觉不错,记得采纳哦!
/***************************************************************************/
#include <reg51.h> //51单片机通用头文件
sbit k=P3^7//定义按键
int t,n,s,fe=0
/***************************************************************************/
void YS(int hs){int hkfor(hs>0hs--){for(hk=200hk>0hk--)}}//延时函数
/***************************************************************************/
void main(void)//主函数
{
TMOD=0x01EA=1ET0=1//定时器初始化
TH0=(65536-921)/256TL0=(65536-921)%256//定时器初值
while(1)
{
if(k==0)//如果按键被按下
{
YS(10)//延时去抖动
if(k==0)//如果是有效按键
{
TR0=1//启动定时器,开始计时
n=0//每次按键都清空定时计数
t++//按键值累加一次
while(!k)//等待按键松开
}
}
if(fe==1)//如果没按键输入
{
switch(t)//则对已有的按键值进行处理
{
case 1:P2=0xfebreakcase 2:P2=0xfdbreak
case 3:P2=0xfbbreakcase 4:P2=0xf7break
case 5:P2=0xefbreakcase 6:P2=0xdfbreak
case 7:P2=0xbfbreakcase 8:P2=0x7fbreak
default:P2=0xffbreak//如果不在范围内,则关闭所有LED
}
YS(500)fe=0t=0P2=0xff//延时点亮一会,并清空按键计数值和设置标识符
}
}
}
/***************************************************************************/
void int1() interrupt 1 //定时器中断
{
TH0=(65536-1000)/256TL0=(65536-1000)%256n++
if(n>500){TR0=0n=0fe=1}//如果达到指定时间,则关闭定时器,并设置标识符
}
/***************************************************************************/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)