基于51单片机的时钟设计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机时钟 1.1 单片机定时器的基本概念和相关寄存器 51系列单片机片内有二个十六位定时/计数器:定时器0(T0)和定时器1(T1)。 两个定时器都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合,定时/计数器实际上是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由2个8位持殊功能寄存TH1和TL1构成。 每个定时器都可由软件设置为定时工作方式或计数工作方式。 T0和T1受特殊功能寄存器TMOD和TCON控制。 1.2 单片机中断系统和相关的寄存器 51单片机有5个中断请求源,两个中断优先级,可两级嵌套。 与中断有关的特殊功能寄存器SFR有定时器控制寄存器TCON、串行口控制寄存器SCON、中断允许寄存器IE、中断优先权寄存器IP。 1.3 具体设计 1.3.1 任务要求、任务分析 要求:应用定时器和中断系统,比如电子时钟,参考功能有:时间;年、月、日;闹钟;时间修改;年月日设置;闹钟时间设置。 分析:运用中断系统实现定时器功能与显示。 1.3.2 Proteus仿真原理图 1.3.3 C语言程序算法分析与程序构架 #include REGX51.H #define uchar unsigned char #define uint unsigned int //可位寻址单元的位定义 sbit LE1= P2^0; sbit LE2= P2^1; sbit KEY1= P2^2; sbit KEY2= P2^3; sbit KEY3= P2^4; sbit SPEAK= P2^5; sbit P26= P2^6; sbit P27= P2^7; sbit P10= P1^0; sbit KEY4= P1^1; sbit P30= P3^0; sbit P31= P3^1; sbit P32= P3^2; sbit P33= P3^3; sbit P34= P3^4; sbit P35= P3^5; sbit P36= P3^6; sbit P37= P3^7; sbit P12= P1^2; //共阳LED显示代码 uchar LED_Duanxuan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共阴LED显示代码 uchar LED_Duanxuan1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; //LED位选 uchar LED_weixuan[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //显示缓冲区 uchar LED_DIS[8]={0,0,0,0,0,0,0,0}; uchar LED_Saomiao =0; uchar time_50ms,i=0; uchar second,minute,hour,minute1,day,mon,year,alhour,almin; uchar number_key; int n=0; void delay(void); //延时程序 void display(void); //显示程序 void key_process(void); //按键处理程序 void Initialize(void); //初始化程序 int Leepyear(unsigned int year); void Initialize(void) { second = 0; //秒 minute = 0; //分 hour = 0; //时 day = 1; //日 mon = 1; //月 year = 0; //年 number_key = 0; //按键次数 TH0=(65536-50000)/256; //定时50ms TL0=(65536-50000)%256; EA = 1; //开中断总开关; ET0 = 1; //允许定时器0中断开关; TR0 = 1; //启动定时器T0; LED_DIS[0] = LED_Duanxuan[0]; //显示缓

文档评论(0)

mx597651661 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档