手工制作闹钟在纸板上画个圆,方形也可。然后,用剪刀把圆形剪下来,找到圆的中心点画出来。接下来把表面均匀的分成12份,并写上数字。然后再用纸板剪出两个时针,和分针,最后用图钉把时针和分针固定在表盘上即可。
闹钟是带有闹时装置的钟,既能指示时间,又能按人们预定的时刻发出音响信号或其他信号。闹钟的机芯结构主要有机械式和石英电子式两大类。
其他如晶体管摆轮游丝式、音叉式等类型已很少用,通常置于台子上使用的称台式闹钟,主要为旅行使用的称旅行闹钟。日用机械闹钟的走时日误差一般在120秒/日以内,石英电子闹钟的走时日误差一般在02秒/日以内。
闹钟有很多种类,机械的、石英的,自从它被人利用钟摆的原理发明以来已经成为人们生活中不能缺少的物品。中国古代有日晷、水钟、火钟、铜壶滴漏等,这只能算是古人的计时器。没有嘀嗒嗒的钟表声,都不能称作钟表。
1090年,北宋宰相苏颂主持建造了一台水运仪象台,能报时打钟,它的结构已近似于钟表的结构,可称为钟表的鼻祖。每天仅有一秒的误差。它有擒纵器,正是擒纵器工作时能发出嘀嗒嘀嗒的声音。这就是钟表与计时器的区别。国际钟表界都把擒纵器视为钟表的心脏。
//
//实现功能:本程序实现在P1口模拟一个流水灯程序
//
#include <reg51h>
#define p_out P1 //宏定义输出的i/o口为P1
//时间延迟函数
//描 述:用指令实现延时一段时间
//入口参数:int i,为时间延迟参数
//
void delay_time(int i)
{
while(i)
i--;
}
//主函数
//描 述:实现在P1口模拟一个流水灯程序
//
void main(void)
{unsigned char i=0; //初始化一个局部变量为0
p_out=0xff; //初始化将要输出的i/o口,输出高电平,熄灭所有灯
while(1)
{
for(i=0;i<8;i++)
{
p_out=~(1<<i);//点亮一个灯,
delay_time(50000); //延迟一段时间
p_out=0xff;//熄灭所有灯
}
}
}
//
//
//实现功能:把键盘输入的键盘码,用led显示出来
//
#include <reg51h>
#define p_key P1
#define led_date P0
#define choose_p P2
unsigned char change(unsigned char i);
unsigned int display_num=0;
//时间延迟函数
//描 述:用指令实现延时一段时间
//入口参数:int i,为时间延迟参数
//
void delay_time(int i)
{
while(i)
i--;
}
//按键扫描函数
//描 述:对44键盘进行扫描,程序只适合44键盘使用,
// 键盘占用一组完整的i/o口,在使用这个程序前
// 要宏定义p_key为用户实际连接键盘的i/o口
// #define p_key Pn;//(n=0、1、2、3)
//返回参数:若有检测到按键就返回按键的编号,否则返回0xff
//
unsigned char read_key(void)
{
unsigned char j,key,key_buf=0;
p_key=0xff;
//检测是否有建按下//
p_key=0xf0;
key=p_key;
if(key==0xf0)
{
return(0xff);//没按键按下,返回0xff
}
//有按下,延时去抖//
delay_time(5000);
//确认是否有建按下//
p_key=0xf0;
key=p_key;
if(key==0xf0)
{
return(0xff);//没按键按下,返回0xff
}
//真的有按键按下,扫描是哪一行有按键按下//
for(j=0;j<4;j++)
{key=p_key&(0x10<<j);
if (key)
{
key=p_key;
}
else
{
key_buf=j4;
p_key=~(0x10<<j);//第j行的按键按下了,第j行输出0,其他的i/o口输出1
//扫描是第j行的哪个按键按下//
for(j=0;j<4;j++)
{
key=p_key&(1<<j);
if (key)
{
key=p_key;
}
else
{
key_buf+=j;
return(key_buf);//扫描到按键的确定位置,返回按键的编号
}
}
}
}
//没扫描到按键,//
return(0xff);
}
//七段数码管显示函数
//描 述:对四位的扫描型七段数码管进行扫描显示,在使用
// 前要定义一个全局变量display_num
// unsigned int display_num;
//入口参数:unsigned int num,要显示的数字(0-9999)
//
void display(unsigned int num)
{
if(num<10000)
{
display_num=num;
}
choose_p|=3;//先关显示
led_date=change(display_num/1000);//得到千位的数字,并转换成七段码型
choose_p&=0xfe;//选通千位
delay_time(50);//延时一段时间
choose_p|=1;//关显示
display_num=display_num%1000;
led_date=change(display_num/100);//得到百位的数字,并转换成七段码型
choose_p&=0xfd;//选通百位
delay_time(50);//延时一段时间
choose_p|=2;//关显示
display_num=display_num%100;
led_date=change(display_num/10);//得到十位的数字,并转换成七段码型
choose_p&=0xfb;//选通十位
delay_time(50);//延时一段时间
choose_p|=4;//关显示
led_date=change(display_num%10);//得到个位的数字,并转换成七段码型
choose_p&=0xf7;//选通十位
delay_time(50);//延时一段时间
choose_p|=8;//关显示
}
//数字-码型转换函数
//描 述:把数字转换成七段码型,此程序仅配合共阳的七
// 段数码管使用
//入口参数:unsigned char i,要转换的数字(0-9),
//返回参数:转换后的七段码型,0xff表示转换失败
//
unsigned char change(unsigned char i)
{
switch(i)
{
case 0:
return(0xc0);//0的七段码型
case 1:
return(0xf9);//1的七段码型
case 2:
return(0xa4);//2的七段码型
case 3:
return(0xb0);//3的七段码型
case 4:
return(0x99);//4的七段码型
case 5:
return(0x92);//5的七段码型
case 6:
return(0x82);//6的七段码型
case 7:
return(0xf8);//7的七段码型
case 8:
return(0x80);//8的七段码型
case 9:
return(0x90);//9的七段码型
default:
return(0xff);//转换失败
}
}
//主函数
//描 述:把键盘输入的键盘码,用led显示出来
//
int main(void)
{unsigned char i;
while(1)
{
i=read_key();//扫描键盘
if(i<16)
display((unsigned int)i);//有效的键盘值
else
display(0xffff);//数据无效
}
}
//两个程序加起来就可以完成你要求的功能,有说明,你认真看一下吧。
'在界面添加一个时间控件,把代码复制进去,运行就可以达到目的,在播放铃声处添加你想播放铃声的语句即可
Dim Ttime_S As Integer
Public Ttime_A As Integer
Private Sub Form_Load()
Ttime_A = 60 60 '初始为1个小时
End Sub
Private Sub Timer1_Timer()
If MeTimer1Enabled = True Then Ttime_S = Ttime_S + 1
If Ttime_S = Ttime_A Then
'播放铃声
If Ttime_A = 60 60 Then '一小时
Ttime_A = 15 60
ElseIf Ttime_A = 15 60 Then '15分钟
Ttime_A = 60 60
End If
Ttime_S = 0
End If
End Sub
以上就是关于手工闹钟的制作方法全部的内容,包括:手工闹钟的制作方法、用C语言写51单片机闹钟程序、用VB编写一个闹钟程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)