基于8051单片机的高精度时钟设计 要求 LCD显示当前的年、月、日,时、分、秒,按键可修改 利用定时器
我做过类似的题目,请看http://hi.baidu.com/mscyhll/blog/item/b6758d0121fee885d53f7c37.html
如果需要可以给你源程序 ,mscyhll@hotmail.com
精确到0.01s 没有任何意义,你以为是卫星授时啊
可以根据以下程序修改,数码管显示此程序为国信长天51板子的程序,用到38译码器
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit HC138A=P2^5;
sbit HC138B=P2^6;
sbit HC138C=P2^7;
uchar num,num0,num1,num2;
void display(uchar w,uchar value) ;
void delayms(uint xms) ;
void sec(uchar );
void min(uchar );
void hour(uchar );
uchar table1[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90 ,0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0xbf};
//不带小数点的数字0-9和带点小数的
uchar table2[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 }; //数码管位选
void T_Tint()
{
TMOD=0X01;
TH0=(65536-49990)/256;
TL0=(65536-49990)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
T_Tint();
//display(8,0);
while(1)
{
sec(num0);
display(6,20);
delayms(2);
min(num1);
display(3,20);
delayms(2);
hour(num2);
}
}
void display(uchar w,uchar value)
{
WR=1;
P0=table1[value];
HC138A=1;
HC138B=1;
HC138C=1;
WR=0;
WR=1;
P0=table2[w];
HC138A=0;
HC138B=1;
HC138C=1;
WR=0;
WR=1;
}
void sec(uchar num0)
{
uchar shi,ge;
shi=num0/10;
ge=num0%10;
display(7,shi);
delayms(2);
display(8,ge);
delayms(2);
}
void min(uchar num1)
{
uchar shi,ge;
shi=num1/10;
ge=num1%10;
display(4,shi);
delayms(2);
display(5,ge);
delayms(2);
}
void hour(uchar num2)
{
uchar shi,ge;
shi=num2/10;
ge=num2%10;
display(1,shi);
delayms(2);
display(2,ge);
delayms(2);
}
void T0ISR()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==20)
{
num=0;
num0++;
}
if(num0==60)
{
num0=0;
num1++;
if(num1==60)
{
num1=0;
num2++;
if(num2==24)
{
num=0;
}
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
已知8051单片机的fosc=12MHz,用T1 定时,试编程由P1.2 和P1.3 引脚分别...
代码如下:第一个代码程序:ORG 0000H LJMP MAIN ORG 001BH JMP T1_INT ORG 0030HMAIN:MOV TMOD, #20HMOV TH1, #6MOV TL1, #6MOV IE, #88HSETB TR1MOV R7, #4SJMP $T1_INT:CPL P1.3DJNZ R7, T1_ENDCPL P1.2MOV R7, #4T1_END:RETI END 第二个500us程序:include <reg51.h>...
求用C语言编写一个单片机89C51电子时钟程序,有时,分,秒,还有电路图_百 ...
include <NEW_8051.h>"#include <task.h>\/***\/sbit T_CLK=P3^5; \/\/DS1302引脚连接sbit T_IO =P3^6;sbit T_RST=P3^7;sbit ACC0=ACC^0; \/\/1bit数据存储位sbit ACC7=ACC^7;uchar starts_time[7]={0x00,0x10,0x22,0x20,0x05,0x04,0x10}; \/\/初始化后设置uchar Sec;...
设8051单片机晶振频率为6MHz,定时器T0工作于方式1,要求单片机以中断方 ...
在8051单片机的时钟频率为6MHz,那么定时器的计数脉冲周期就是 2uS;sbit m=P1^0; \/\/ char n=0;char flag=0;void Timer0_init(){ TMOD |=0x01; \/\/方式1,采用16位定时器 TH0 = (65536-50000)\/256; \/\/定时器装初值50000, 100ms中断一次 TL0 = (65536-50000)%256;EA=1; ET0=1; ...
设8051单片机的f OSC=12MHz,要求用T0定时150ms,分别采用定时方式1和方 ...
方式1的最大定时是65ms左右,一次要采用软件和硬件结合定时,先让T0定时50ms运行3次就可以了。具体的 ORG 1000H MOV R2,#03H MOV TMOD ,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB IE ,#82H SETB R0,#03H SJMP ORG 000BH AJMP BRT0 ORG 0080H BRTO:DJNZ...
STC15F100STC15F100特性
STC15F100内置高精度R\/C时钟,温度漂移±1%(-40℃~+85℃),常温下温度漂移仅为5%,提供精准的时钟源。工作频率范围宽广,从5MHz~35MHz,相当于普通8051的60MHz~420MHz,满足不同应用需求。在低功耗设计方面,STC15F100支持低速模式、空闲模式和掉电模式\/停机模式,可通过外部中断唤醒,延长电池寿命。
什么是内部时钟方式和外部时钟方式 MCS-51单片机外部
在选择时钟方式时,需要根据具体的应用需求来决定。内部时钟方式操作简单,但频率范围有限;外部时钟方式则提供了更广泛的频率选择范围,但需要额外的外部电路设计和调试。对于需要高频率或特定频率的应用,外部时钟方式是更佳的选择。无论是使用内部还是外部时钟,都需要确保单片机内部的振荡电路或外部的振荡器...
已知8051单片机使用的晶振是12mhz,要求设计一段软件延时程序,延时时间...
51单片机晶振12MHz软件延时1秒程序:DELAY:MOV R7,#500 D1:MOV R6,#250 D2:NOP NOPNOPNOPNOPNOPDJNZ R6,D2 DJNZ R7,D1 .以上程序为何能定时1秒? 请阅附件。
STC15F100STC15F100概述
STC15F100单片机,由宏晶科技设计并生产,是一款高速、高可靠性、低功耗、超强抗干扰的新一代8051单片机。这款单片机采用宏晶第八代加密技术,加密性能极为出色,指令代码与传统8051完全兼容,但运行速度可达到6-12倍的提升。STC15F100单片机内部集成了高精度R\/C时钟,其温漂仅为±1%,在常温下温漂为5%,...
ALE信号频率与时钟频率有什么关系
此外,8051单片机内部的ALE信号设计不仅限于8031型号,而是广泛应用于整个8051系列。这一设计的灵活性使得8051系列单片机能够在不同应用场景中提供多样化的性能选择,满足从低功耗微控制器到高性能嵌入式系统的需求。总结来说,ALE信号的频率设计是8051系列单片机的一项关键特性,它不仅确保了对外部存储器的可靠...
8051单片机晶振为12MHz用T0实现1s的定时 时间为50ms如何实现1s的定时寄...
定时50mS,累计20次即可 主程序中:TMOD=0X01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;ET0=1; EA=1;\/\/开定时器0中断和总中断 TR0=1;\/\/启动定时器 a=0;\/\/计数变量清0 while(a<20);\/\/等待中断20次,即是1S a=0;...中断程序:void zhongduan() interrupt 1 { TH0=(65...