单片机数字钟设计程序响10秒(单片机课程设计数字钟)
本篇文章给大家谈谈单片机数字钟设计程序响10秒,以及单片机课程设计数字钟对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、51单片机做一个10秒倒计时的程序
- 2、用51单片机,构成一个10秒倒计时器
- 3、单片机:系统时钟12MHz,设计1个10ms延时子程序。
- 4、51单片机试题,写一个用单个数码管显示10秒倒计时的程序,急!!!!!
- 5、编写一个延时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秒和单片机课程设计数字钟的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。