能给我一份么?基于单片机的数字式电子钟 AT89S51的,Proteus原理图也给份啊

作者&投稿:宠虾 (若有异议请与网页底部的电邮联系)
求单片机数字电子钟的原理图和程序(单片机高手进)~

设计这个是需要很多时间的,我曾经做了一个,但是不够准确,因为晶体会有偏差,必须在程序中补偿,但是补偿多少是需要用仪器来测量的,比如一秒会差2微秒,感觉没有什么,但时间长了就偏差大咯,所以很多人就不用单片机来直接设计,而是用单片机来外接一个时钟电路,那样会好一些的,如果是自己在学习的话,建议你自己来做,太长的时间比人估计也不会给你写,除非他正好也在做这个的。


#include<reg52.h> //头文件

#include<intrins.h>//头文件

#define uchar unsigned char//宏定义

sbit SHCP=P1^0;//595移位寄存器时钟,上升沿有效

sbit STCP=P1^1;//595存储器时钟,上升沿有效

sbit DS=P1^2;//数据输入端

sbit OE=P1^3;//数据输出端

sbit KEY1=P3^0;//组合按键

sbit KEY2=P3^1;//调时按键

sbit KEY3=P3^2;//调分按键

uchar i,j,hour,min,sec;//定义的全局变量,初值默认为零

uchar tab1[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,0xbf};//0-9,和分隔符-的段码(共阳数码管)

uchar tab2[]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//位选码

/*………延时子程序…………*/

void delay(uchar time)//入口参数time

{

  uchar m,n;//定义局部变量

  for(m=0;m<time;m++)

    for(n=0;n<10;n++);

}

/*....发送数据子程序.....*/

void write595(uchar dat)//带有参数,函数入口dat

