- UID
- 358669
- 阅读权限
- 25
- 推广
-
- 幽默
-
- 注册时间
- 2013-2-12
- 最后登录
- 1970-1-1
|
注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。
您需要 登录 才可以下载或查看,没有帐号?快速注册
x
大家好:最近开始学习单片机,我写了一个从0-9999 9999 的自加程序,想让单片机数码管在自加的同时,在附加个频率为2HZ的闪灯,但是程序修改来修改去总是影响数码管的显示速度!难道单片机就不能像电脑那样多任务处理吗?
求附加代码!!!
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit wei=P2^0;//位锁存器锁存端
sbit duan=P2^1;//段锁存器锁存端
uchar code EL_duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
uchar code EL_weima[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
/*********************************************************/
void delayms(unsigned int i)//延时函数
{
unsigned int j;
for(;i>0;i--)
for(j=15;j>0;j--);
}
/***********************************************************/
void main(void)
{
uint j;
unsigned long int num;
while(1)
{
j++;
if(j==1)
{
j=0;
num++;
}
if(num==99999999)
num=0;
wei=1;//至高电平
P0=EL_weima[0];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[num/10000000];//千万位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
wei=1;//至高电平
P0=EL_weima[1];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[num%10000000/1000000];//百万位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
wei=1;//至高电平
P0=EL_weima[2];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[num%10000000%1000000/100000];//十万位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
wei=1;//至高电平
P0=EL_weima[3];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[ num%10000000%1000000%100000/10000];//万位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
wei=1;//至高电平
P0=EL_weima[4];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[num%10000000%1000000%100000%10000/1000];//千位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
wei=1;//至高电平
P0=EL_weima[5];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[num%10000000%1000000%100000%10000%1000/100];//百位位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
wei=1;//至高电平
P0=EL_weima[6];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[num%10000000%1000000%100000%10000%1000%100/10];//十位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
wei=1;//至高电平
P0=EL_weima[7];//取位码
wei=0;//锁存
P0=0x00;//消影
duan=1;//至高电平
P0=EL_duanma[num%10000000%1000000%100000%10000%1000%100%10];//个位
duan=0;//锁存
delayms(8);
P0=0xff;//消影
}
}
|
|