📄 t14.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 + -