{

  uchar tmp,k;//定义局部变量

  for(k=0;k<8;k++)//循环8次,发送一个字节的数据

  {

    tmp=dat&0x80;//取最高位的数据,并将数据放入tmp中

    dat<<=1;//数据左移一位

    DS=tmp;//将tmp中的数据写入DS端

    SHCP=0;//将SHCP置0

    SHCP=1;// 将SHCP置1,则上升沿到来,寄存器数据移位

  } 

    STCP=0;// 将STCP置0

    STCP=1;// 将STCP置1,数据存入存储器

/*………..数码管显示子程序…………*/

void display(void) 

{

  for(i=0;i<8;i++)//循环8次,数码管显示一个字节

   {

     switch(i)

     {

      case 0: write595(tab1[hour/10]);break;//数据取整,显示时十位

      case 1: write595(tab1[hour%10]);break;// 数据取余,显示时个位

      case 2: write595(tab1[10]);break;// 显示时与分之间的横杠

      case 3: write595(tab1[min/10]);break;// 数据取整,显示分十位

      case 4: write595(tab1[min%10]);break;// 数据取余,显示分个位

      case 5: write595(tab1[10]);break;//显示分与秒之间的横杠

      case 6: write595(tab1[sec/10]);break; //数据取整,显示秒十位

      case 7: write595(tab1[sec%10]);break; //数据取余,显示秒个位

     }

     OE=0;//打开输出,输出595存储器数据

     P2=~tab2[i];//位选输出,选通对应的时分秒数码管

     delay(10);//调用延时子程序

     OE=1;//关闭输出,同时具有消隐作用

}

}

/*………………时间调整函数………………….*/

void timeadjust (void)

{

  if((!KEY1)&&(!KEY2))//当KEY1和KEY2同时按下时执行此语句

  {

    delay(10); //延时

if((!KEY1)&&(!KEY2)){while(!KEY2);hour++;} //确实有按键按下,则时加1,到24自动归0

  }

  if((!KEY1)&&(!KEY3))//当KEY1和KEY3同时按下时执行此语句

  {

    delay(10); //延时

if((!KEY1)&&(!KEY3)){while(!KEY3);min++;}//确实有按键按下,则分加1,到60自动归0

  }

}

/*………………主函数………………*/

void main(void)

{

  TMOD=0x01;//定时器T0,工作方式1

  TH0=(65536-50000)/256;//T0高八位装定时初值

  TL0=(65536-50000)%256;// T0低八位装定时初值

  EA=1;//开总中断 

  ET0=1;//开T0中断

  TR0=1;//开定时器T0

  while(1)//循环

   { 

     display();//调用显示子程序

 timeadjust();

   }

}

/*……………中断函数……………*/

void timer0_intp() interrupt 1//中断号为1

{

  TH0=(65536-50000)/256;//重装高八位初值

  TL0=(65536-50000)%256;//重装低八位初值

  j++;//中断次数计数变量,每发生一次中断加1

  if(j==20){j=0;sec++;}//j中断20次为1秒,同时秒加1

  else if(sec==60){sec=0;min++;}//秒到60,归0同时分加1

  else if(min==60){min=0;hour++;}//分到60,归0同时时加1

  else if(hour==24) hour=0;//时到24,归0

}



请给邮箱。。。


我建立一个基于单文档的应用程序,在主界面显示运行结果,子对话框和主...
用全局变量

大伙帮忙出出主意,我想组装一台电脑,价位在2500以下,求高手给一份...
电源 先马蓝魅(ATX300-1)¥148 由于 AMD 在功耗方面的 出色表现 整体配置的功耗并不高,给你配了国内一线品牌电源,电源 先马蓝魅额定功率 270 完全能满足你的供电需求。机箱普易达 E101B¥70 随便60-80的ATX的自己选吧 合计金额约2500元,高性价比的AMD平台,性价比高 --- Intel 奔腾双核 E650...

今年春晚节目单给一份
2012央视春晚节目单最新版 2012春晚节目总导演:哈文 2012春晚节目主持人:朱军 李咏 撒贝宁 李思思 董卿 毕福剑 1、开场童谣: 邓鸣贺 2、东西南北大拜年:朱军 李咏 撒贝宁 李思思 董卿 毕福剑 李谷一 王珞丹 蔡卓妍 冯绍峰 等 大拜年之:《欢乐中国年》朱军 李咏 撒贝宁 李思思 董卿 毕福剑 李谷一 ...

保险单遗失了怎么办保险还有效吗?
二、保险单遗失了保险怎么办 首先,我们应该尽快联系保险公司,告知他们保险单的遗失情况。保险公司会要求我们提供一些相关的信息,例如保险单号、投保人信息等,以便他们能够核实我们的身份和保险合同的有效性。在提供这些信息后,保险公司会重新发给我们一份新的保险单。此外,我们还可以向保险公司索取一份...

请电脑高手帮忙写一份台式机配置单(要详细哦,我要去配电脑)
CPU:APU AMD A4 3300 (散片) 195 采用32nm制作工艺,其中CPU部分采用双核设计,基于Husky微架构(K10的改进版),默认主频为2.5GHz,每个核心拥有512KB二级缓存;GPU为Radeon HD 6410D,具备160个流处理单元,默认频率为600MHz。热设计功耗为65W,最高可支持DDR3-1600内存,接口为全新的FM1,需要...

求一份台式机的配置单,价格在3000元-4000元;一份笔记本...
CPU AMD 羿龙II X4 955(黑盒)¥950 CPU AMD 羿龙II X4 955 AMD的高端羿龙四核心CPU,采用AM3接口主频3200GHz集成6MB三级缓存,黑盒不锁倍频版,超频性能非常强大,性价比非常高。华硕M4A87T¥690 华硕M4A87T主板采用ATX板型设计,基于AMD 870+SB850芯片组,支持AMD Socket AM3、Phenom?II、Athlon?

求一份2500-3000的台式电脑配置单。本人想在广州太平洋电脑城买...
19寸液晶显示器,国内一线品牌。采用TFT新一代液晶面板,技术引擎强劲,质量精良,16.7M真彩色,色彩画面逼真,16:10的显示比例更贴近黄金分割的尺寸,欣赏视频更舒适,效果更加完美经济实用全国联保,享受三包服务。先马超影400感恩版(ATX-330-9)¥160 给你配了国内一线品牌电源300W 最大功率400W完全能...

给我推荐5款单机游戏
我也去答题访问个人页 关注 展开全部 你好!! 本人介绍的以下一些作品是目前欧美RPG顶级游戏作品,可以说代表了目前欧美PRG类游戏的最高水平,尤其是〈上古卷轴4〉的推出,由于游戏引擎采用了目前最先进的HAVOK物理渲染技术,因此也被誉为“硬件杀手”。 如果你喜欢欧美RPG游戏,以下的所有作品绝对不可以错过。 1。

急需一份英文外贸报价单.
我不知道你做的是何种产品,不同产品的报价单会有些许差异,但是客户看报价单,最关切因素是想知道你的报价是基于什么理由来报的,邮件就不给你发了,大致给你说下吧,一般会包括以下几个方面:1.原材料成本(material cost):原材料价格;原材料消耗;举例一个螺丝,假设铁950USD\/ton,一个螺丝用料...

***
1.这篇文章关于什么?在这篇文章里,我将向你解释木马及其未来的一些令人感兴趣的事情.我希望你能认识到木马是危险的,它仍是一个很大的安全问题.尽管许多人说不从网络上下载文件你将不会感染木马,这是不正确的.我在这儿想解释的是木马有将来及其一些令人感兴趣的事.这篇文章只是为基于WINDOWS平台而非UNIX的木马...

怀集县15678098402: 用8051单片机设计一数字式温度计 的电路图 有程序的最好 谢了 -
少崔必可: 这个电路很简单,我说一下就可以了.数字式温度传感器用最常用的DS18B20,它只有3个管脚,一个接电源,一个接地,另一个接8051单片机就可以了.温度值用数码管显示.这样整个电路就接好了.如果楼主觉得我回答的可以别忘了给我加...

怀集县15678098402: 你有基于单片机的数字电压表的程序吗? -
少崔必可: #include <regx51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char sbit ST = 0xb2; sbit OE = 0xb0; uchar code led_7seg[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*延时函数*/ void Delayms(uint n) ...

怀集县15678098402: 急求nbsp;基于单片机的数字电压表设计
少崔必可: /*nbsp;---------------------------nbsp;nbsp;nbsp;nbsp;P1接AD0804的8个脚,P0口接数码管段选,P2.0-P2.4接位选,P3.6-P3.7接2个口------------------------------------*/nbsp;ORGnbsp;0000Hnbsp;AJMPnbsp;MAINnbsp;ORGnbsp;0030HMAIN:nbsp;...

怀集县15678098402: 基于单片机基础的指针式电子时钟设计 -
少崔必可: 您好,方案一:静态显示.所谓静态显示,就是每个数码管的每一个段码都由一个单片机的I/O埠进行驱动.静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5*8=40根I/O埠来驱动.故实际应用时...

怀集县15678098402: 我的毕业设计题目是,基于单片机的数字式电子时钟设计,谁可以帮帮忙啊?谢谢啦
少崔必可: 单片机 数码管LED 显示电子钟http://hi.baidu.com/dsu5566/blog/item/f5e83f38c7de8dfdb311c705.html 基于单片机的数字钟http://hi.baidu.com/dsu5566/blog/item/82811cfab979bb17a9d311cb.html基于单片机的数字钟(电子日历)http://hi.baidu.com/dsu5566/blog/item/7cfe0fa480cd14fe9152eec8.html

怀集县15678098402: 单片机数字电压表(0~5V)的设计程序
少崔必可:程序: #include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit START=P3^0; sbit OE=P3^1; sbit EOC=P3^2; bit Flag; uchar data led[4]; uint data tvdata; uchar code tv[]={0xfe,0xfd,0xfb,0xf7}; uchar code a[]={0x3f,0x06,0x5b,0x...

怀集县15678098402: 基于单片机的数字温度计设计 -
少崔必可: 按你的要求设计了程序并且通过ProteUS仿真 无偿提供原理图,ProteUS仿真工程(可运行),供参考运行效果,及原理图的设计. 推荐:01 基于单片机的数字报警温度计( http://ishare.iask.sina.com.cn/f/11655563.html ); 源程序为汇编 ; ...

怀集县15678098402: 求一份关于单片机设计的数字时钟设计电路和程序c51或者c52 都行 -
少崔必可: oop8: mov r5,#00h loop7: mov r4,#08h loop6: mov r3,#02h loop5: mov r2,#09h loop4: mov r1,#05h loop3: mov r0,#08h loop2: mov r7,#68h loop1: mov dptr,#0ff21h mov a,#01h movx @dptr,a mov dptr,#tab mov a,R0 movc a,@a+dptr mov dptr,#0ff22h ...

怀集县15678098402: 求助 单片机的LCD数字电子钟
少崔必可: DS1302 2,3脚跨接32768的晶振,旁连各弄一个10pF电容,然后接地.1脚给+5V电,8脚另外给电,因为它是双电,保存数据的.然后4脚接地,5,6,7脚引出至C52 P3.4 P3.3 P3.21302接线完毕按键采用两键设计,一键进入设置状态,另一键调整,别忘了串上10K电阻,再并上一电容. C52 18,19脚给2M的晶振,30P的电容接在二脚上,然后接地.然后用8550从21到27脚引出数据显示至于C语言的编程,网上能搜到的,一般都是带农历显示的.用汇编也一样,记得当初好像是编译过不去的C.后来才改的汇编.如果液晶模块的话驱动电路是不一样的.自己看着改一下吧.当然得动程序.

怀集县15678098402: 跪求基于51单片机的数控直流电源程序 -
少崔必可: 楼主的设计需要两个方面,硬件方面需要提供低纹波电源,注意加滤波;软件方面,不过是单片机控制DAC并输出在数码管显示. 硬件太简单就说了.软件编程上,由于按键只有两个,想简化设计,可以用按键+单稳去抖动;由于DAC只需要8位,不论采用串行或者并行接口都没问题,若实用角度考虑,最好是用PWM实现DAC,这只需要定时器产生脉冲调宽信号,经过IO口输出后,用两级LC滤波,然后用运放+三极管放大即可;数码管显示最简单是利用40脚的51多余的引脚,直接接两位共阳LCD数码管,显示两位即可.这样做,编程那个也很简单. 注意,LZ的51一定要实用内部带FLASH ROM的型号,例如89S51/52,或者更好的STC产品.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网