单片机实现教学上下课的自动打玲

系列文章目录

使用单片机实现教学上下课的自动打玲


前言

这里需要基本的c语言基础,单片机应用知识,熟练的使用仿真软件如keil和proteus


一、proteus是什么?

proteus是一高效的电路仿真软件,可以有效解决利用仿真就可以完成一些设计。

二、使用步骤

1.设计要求

以学校白天上课、下课及午休时间为依据,设计51单片机为核心的自动打铃器。假定学校作息时间如下所示:
第1节课 8:00——8:45
第2节课 8:55——9:40
第3节课 10:10——10:55
第4节课 11:05——11:50
第5节课 14:00——14:40
第6节课 14:55——15:40
第7节课 16:10——16:55
第8节课 17:05——17:50
根据此作息时间表,每到上课或下课时控制电铃接通,接通1分钟后电铃断开。结合万年历,可自动排除节假日和星期六星期日打铃操作,亦可手工按键设置打铃时间,修正节假日作息时间。
设计内容及要求:用Proteus仿真软件搭建仿真硬件电路图,用keil编写验证软件,并完成综合调试。

2.c文件代码

// #include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit SPK=P3^7;//喇叭
bit bell_time=0;//打铃的时间标志
uchar temp=0;//记录电子中的技术次数
uint time_cout=0;//记录大龄时间的计数次数
char miao,fen,shi;//记录时间秒,分,时
uchar miaos,fens,shis;
uchar miaou,fenu,shiu;
uchar flag1,flag2,flag3,t;	  
uint code disl[]={
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
uint code dis[]={
   0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar bell_shi[]={
   8,8,8,9,10,10,11,11,14,14,14,15,16,16,17,17,0};
uchar bell_fen[]={
   0,45,55,40,10,55,5,50,0,40,55,40,10,55,5,50,0};
char lr;
uchar flag=0;
uchar lr1=0;
uchar flag4=1;
uchar ff=0;
uchar key_code;
char chance,t1;
uchar setflag=0;
uchar updataflag=0;
uchar kk=0;

void delay(uint tt)
{
   
uchar i,j;
for(i=0;i<tt;i++)
for(j=0;j<30;j++);
}
void show()
{
   
if(lr>=1){
   lr=0;flag=1;}
else{
   
    if(flag==1&&flag4==1)lr=1;
	if(flag==1&&flag4==1&&ff==1)lr=1;
	}
P0=dis[0];
P2=disl[miao%10]
  • 3
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值