求助:用C语言编写一个单片机随机数
发布网友
发布时间:2022-04-22 04:49
我来回答
共1个回答
热心网友
时间:2023-09-20 20:54
#include <reg52.h>
sbit Button = P1^0;
void Delay()
{
unsigned char i;
for(i=0;i<125;i++);
}
void main()
{
unsigned char DisplayData;
unsigned char DisplayCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
TMOD=0X01;
TH0=0;
TL0=0;
ET0=1;
TR0=1;
EA=1;
while(1)
{
//利用定时器制造随机数,取出0~9的随机数
DisplayData=TH0%10;
if(Button == 0)
{
while(Button == 0)
{
P0=DisplayCode[DisplayData];
P2=0;
Delay();
}
}
}
}
void T0() interrupt 1
{
TH0=0;
TL0=0;
}
说明一下,楼主没有给出图,我假设以P1^0接开关了,P0为数码管段码,P2为数码管位选,如果P2没接138译码器就把0换成0x01就好了,主要是利用定时器的内部计数器来作随机数,因为内部计数器没变化一次为1us,所以我们没法把握,把计算器低位数据取出后经过%10的运算,就能取到0~9的数据了