1. 程式人生 > >數碼管無限循環

數碼管無限循環

oid 控制 fin show fine amp while k60 unsigned

#include"STC15F2K60S2.H"
#include"intrins.h"
#define uint unsigned int
#define uchar unsigned char
#define led_output P0
sbit WR=P3^6;
uchar code tabe[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code tabe1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar mack;
void Delay100ms(unsigned int m) //@11.0592MHz
{
unsigned char i, j, k;
unsigned int z;
for(z=m;z>0;z--)
{
_nop_();
_nop_();
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
}

void show( )
{
P2=0xff;//打開段選控制Y7
led_output=tabe[mack%10];//亮
P2&=0x1f; //關閉U7鎖存器
P2=0xdf;//打開位選控制Y6
led_output=tabe1[mack%9];//
WR=0; //始終為0
P2&=0x1f; //關閉U8鎖存器
Delay100ms(10);
}
void main( )
{
while(1)
{
show( );//數碼管顯示
mack++;//顯示的數值自動加一
Delay100ms(10);
if(mack==10)//判斷mack為99時,給它清0
mack=0;
}
}

第一種方法

數碼管無限循環