c51为啥要宏定义时钟_c51时钟
/*
程序效果:时钟,包括时间可调,定时到了闹钟响,用蜂鸣器,本程序已经调试通过
您可从http://www.51hei.com/ziliao/file/naozhong.rar 下载本程序的代码.
喇叭接在p2.0上.端口均可自行更改.
*/
#include<reg52.h> //头文件
#include<intrins.h>
#define uchar unsigned char//宏定义
#define uint unsigned int
sbit key1=P3^5; //位声明
sbit key2=P3^6;
sbit key3=P3^7;
sbit fmq=P2^0;
uchar code table[]={0x3f,0x06,0x5b,//数码管显示的数值
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0xbf,0x86,0xdb,//带小数点的数值
0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
void jia(); //函数声明
void jian();
uchar table_1[6]; //定义数组,数组内含有6个数值
uchar table_2[6];
uchar shi=23,fen=59,miao=50; //显示初始值
uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;//定义全局变量
uchar flag,flag1,cnt,count;//定义全局变量
void delay(uchar i) //延时函数,用于动态扫描数码管
{
uchar x,y;
for(x=i;x>0;x--)
for(y=110;y>0;y--);
}
void init() //初始化函数
{
TMOD=0X01; //工作方式1
TH0=(65536-50000)/256; //定时时间为:50ms
TL0=(65536-50000)%256;
ET0=1; //打开定时器
EA=1; //开总中断
TR0=1; //启动定时器
}
void display() //显示子函数,用于显示时间数值
{
uchar i,j;
table_1[0]=miao%10; //分离秒的各位与十位
table_1[1]=miao/10;
table_1[2]=fen%10+11; //分离分的各位与十位
table_1[3]=fen/10;
table_1[4]=shi%10+11; //分离时的各位与十位
table_1[5]=shi/10;
j=0x7f; //从秒到时的扫描
for(i=0;i<6;i++)
{
P2=j;
P0=table[table_1[i]];//显示数值
delay(10);
j=_cror_(j,1);//循环右移
}
}
void display_1() //显示子函数,用于显示定时时间
{
uchar i,j;
table_2[0]=miao2%10; //以下含义同上
table_2[1]=miao2/10;
table_2[2]=fen2%10+11;
table_2[3]=fen2/10;
table_2[4]=shi2%10+11;
table_2[5]=shi2/10;
j=0x7f;
for(i=0;i<6;i++)
{
P2=j;
P0=table[table_2[i]];
delay(10);
j=_cror_(j,1);
}
}
void shijian() //时间子函数
{
if(flag>=20) //判断是否到一秒
{
flag=0; //到了,则标志位清零
miao++; //秒加1
if(miao>=60) //判断秒是否到60s
{
miao=0;//到了,则清零
fen++; //分加1
if(fen>=59) //以下含义同上
{
fen=0;
shi++;
if(shi>23)
shi=0;
}
}
}
}
void key_scan() //键盘扫描子函数
{
uchar i; //定义局部变量
if(key1==0)
{
while(!key1) //防止掉显
{
if(cnt=
c51为啥要宏定义时钟_c51时钟相关推荐
- c51为啥要宏定义时钟_51单片机时钟实训报告
时.分.秒计时器设计 一.任务及要求 用 51 单片机设计时.分.秒计时器,具体要求如下. 1 . 具有时.分.秒计时功能和 8 位数码管显示功能,显示格式为: "时-分-秒" : ...
- 时钟系统:CPU为啥需要时钟;此时钟非彼时钟,时钟到底是啥玩意
CPU为啥需要时钟:此时钟非彼时钟,时钟到底是啥玩意 讨论问题: 2.2 时钟的本质 讨论问题: 1.时钟是什么 2. 为什么需要时钟 2.2 时钟的本质 不知道你有没有过类似的疑惑:CPU不是供电就 ...
- 【嵌入式开发】时钟初始化 ( 时钟相关概念 | 嵌入式时钟体系 | Lock Time | 分频参数设置 | CPU 异步模式设置 | APLL MPLL 时钟频率设置 )
文章目录 一. 时钟相关概念解析 1. 相关概念术语 ( 1 ) 时钟脉冲信号 ( 概念 : 电压幅度 时间间隔 形成脉冲 | 作用 : 时序逻辑基础 间隔固定 根据脉冲数量可计算出时间 ) ( 2 ...
- Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义)
跑马灯程序,存储器映像.用宏定义,增强程序的可读性.. 头文件: #ifndef __STM32F10x_H #define __STM32F10x_H#define PERIPH_BASE (0X4 ...
- 单片机\程序中的那些宏定义
1.字符串的数据长度,用sizeof求数据长度并用宏定义表示 uint8_t buf[]="Hello,I am STM32\r\n"; 求字符串数组buf的数据长度: uint ...
- STM32时钟源时钟系统配置
一.在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz. ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率 ...
- 宏定义_do{...} while(0U)宏定义的作用和意义
转黄工的一篇文章,do while ,这个在Linux 里面也是经常见到,即使不是Linux ,只要涉及 C 语言的宏定义,就会出现,发出来给大家了解下. 写在前面 很多初学者,以及有一定工作经验的朋 ...
- F429-挑战者:LED的宏定义代码
1.LED 控制引脚相关的宏 //引脚定义//R 红色灯 #define LED1_PIN GPIO_PIN_10 #define LED1_GPIO_PORT G ...
- verilog 定义位宽为1的_Verilog中宏定义位宽带来的问题
Verilog 中宏定义位宽带来的问题 宏定义在 C 语言程序中的使用司空见惯,他的好处就在于可以大大提高代码的可读性和可 移植性.而在 verilog 中,也支持这个语法,在很多开源代码中也都能看到 ...
- linux arm64 宏定义,ARM64 芯片的 Jiffies 更新流程
最近在调试 arm64 机器时遇到了一个比较蛋疼的时钟问题,这个时钟问题会导致在部分机器类型上导致无法启动,为了深入了解并解决掉这个问题,特定决定研究一下整个 jiffies 的更新逻辑过程,本篇文章 ...
最新文章
- GPU上如何优化卷积
- 安卓高手之路 图形系统(2)----------------基于Binder的架构思路)
- 强化学习笔记:Q_learning (Q-table)示例举例
- 北京沙龙报名 | 关于Dubbo开源的那些事儿
- vs2005之主题与皮肤的学习
- Gradle 工具的源码研究
- springboot单例模式注入对象_Spring 中经典的 9 种设计模式,打死也要记住啊!
- Android开发p图软件,媲美大神P图效果 Android软件抠图神手
- 将梯度下降运用到线性回归
- win10设置HTML桌面背景,Win10系统直接将视频设置为桌面背景的方法
- 配置无状态IPv6地址自动配置基础实验
- shell切分字符串到数组
- 【Codecs系列】HEVC中三种Intra帧类型的区别:BLA/IDR/CRA
- Freesurfer教程(ubuntu)
- 国防科技大学计算机学院微电子,国防科大微电子所在声表面波高频特性研究方面取得重要进展...
- gta5汽车oracle2数据,《gta5》车辆性能数据解析图文详解
- 后端:svn忽略文件或文件夹 svn忽略不生效
- umeditor 上传图片的配置
- 3D建模怎么学,3D游戏建模怎么学
- 使用Packstack工具一键安装OpenStack
热门文章
- Makefile入门教程
- html简单个人网页制作网站设计——腾讯游戏官网(13页) HTML+CSS+JavaScript web网页设计与开发
- 算法导论 资源 课后答案 PDF
- 蓝牙方案,蓝牙国密读卡器,TypeA/TypeB/Felca卡读写,分享蓝牙NFC读写器带USB接口,银行卡/CPU卡/NTAG213/Mifare卡蓝牙读写器,usb多通道通讯
- 程序员100套简历模板,全网最全
- python底层源码_python源码剖析——系列一
- PHP时间戳和日期转换
- Lstm(循环神经网络)
- Go语言实战的知识图谱
- MySQL设计说明书_数据库详细设计说明书-模板.doc