⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t14.c

📁 51系列单片机在基本的开发例程
💻 C
字号:
/* t14.c用随机种子x=k,随机产生[0,99]区间的数在P0、P2口显示 */
#include <reg51.h>
#define a 25173
#define b 13849
#define c 65536
unsigned char h,l;
unsigned int i,j,k;
unsigned long x;
unsigned char led[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
sbit bb=P3^7;
bit flag;

void delay(i)
{ while(i--)
   { j=7650;while(j--);}
}

void key_int(void) interrupt 0 using 1
 { flag=1;}

void main(void)
 { P1=0xfe;           /* 定义 0 键产生 INT0 中断 */
   IE=0x81;
   while(1)
    { for(k=0;k<=65535;k++)	/* 随机产生种子k */
       { if(flag==1)		/* 中断发生 */
          { EX0=0;		/* 关闭中断 */
            bb=0;delay(1);bb=1;
            x=k;               /* k 转换为长整型 x */
            x=(a*x+b)%c;		/* 产生随机数 */
            x=x*100/c;			/* 转换为[0-99]的数 */
            h=x/10;l=x%10;		/* 分解为十位和个位 */
            if(h==0)P0=0xff;
            else P0=led[h];		/* 显示十位 */
            P2=led[l];			/* 显示个位 */
            delay(20);
            P0=0xff;P2=0xff;
            flag=0;EX0=1;		/* 开启中断 */
          }
       }
    }
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -