导航:首页 > 操作系统 > 带时钟的单片机

带时钟的单片机

发布时间:2023-08-01 00:22:39

⑴ 怎样利用51单片机实现时钟功能程序

#define uchar unsigned char // (先定义一下方便使用)

#define uint unsigned int

#define ulong unsigned long

#include <reg52.h> //包括一个52标准内核的头文件

uchar code zixing[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar code ziwei[]={0x10,0x20,0x40,0x80};

uchar *h,*m;

uchar hour=12,min=0,sec=0,h_ding,m_ding,count=0,ms_50,ms_10,miaobiao_sec;

sbit dp=P0^7;

sbit k1=P3^2;

sbit k2=P3^3;

sbit k3=P3^4;

sbit sound=P2^3;

sfr ZIXING=0x80; //p0口输出字形

sfr ZIWEI=0xa0; //P2口输出字位

typedef enum //枚举类型:4种状态//

{

CLOCK,

SET_RING1,

SET_RING2,

MIAOBIAO_RUN,

}STATE;

STATE status;

typedef struct //定时时间的数据结构//

{

uchar hour;

uchar min;

}DINGSHI_TIME;

DINGSHI_TIME dingshi_time[2];

#define NO_KEY -1 //定义一下方便使用

#define KEY_1 1

#define KEY_2 2

#define KEY_3 3

bit show_on_flag;

//#######定时器T0中断服务程序########//

Timer0() interrupt 1

{

TH0=0x3c;TL0=0xb4; //50ms

ms_50++;

if(ms_50==20) {sec++;ms_50=0;}

if(sec==60) {sec=0;min++;}

if(min==60) {min=0;hour++;}

if(hour==24) {hour=0;}

}

//#######定时器T1中断服务程序########//

Timer1() interrupt 3

{

TH1=0xd8;TL1=0xf4; //10ms

ms_10++;

if(ms_10==100)

{

miaobiao_sec++;

ms_10=0;

}

if(miaobiao_sec==60)

miaobiao_sec=0;

}

//##############数码管显示#####################//

show(uchar time_high,uchar time_low)

{

uchar m;

uint n,k;

k=time_high*1000/10+time_low;

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

{

ZIXING=zixing[k%10];

if(ms_50<10)

dp=0;

ZIWEI=~ziwei[m];

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

ZIXING=0xff;

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

k=k/10;

}

}

//显示 on 定时编号//

show_on(uchar id) //id:定时编号//

{

uchar m;

uint n;

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

{

ZIXING=zixing[id%10];

dp=0;

ZIWEI=~ziwei[m];

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

ZIXING=0xff;

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

id=id/10;

}

ZIXING=0xc8; //字母n//

ZIWEI=~ziwei[2];

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

ZIXING=0xff;

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

ZIXING=0xc0; //字母0//

ZIWEI=~ziwei[3];

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

ZIXING=0xff;

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

}

/*************启动秒表***************/

void run_miaobiao()

{

ms_10=0;

miaobiao_sec=0;

TH1=0xd8; //标准是0xd8e4

TL1=0xf4;

// TR1=1; //启动定时器1

}

⑵ 单片机中时钟、晶振分别是起什么作用的

晶振用来提供时钟频率,时钟频率决定了单片机执行的快慢。没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。

单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us, 它的一个机器周期是12X (1/12)us,也就是1us。


(2)带时钟的单片机扩展阅读

每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。

晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。

⑶ 关于单片机内部时钟和外部时钟的问题

答:当单片机有内部时钟的时候。其工作的时候是可以用内部时钟和自己接外部时钟。
这个是没有硬性要求的,但是一般都用外部时钟,因为外部时钟比较稳定可靠。但是如果你想电路简单也可用内部时钟,不接外部时钟。这个也是可以的。使用起来没有什么差别。

阅读全文

与带时钟的单片机相关的资料

热点内容
如何让软件在多个安卓系统上运行 浏览:573
java判断半角 浏览:880
java判断正负 浏览:320
刷头条程序员的日常 浏览:102
吉林程序员吐槽 浏览:243
单片机温度范围 浏览:419
程序员为什么素质低 浏览:897
可爱的程序员小姐姐 浏览:145
服务器上网站的地址 浏览:798
苹果平板如何找到app资源库 浏览:321
阿里云可以云服务器地址 浏览:249
熊猫绘画app如何导入图片 浏览:555
如何自己编辑手机app 浏览:924
程序员那么可爱带的项链 浏览:532
安卓系统导航mic什么意思 浏览:192
编译sdk如何输出bin文件 浏览:679
如何用html5开发app 浏览:143
怎么隐藏苹果的app 浏览:328
上海積架空气压缩机 浏览:459
51单片机换行 浏览:739