历史上的今天
今天是:2025年01月04日(星期六)
2021年01月04日 | 单片机可调数字钟闹钟整点报时功能
2021-01-04 来源:51hei
待选题目如下:
1、数字钟 要求:24小时制时间显示,可随时进行时间校对调整,整点报时及闹钟功能。

单片机源程序如下:
#include #include //****************************宏定义******************************** typedef unsigned char uchar; typedef unsigned int uint; //****************************位声明******************************** sbit key1=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; sbit beep=P3^0; //************************数码管显示的数值************************** uchar code table[]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x40,0x00 }; //****************************函数声明****************************** void jia(); void jian(); //********************数组定义,数组内含有8个数值****************** uchar table1[8],table2[8],table3[8],table4[8]; //**************************时间显示初始值************************** uchar shi=12,fen=0,miao=0; //**************************定义全局变量**************************** uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3; uchar shi4,fen4,miao4; uchar flag, flag1, wss, cnt, cnt1, alm1, alm2, alm3; // 1秒 等时 位闪 次数 校时 闹1 闹2 闹3 uint flag2; // 蜂鸣 //*********************延时函数,用于动态扫描数码管***************** void delay(uchar i) { uchar x,y; for(x=i;x>0;x--) for(y=120;y>0;y--); } //*******************************初始化函数************************* void init() { TMOD=0x01; //工作方式1 TH0=0x3c; //定时时间为:50ms (65536-50000)/256 TL0=0x0b0; //(65536-50000)%256 EA=1; //开总中断 ET0=1; //打开定时器 TR0=1; //启动定时器 beep=0; } //********************显示子函数,用于显示时间数值***************** void display() { uchar i,j; if(cnt!=10||wss==0) { table1[0]=miao%10; //分离秒的个位与十位 table1[1]=miao/10; } else table1[0]=table1[1]=11; if(cnt!=11||wss==0) { table1[3]=fen%10; //分离分的个位与十位 table1[4]=fen/10; } else table1[3]=table1[4]=11; if(cnt!=12||wss==0) { table1[6]=shi%10; //分离时的个位与十位 table1[7]=shi/10; } else table1[6]=table1[7]=11; table1[2]=table1[5]=10; j=0xfb; for(i=0;i<=7;i++) //从秒到时的扫描 { P2=j; P0=table[table1[i]]; //显示数值 delay(10); j=_cror_(j,1); //循环右移 } } //*******************显示子函数,用于显示定时1时间***************** void display1() { uchar i,j; if(alm1==0) { if(cnt!=1||wss==0) { table2[0]=miao1%10; //以下含义同上 table2[1]=miao1/10; } else table2[0]=table2[1]=11; if(cnt!=2||wss==0) { table2[3]=fen1%10; table2[4]=fen1/10; } else table2[3]=table2[4]=11; if(cnt!=3||wss==0) { table2[6]=shi1%10; table2[7]=shi1/10; } else table2[6]=table2[7]=11; } else table2[0]=table2[1]=table2[3]=table2[4]=table2[6]=table2[7]=10; table2[2]=table2[5]=10; j=0xfb; for(i=0;i<=7;i++) { P2=j; P0=table[table2[i]]; delay(10); j=_cror_(j,1); } } //********************显示子函数,用于显示定时2时间****************** void display2() { uchar i,j; if(alm2==0) { if(cnt!=4||wss==0) { table3[0]=miao2%10; //以下含义同上 table3[1]=miao2/10; } else table3[0]=table3[1]=11; if(cnt!=5||wss==0) { table3[3]=fen2%10; table3[4]=fen2/10; } else table3[3]=table3[4]=11; if(cnt!=6||wss==0) { table3[6]=shi2%10; table3[7]=shi2/10; } else table3[6]=table3[7]=11; } else table3[0]=table3[1]=table3[3]=table3[4]=table3[6]=table3[7]=10; table3[2]=table3[5]=10; j=0xfb; for(i=0;i<=7;i++) { P2=j; P0=table[table3[i]]; delay(10);
史海拾趣
|
第一讲:开发板和软件的操作使用 1、 介绍配件。 2、 安装软件(ICC AVR 和AVR STUDIO)及其使用,包括新建工程、程序下载,仿真调试;整板测试;板上资源。 3、 着重介绍一下USB接口的仿真器。 第二讲:AVR单片机的概述和C语言的基础知识 ...… 查看全部问答> |
|
现场总线是一种开放式、 数字化、多点通信的控制系统局域网络, 是当今自动化领域中最具有应用前景的技术之一。CAN总线是现场总线中的应用热点,CAN总线支持分布式控制和适时控制的串行通信网络。 由于CAN总线具有通信速率高、开放性好、报文短 ...… 查看全部问答> |
|
DS2-电力载波通讯PLC 什么是电力载波通讯PLC技术? 电力载波通讯PLC(英文:Power line communication)是电力系统特有的通信方式,电力载波通讯是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。最大特点是不需要重 ...… 查看全部问答> |
|
最近要在原来的板子上添加3G模块,用的是中兴的MC8630,但该模块的AT指令是通过串口来发送接收的,而相关的数据信息是通过USB来进行的 如此一来,我们是这样设想的:在原来的板子上模拟一个虚拟串口来接收上层的AT指令,然后该虚拟串口再把接收到的指令 ...… 查看全部问答> |
|
这个有的网友调通过,我调了不通,有看官问了,你笔记发了不少,网络程序也编成功并跑通了。怎么SD卡例程还调不通。真地假地? 我SD卡调通过但不是例程。我现在说的是开发板上的TI原装例 ...… 查看全部问答> |




