单片机数字钟设计程序响10秒(单片机课程设计数字钟)

程序设计 554
本篇文章给大家谈谈单片机数字钟设计程序响10秒,以及单片机课程设计数字钟对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、51单片机做一个10秒倒计时的程序

本篇文章给大家谈谈单片机数字钟设计程序响10秒,以及单片机课程设计数字钟对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

51单片机做一个10秒倒计时的程序

C语言

#include

#define

uint

unsigned

int

#define

uchar

unsigned

char

sbit

p27=P2^7;//数码管位选端定义

uchar

c,i;

//数码管译码表

unsigned

char

code

NumDecode[]

=

{

0XC0,//;0

0XF9,//;1

0XA4,//;2

0XB0,//;3

0X99,//;4

0X92,//;5

0X82,//;6

0XF8,//;7

0X80,//;8

0X90,//;9

};

void

main()

{

i=0;//10秒计时设置

c=0;//中断次数计数

p27=1;//数码管位选端关闭

TMOD=1;//设置定时器0为工作方式1

TH0=(65536-46080)/256;//定时50ms高8位求模

TL0=(65536-46080)%256;//定时50ms低8位求余

EA=1;//开总中断

ET0=1;//定时器0中断

TR0=1;//启动定时器0

while(1)

{

if(c==20)//50ms中断20次

{

c=0;

i++;//倒计时总数每秒减1

}

if(i10)

{

p27=0;//数码管位选选通

P0=NumDecode[i];//显示数据

}

else

//循环计时设置

{

i=0;

}

}

}

void

timer0()

interrupt

1//定时器0中断入口

{

TH0=(65536-46080)/256;//定时器重新赋初值

TL0=(65536-46080)%256;

c++;//中断次数

}

用51单片机,构成一个10秒倒计时器

程序很简单,你要是现在需要我用protues画个图给你,然后把程序也给你。

这种设计的话就利用定时器做变量的减法计数就行了,和0计数到10原理都一样;按键控制TRx就可以完成开始和停止。你也可以自己设计试试。

希望我的回答能帮助到你。

————————我做好了  给你吧。

单片机:系统时钟12MHz,设计1个10ms延时子程序。

如果是AVR单片机

inline void delay(short us) //每次循环花费4个时钟,赋初值额外多1个时钟。1最短,0最久

{

while (us--);

}

delay(12000000/4/1000*10);即可

1秒能执行12000000条指令,每次循环花费4个时钟,除以4得1秒能循环多少次,再除以1000得1ms循环多少次,再乘10就得10ms循环多少次。

其他单片机请先把delay的循环时钟数,以及主频和时钟关系研究清楚,方法类似

51单片机试题,写一个用单个数码管显示10秒倒计时的程序,急!!!!!

#include reg52.h

#define uchar unsigned char

#define uint unsigned int

sbit duan=P2^6;

sbit wei=P2^7;

uchar disp=0;

uchar time=10;

int miao=0;

uchar code dispcode[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71}; //段码表

void Timer0Init(void) //1毫秒@12.000MHz

{

TMOD = 0xF0; //设置定时器模式

TMOD |= 0x01; //设置定时器模式

TL0 = 0x18; //设置定时初值

TH0 = 0xFC; //设置定时初值

TF0 = 0; //清除TF0标志

TR0 = 1; //定时器0开始计时

}

void main()

{

Timer0Init()

ET0=1; //开启定时器0中断

EA=1;

while(1);//等待中断

}

void time0(void)interrupt 1

{

TL0 = 0x18; //设置定时初值

TH0 = 0xFC; //设置定时初值

if(disp1=0)

{

duan=1;

P0=dispcode[time%10];

duan=0;

wei=1;

P0=0xdf;

wei=0;

}

else

{

duan=1;

P0=dispcode[time/10];

duan=0;

wei=1;

P0=0xef;

wei=0;

}

disp++;

miao++;

if(miao==1000)

{

miao=0;

if(miao!=0)time--;

}

}

编写一个延时10秒的程序单片机

如果是精确的话,需要用定时器,不是太精确的话,软件延时就可以。

假如12M晶振

void delay10s()

{

int i,j;

for(i=0;i10000;i++)

for(j=0;j120;j++);

}

void delay10s()

{

unsigned char i;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

i=200;

while(i--)

{

while(TF0==0);

TF0=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

}

}

关于单片机数字钟设计程序响10秒和单片机课程设计数字钟的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码