单片机:四位数码管显示时分,开关1 2 3 4分别增加时,减少时,增加分,减少分
时间:2021-07-29
本文章向大家介绍单片机:四位数码管显示时分,开关1 2 3 4分别增加时,减少时,增加分,减少分,主要包括单片机:四位数码管显示时分,开关1 2 3 4分别增加时,减少时,增加分,减少分使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#include<reg51.h> #define uchar unsigned char; #define uint unsigned int; uchar position; uchar tt; uchar second; uchar minute; uchar hour; uchar code table[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0--9 sbit smg_q = P2^0; //??????? sbit smg_b = P2^1; sbit smg_s = P2^2; sbit smg_g = P2^3; sbit key1=P3^2; //???? sbit key2=P3^3; sbit key3=P3^4; sbit key4=P3^5u; void keyscan(); //???? void display(unsigned char hour,unsigned char minute); void delay(unsigned int timer); void init(); /*********************************************************** ??? ***********************************************************/ void main() { init(); while(1) { if(tt==20) { tt=0; second++; if(second==60) { second=0; minute++; if(minute==60) { minute=0; hour++; if(hour==24) hour=0; } } } keyscan(); display(hour,minute); delay(1); } } /*********************************************************** ?? ***********************************************************/ void keyscan() { if(key1==0) //???1 { TR0=0; hour++; if(hour==24) hour=0; delay(200) ; TR0=1; } if(key2==0) // ??? { TR0=0; hour--; if(hour<0) hour=23; delay(200) ; TR0=1; } if(key3==0) // ??? { TR0=0; minute++; if(minute==60) minute=0; delay(200) ; TR0=1; } if(key4==0) // ??? { TR0=0; minute--; if(minute<0) minute=59; delay(200) ; TR0=1; } } /*********************************************************** ??? ***********************************************************/ void init() { tt=0; position=0; second=0; minute=0; hour=0; smg_q=1; smg_b=1; smg_s=1; smg_g=1; key1=1; key2=1; TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } /*********************************************************** ???TO?? ***********************************************************/ void t0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; } /*********************************************************** ?? ***********************************************************/ void display(unsigned char hour,unsigned char minute) { P0=0XFF; switch(position) { case 0: smg_g=1; smg_q=0; P0=table[hour/10]; break; case 1: smg_q=1; smg_b=0; P0=table[hour%10]; if(tt>=10) P0&=0x7f; //??????????? break; case 2: smg_b=1; smg_s=0; P0=table[minute/10]; break; case 3: smg_s=1; smg_g=0; P0=table[minute%10]; break; } position++; if(position>3) position=0; } /*********************************************************** ?? ***********************************************************/ void delay(unsigned int time) { unsigned int x,y; for(x=time;x>0;x--) for(y=110;y>0;y--); }
原文地址:https://www.cnblogs.com/xkdn/p/15076127.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel清除视图缓存的代码
- Smarty模板类内部原理实例分析
- laravel框架与其他框架的详细对比
- ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写办法
- PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
- PHP实现简单登录界面
- PHP创建XML接口示例
- PHP设计模式之单例模式入门与应用详解
- Laravel框架实现定时Task Scheduling例子
- PHP使用 Pear 进行安装和卸载包的方法详解
- Laravel5.1框架注册中间件的三种场景详解
- 浅谈laravel数据库查询返回的数据形式
- PHP设计模式之策略模式(Strategy)入门与应用案例详解
- 基于Python3读写INI配置文件过程解析
- laravel 解决paginate查询多个字段报错的问题