单片机小白,初学单片机,利用51单片机简单的编写了基于1602显示的时钟程序,技术不好,可能会有许多不好的地方,希望大神指正

基本功能:时钟显示,利用按键调时,分

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit en=P3^4;
sbit rs=P3^5;
sbit rw=P3^6;
sbit s2=P3^0;
sbit s3=P3^1;
sbit s4=P3^2;
sbit s5=P3^3;
uchar shi,fen,miao,num,num1=0,num2=0,num3=0,flag;
void delay(uint z)
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}
void busy()
{uchar busy;P0=0xff;rs=0;rw=1;do{en=1;busy=P0;en=0;}while(busy & 0x80);//取最高位}
void write_com(uchar com)
{busy();rs=0;rw=0;P0=com;en=1;en=0;
}
void write_date(uchar date)
{busy();rs=1;rw=0;P0=date;en=1;en=0;
}
void display(uchar num,weizhi)
{uchar shi,ge;shi=num/10;ge=num%10;write_com(0x80+0x03+weizhi);write_date(0x30+shi);write_date(0x30+ge);
}
void init()
{write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);//清屏write_com(0x80|0x07);write_date(':');write_com(0x80|0x0a);write_date(':');display(0,2);display(0,5);display(0,8);TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1;ET0=1;TR0=0;
}
void keyscan()
{if(s5==0){delay(10);if(s5==0){while(!s5);TR0=~TR0;}}if(s3==0){delay(10);if(s3==0){num2++;if(num2==60)num2=0;display(num2,5);while(!s3);  }              }if(s2==0){delay(10);if(s2==0){num3++;if(num3==24)num3=0;display(num3,2);while(!s2);}}
}
void main()
{init();while(1){keyscan();}
}
void time0() interrupt 1
{TH0=(65536-45872)/256;TL0=(65536-45872)%256;num++;if(num==20){num=0;num1++;}display(num1,8);if(num1==60){num1=0;num2++;if(num2==60){num2=0;num3++;if(num3==24){num3=0;}display(num3,2);}display(num2,5);}
}

51单片机-1602液晶显示的时钟代码相关推荐

  1. 51lcd显示光传感器c语言程序,基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例...

    基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例,系统由GY-30数字光照传感器.51单片机最小系统.1602液晶显示屏组成,电路简单,附件中的程序是实物验证过了的.1 ...

  2. 基于51单片机1602温度显示时钟

    基于51单片机LCD1602温度显示时钟 要在1602上显示时间和温度先要了解1602是如何显示的.详情可以参考我之前的文章基于51单片机1602显示 :时间显示可以用时钟芯片DS1302,但是此次我 ...

  3. 51单片机——1602液晶显示

    LCD显示原理 : 以电流刺激液晶分子产生点.线.面并配合背部灯管构成画面. 1602是字符型液晶,通过一个一个点阵来显示,由于每一个点阵之间会有很大的间隔因此不适合来显示图形,只能用来显示数字,字母 ...

  4. 电子时钟万年历+51单片机+1602液晶屏+DS1302+DS18B20+按键

    电子时钟万年历+51单片机+1602液晶屏+DS1302+DS18B20+按键 这次课程设计要完成的是制作一个基于51单片机的电子时钟的万年历(protues仿真),需要用到1602液晶屏+DS130 ...

  5. 【嵌入式】51单片机+1602+dht11显示温湿度

    51单片机+1602+dht11显示温湿度例程代码如下: /*****************************************************************联系:请勿 ...

  6. 关于用51单片机内部定时器实现时钟和闹钟功能的概述

    关于用51单片机内部定时器实现时钟和闹钟功能的概述 仅个人观点,欢迎大家相互学习和讨论 STC89C52单片机,内部配置了三个定时器,T0\T1\T2,其中T2定时器我们几乎不用,或者说很少用到.我们 ...

  7. 51单片机定时器秒计数时钟+Proteus仿真

    51单片机定时器秒计数时钟+Proteus仿真 Proteus仿真 实例代码 本实例采用的是普中开发板Proteus模板 功能:电子钟,从左到右,1.2位为秒,3.4位为分,5.6位为时,7.8位为天 ...

  8. 基于51单片机的数字电子时钟

    基于51单片机的数字电子时钟 单片机课程设计要求使用51单片机完成一个电子时钟,要求满足基本功能的同时增添丰富的功能参考了很多大佬的方案代码才勉强完成,工程文件下载点击此链接欢迎交流.如遇下载问题可以 ...

  9. ADC0832测电阻原理及51单片机1602显示

    前言:今天中午和高中老同学一起吃了个饭,同学计算机专业代码大佬,问起我有没有CSDN,我说有些时候会在上面看一些程序,他随即向我说起了他已经在CSDN上发表了很多文章目前排名一万多,因为我学集成电路专 ...

最新文章

  1. 清除linux缓存命令
  2. USACO1.4 The Clocks(clocks)
  3. 树的更多相关算法-3
  4. SpringBoot高级-消息-AmqpAdmin管理组件的使用
  5. let与expr命令的用法与实战案例
  6. springmvc环境搭建以及常见问题解决
  7. python元组和列表字典_python:列表、元组和字典
  8. 华为MatePad 11配置曝光:骁龙865+2K/120Hz高刷屏
  9. arcgis里面怎么截图_ArcGIS在变更调查中影像截图批量制作的统一方法
  10. JVM - 对象访问
  11. matlab fx函数图像,matlab 画两个自变量的函数图像
  12. 40-42-网络层ARP协议,ARP欺骗,网络执法官和arp防火墙
  13. 乐鑫Esp32-S2学习之旅② ESP32-S2 以 I2C 驱动 SHT20 获取温湿度数据,代码开源!
  14. pg_bigm与pg_trgm的安装、测试、对比
  15. 戴尔服务器重装系统步骤
  16. 股票实盘交易接口用什么编程的?
  17. 完全用 GNU/Linux 工作(转)
  18. 线程优先级和守护线程
  19. “前程无忧”招聘数据爬虫——(1)
  20. 利用InstallAnywhere制作JAVA可执行程序安装文件

热门文章

  1. 大数据高级开发工程师——HBase学习笔记(2)
  2. zip密码破解 ——fcrackzip
  3. 苹果开发者 邓白氏号码 免费申请
  4. CodeForces - 723D Lakes in Berland dfs
  5. 你能战胜自己:克服自卑的方法
  6. vue项目的停止_基于Vue项目开发中遇到的坑及终结
  7. 玩着赚的加密游戏,大火中慧眼识珠
  8. 有过错方可以主张离婚经济帮助
  9. ubuntu flash插件安装
  10. Android学习|布局——GridLayout 表格布局_(可行、列合并)