基于51单片机电子时钟
1基于51单片机用LCD1602实现时分的显示
2。按键控制时分的调整
3。能实现整时报时的功能(蜂鸣器响)
4。闹钟模式
5。按键切换模式(模式一:时分显示,模式二:60秒倒计时)
一、设计思路:
主体:
通过外部中断0来控制mod值;mod0,1。2,3分别对应时钟模式,调整模式,闹钟设置模式,一分钟倒计时模式。
细节:
mod0
通过定时计数器,每一秒增加变量秒(s),每60秒,增加1分(min)并且s置0,每60min,增加1小时h,当h23,h0;进行一天循环
mod1
按键控制增加min,h和s制0
mod2
另外设置变量min1,h1,当minmin1,hh1时蜂鸣器响
mod3
设置变量daojishi60,通过定时计数器,每一秒daojishi减1,当daojishi0时,蜂鸣器响
另外:
1。设置外部中断2,关闭蜂鸣器
2。时间发送一次只能发送一个位
程序:
include
K1后K3加分钟,K4加时间,K2加秒,K1进入闹钟设置,K2退出
K2关闭闹钟
typedefunsignedintu16;对数据类型进行声明定义
typedefunsignedcharu8;
definedata8bP1
sbitK1P32;外部中断0
sbitK2P33;外部中断1
sbitK3P30;
sbitK4P31;
sbitBUZP24;蜂鸣器,0响
sbitRWP25;4脚,数据(1)or命令(0)
sbitRSP26;5脚,读(1)写(0)
sbitEP27;6脚,使能信号
u8codedat1〔〕{0X30,0X31,0X32,0X33,
0X34,0X35,0X36,0X37,
0X38,0X39};
voiddelay(u16i)延时函数
{
while(i);
}
voidopen012()打开中断0,1,定时器中断0
{
TMOD0X01;选择为定时器0模式,工作方式1
ET01;打开定时器0中断允许
EA1;打开总中断
TR01;打开定时器
EX01;打开外部中断0
IT01;边沿触发方式
EX11;打开外部中断1
IT11;边沿触发
}
voidwrm(u8dat)写入命令
{
delay(1000);
RS0;
RW0;
E0;
data8bdat;
E1;
delay(1000);
E0;
}
voidwrd(u8dat)写入数据
{
delay(1000);
RS1;
RW0;
E0;
data8bdat;
E1;
delay(1000);
E0;
}
voidzero()
{
wrm(0X38);八位数据,两行显示,57
wrm(0X0c);无光标,打开显示
wrm(0X06);光标右移,屏幕不移动
wrm(0X01);清屏
wrm(0X80);设置数据指针起点
}
u8fg0,sg0,bfg0,bsg0;
u16i0;
u8s0;
u8mod0;
chardingshi;
bitbell0;
bitzanting1;
voidfangsong()
{
wrd(dat1〔sg10〕);时十位
wrd(dat1〔sg10〕);时个位
wrd(0x3A);:
wrd(dat1〔fg10〕);分十位
wrd(dat1〔fg10〕);分个位
wrd(0x3A);:
wrd(dat1〔(s10)〕);秒十
wrd(dat1〔(s10)〕);秒个
}
voidfangsong1()
{
wrm(0X80);
wrd(dat1〔sg10〕);时十位
wrd(dat1〔sg10〕);时个位
wrd(0x3A);:
wrd(dat1〔fg10〕);分十位
wrd(dat1〔fg10〕);分个位
wrd(0x3A);:
wrd(dat1〔(s10)〕);秒十
wrd(dat1〔(s10)〕);秒个
}
voidchuli()
{
if(fg60)
{
sg;
fg0;
}
if(sg24)
{
sg0;
}
}
voidmain()
{
u8shijian;
open012();
zero();
chuli();
fangsong();
shijian100;
while(1)
{
while(mod0)
{
EX11;打开外部中断1
if(s60)
{
fg;60秒转化为1分钟
s0;
}
chuli();
if((fg0)(shijian!sg))
{
BUZ0;
shijiansg;
}
fangsong1();
if((BUZ0)(bell0))
{
delay(1000);
BUZ1;
}
if((fgbfg)(sgbsg)(bell1))
BUZ0;
elseBUZ1;
}
while(mod1)
{
EX10;关闭外部中断1
zero();
fangsong();
if(K30)
{
delay(1000);
if(K30)
fg;
}
if(K40)
{
delay(1000);
if(K40)
sg;
}
if(K20)
{
delay(1000);
if(K20)
s0;
}
if(fg59)
{
fg0;
}
if(sg23)
{
sg0;
}
if(s59)
{
s0;
}
}
while(mod2)设置闹钟
{
if(bfg60)
{
bsg;
bsg0;
}
if(bsg24)
{
bsg0;
}
zero();
wrd(0x20);
wrd(0x20);
wrd(0x20);
wrd(dat1〔(bsg10)〕);时十位
wrd(dat1〔(bsg10)〕);时个位
wrd(0x3A);:
wrd(dat1〔(bfg10)〕);分十位
wrd(dat1〔(bfg10)〕);分个位
if(K30)
{
delay(1000);
if(K30)
bfg;
}
if(K40)
{
delay(1000);
if(K40)
bsg;
}
bell1;
zero();
}
while(mod3)
{
while(zanting)
{
dingshi60;
EX11;打开外部中断1
wrm(0X80);
wrd(dat1〔(dingshi10)〕);时十位
wrd(dat1〔(dingshi10)〕);时个位
}
wrm(0X80);
wrd(dat1〔(dingshi10)〕);时十位
wrd(dat1〔(dingshi10)〕);时个位
while(dingshi0)
{
wrm(0X80);
wrd(dat1〔0〕);时十位
wrd(dat1〔0〕);时个位
BUZ0;
}
}
}
}
voidtime0()interrupt1
{
TH00XFC;给定时器赋初值,定时1ms
TL00X18;
i;
if(i1000)ms转化为s
{
i0;
s;
dingshi;
}
}
voidkey1()interrupt0外部中断0,调整时间
{
delay(1000);
if(K10)
{
mod;
while(!K1);
}
if(mod3)
{
mod0;
}
zero();
}
voidnaozhong()interrupt2开关闹钟
{
if(K20)
{
delay(1000);消抖
if(K20)
{
bell0;
BUZ1;
zantingzanting;
}关闭蜂鸣器
while(!K2);确认按键松开
}
}
二、收获
1。更熟练掌握了定时器中断和外部中断的使用
可以通过打开和关闭外部中断使同一个按键实现不同的功能
2。了解到了一点寄存器操作
3。中断配置小结
外部中断
定时器中断
串口通信
4。更熟练使用proteus
制作了一个小型软件开发版
5。学会了如何学习一个新元器件(LCD1602)
1。看说明书,重点是看时序图,真值表等
2。按照时序图写程序
3。一二都不成立时,查找相关资料
6。下载原理
单片机的烧写原理:
单片机烧写,又称为单片机程序下载、烧录等,本质上是单片机和PC机按照芯片厂家规定的编程协议,通过芯片厂家规定的接口,把已编译好的程序传输到单片机,单片机把数据存储到自身存储器中。
理解这个原理需要知道几个知识点:
单片机内部是有程序的,是出厂时固化在硬件中,用户无法修改的(这也会被认为它内部没有程序),这些程序可以调用各种通信接口、内部存储器等;
可以下载的通信接口:JTAG,SPI,UART,usb等;(还有很多可以扩展485、以太网等)
编程协议:一般大厂都会公开的,在芯片的专用技术手册中会有;
存储器:有很多种,掩膜,EPROM,EEROM,flash等寿命不一样,掩膜只能一次,而且要工厂做,flash擦写次数10000;
可以这样比喻性的理解:单片机就是电脑的主板,我们写的程序就是操作系统,主板里面装入引导操作系统的基本程序,下载程序就是给电脑装系统!
7。其他
1。理解了现在电子表的操作原理
2。学会了借助现成品(电子表)作参考,写程序
3。懂得了与人交流的重要性(受王同学的启发,完善了原有程序)
三。后期计划
1、继续32的学习
2、练习焊功
3、继续51其他外设的学习
4、按兴趣学习电路、模电、数电、DXP等相关知识
找元器件现货上唯样商城
人间一趟,看看不一样的烟火作者林之眉有人说市井长巷,聚拢来是烟火,摊开来是人间。中年以后,不再伤春悲秋,独处久了,就喜欢了四季的烟火气,拥挤的人群,热烈的阳光,孩子们的喧闹。午后的秋风微凉,骑车去找那家老店
花开中国生机勃发央视网消息(新闻联播)春回大地,处处生机盎然。让我们一起感受春天的气息,领略花开中国。二月百花枝上绽。广西河池市东兰县的油菜花迎来盛放期,金黄色的花海里,人们驻足赏花,感受春天的勃
中超外援综合值排名,武汉三镇山东泰山前十各占3席成大赢家虽然足协对外援进行了限薪,大牌外援纷纷离开,但决定一支球队走向的,最终还是要看外援。2022赛季中超外援综合值排名,武汉三镇和山东泰山前十各占3席成大赢家。排在第一的山东泰山的莫伊
中国男篮集训队员哈腰扶腿,周琦胳膊变粗壮,壮到甚至浮现小肚腩近日,中国男篮集训队在主帅乔尔杰维奇的带领下,在上海崇明体育训练基地篮球馆举办了公开训练课活动,周琦郭艾伦胡金秋曾凡博张镇麟等一众球星悉数亮相,表现不错,不少队员都哈腰扶腿,看来训
中国男篮上海集训新主帅新球员带来新体验中新网上海2月12日电(记者缪璐)中国男篮和中国三人篮球国家男队正在上海崇明体育训练基地篮球馆展开集训,为备战2023年男篮世界杯亚大区预选赛第六窗口期的比赛,新球员新主帅也给了中
普陀这座剧院的征名获奖结果公布啦!来看看你得奖了没真如上海城市副中心在建剧院征名活动(戳链接查看征名启事)近日落下帷幕。自2022年12月8日起,历时三周,活动主办方上海市普陀区文化和旅游局收到来自全国各地热心群众的踊跃投稿,共计
自驾重庆到上海路遇16起事故,多为120降至80提醒距离仅400米导致前方400米有移动测速拍照,限速80,你已超速。导航里传来的提醒让我不得不跟着前车一起紧急刹车,我妈在后座哎哟一声,显然是因为刹车太急的关系撞到了前方座椅。我刚把车速降下来,就听旁
狂飙在中国第一侨乡狂飙结束的第一周,想他。狂飙片方供图反复品味启强人生,小侨发现京海市的街道景色不乏洋气质。读孙子兵法,品启强人生。片方供图买电视的老高骑着电动摩托穿梭在骑楼廊下,失去师父的安警官与
韩国取消对中国游客的签证限制韩国表示将取消自今年年初以来对来自中国的短期旅客的入境限制,因为官方认为该国的冠状病毒局势正在稳定。1月初,韩国停止在其驻中国领事馆发放大多数短期签证,理由是担心病毒在中国激增,并
中国首善陈光标把现金堆成山,高调捐出20亿,他为何消失了在2022年的胡润慈善榜中,京东创始人刘强东排行第一,总计捐款额高达149亿元。这是刘强东首次摘得中国首善之称,除他之外,玻璃大王曹德旺和地产大亨许家印等知名企业家都曾荣登榜首。这
3月上海升级对以太坊市场有何影响?取消质押ETH的取款限制加密资产以太坊(ETH)的下一次升级尚海预计将在23月3日左右实施。随着质押ETH的提取,市场参与者对ETH价格的影响越来越感兴趣。1月11日,开发网络(d