基于51单片机随机数产生

基于51单片机随机数产生

ID:24903801

大小:103.50 KB

页数:13页

时间:2018-11-16

基于51单片机随机数产生_第1页
基于51单片机随机数产生_第2页
基于51单片机随机数产生_第3页
基于51单片机随机数产生_第4页
基于51单片机随机数产生_第5页
资源描述:

《基于51单片机随机数产生》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于51单片机随机数产生一:系统主要功能与设计方案功能:可以根据需要产生给定范围内的任何数字(0--999),显示于数码管上。设计方案:利用51单片机内部的定时器与中断结合,来模仿随机数的产生;单片机编程上电后,定时器便启动开始计数,计数范围可以预先设置,其设置的上限值被储存在24c02中;当中断0口产生低电平,进入中断函数读取定时器所跑的数值,经处理送入数码管显示。二:电路的硬件电路搭建如下图,这里我们采用74ls595来驱动数码管,另外,为了防止电流过大这里串联一个75欧电阻用于限流;当操控"启动"按键后,三个数码管开始跑数字,操控“选择”锁定当前显示的数字,达到随机数

2、产生的目的;考虑到,不同的人对随机数产生的范围要求不同,这里,通过操控“储存,加1,加10,”预设的上限值存储在24c02中。三:软件设计#include#include#defineucharunsignedchar#defineuintunsignedint#definedelay_nop_()/*定义空指令*/sbitds0=P2^0;//74ls595移位寄存器sbitst0=P2^1;sbitsh0=P2^2;sbitds1=P2^3;sbitst1=P2^4;sbitsh1=P2^5;sbitds2=P2^6;sbitst

3、2=P2^7;sbitsh2=P0^7;sbitp30=P3^0;//启动sbitp31=P3^1;//加1sbitp32=P3^2;//选择sbitp35=P3^5;//存储sbitp36=P3^6;//加10sbitscl=P0^0;//I2C时钟sbitdat=P0^1;//I2C数据bitack;/*应答标志位*/uchartemp,a,j,aa,flag,flag1,flag2,flag3;ucharb,c,d;ucharbb,cc,dd;ucharx,y,z,f,xx;ucharcodetab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0

4、xbe,0xe0,0xfe,0xf6};//共阴voiddelay1(uintZ){uintx,y;for(x=Z;x>0;x--)for(y=110;y>0;y--);}voidwrite0(unsignedchara){unsignedchari;st0=0;for(i=0;i<8;i++){if(a&0x01)ds0=1;elseds0=0;sh0=1;sh0=0;a>>=1;}st0=1;}voidwrite1(unsignedchara){unsignedchari;st1=0;for(i=0;i<8;i++){if(a&0x01)ds1=1;elseds1=0;

5、sh1=1;sh1=0;a>>=1;}st1=1;}voidwrite2(unsignedchara){unsignedchari;st2=0;for(i=0;i<8;i++){if(a&0x01)ds2=1;elseds2=0;sh2=1;sh2=0;a>>=1;}st2=1;}voidinit(){scl=1;dat=1;a=0;p30=1;p31=1;p32=1;p35=1;p36=1;bb=0;temp=0;TMOD=0x02;TH0=0x00;TL0=0x00;EA=1;ET0=1;TR0=1;IT0=1;EX0=1;}voidstart24(){dat=1;de

6、lay;scl=1;delay;delay;delay;delay;delay;dat=0;delay;}voidstop24(){dat=0;delay;delay;scl=1;delay;delay;dat=1;delay;delay;delay;delay;delay;}voidrespons24(){uchari;scl=1;delay;while((dat==1)&&(i<255));scl=0;delay;delay;delay;}voidwrite24(uchara){uchari,temp;temp=a;scl=0;delay;delay;for(i=0;i

7、<8;i++){temp=temp<<1;dat=CY;delay;delay;delay;delay;delay;scl=1;delay;delay;delay;delay;scl=0;delay;delay;}dat=1;//释放总线delay;delay;delay;delay;}ucharread24(){uchari,j,k;scl=0;delay;delay;delay;delay;dat=1;//释放总线delay;delay;delay;for(i=0;i<8;i++){scl=1;delay;de

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。