标题:
一位数码管,用定时器定时1秒,在P0口接BCD数码管,每秒显示的数字加1,帮忙修改代码
[打印本页]
作者:
天才鱼yhx
时间:
2017-1-25 15:55
标题:
一位数码管,用定时器定时1秒,在P0口接BCD数码管,每秒显示的数字加1,帮忙修改代码
求教一位数码管,用定时器定时1秒,在P0口接数码管(BCD数码管),每秒显示的数字加一,如何用定时器延时编写,我只会用延时函数写,请大神帮忙修改成定时器定时1s,帮忙修改下程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code seg7ca[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
}; //0 1 2 3 4 5 6 7 8 9
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
{
for(j=0;j<124;j++);
}
}
void main()
{
while(1)
{
uchar i=0;
for(i=0;i<10;i++)
{
P0=seg7ca[i];
delay(1000);
}
}
}
F)%VBZX@C}UR)C9AEY3J6EY.png
(363.68 KB, 下载次数: 44)
下载附件
2017-1-25 15:55 上传
作者:
199419zzq
时间:
2017-1-25 20:46
你看下看单片机的书籍就知道了,这个很简单的
作者:
npn
时间:
2017-1-27 20:51
定时器不能一次定1秒的话就改成200个5毫秒的,中断200次数码管值加1就行。
作者:
juese
时间:
2017-1-27 22:41
while(1)是什么意思
作者:
angmall
时间:
2017-1-27 22:55
C语言中的while(1)的意思
无限循环,因为1恒为真,所以循环会一直进行下去,这个经常用到的。
while(1);
意义:这是一个死循环,代码不再向下执行。搜索
用途:
1. 一般在调试代码时,为了检测一部分代码是否OK,防止后面的代码干扰执行结果,会在观测点加上while(1);
2. 有些代码检测到运行错误时,会抛出错误(打印、设置错误码),然后进入while(1);
3. 机器需要复位时,停止喂看门狗,进入while(1); 迫使看门狗超时,产生硬件复位
while( 1 ) { 代码 }
意义:这里将会重复执行{}中的代码
用途:
1. 单片机在不使用操作系统时,主程序一般都使用这种架构
2. 操作系统中的进程,执行任务时,有些也会使用这种架构
3. {}中的代码不停地检测某个条件,当条件符合时,跳出该循环,继续向下执行
作者:
1149777206
时间:
2017-2-2 12:40
定时器设置延时好简单的,建议你看下书
作者:
黑黑—坤
时间:
2017-2-2 16:35
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code seg7ca[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
}; //0 1 2 3 4 5 6 7 8 9
void main()
{
while(1)
{
TMOD = 0x01;
TL0 = (65535-50000)%256;
TH0 = (65535-50000)/256;
TR0 = 1;
ET0 = 1;
EA = 1;
count = 0;
for(i=0;i<10;i++)
{
P0=seg7ca[i];
while(flag);
flag=0;
}
}
}
void tm0_isr() interrupt 1 using 1
{
TL0 = (65535-50000)%256;
TH0 = (65535-50000)/256;
if (coun++ == 20) flag=1,count =0;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1