|
新手學(xué)習(xí),了解到隨機(jī)函數(shù)的運(yùn)用,LED燈的控制,中斷函數(shù)的運(yùn)用等。
八個(gè)位置不同的指示燈代表地鼠。每次隨機(jī)亮一個(gè)燈。
有一個(gè)按鍵可以對(duì)燈亮的間隔進(jìn)行調(diào)整,分別為0.5s,1s,2s,3s。
包含Proteus原理圖和C源程序。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (11.08 KB, 下載次數(shù): 56)
下載附件
2018-3-4 02:44 上傳
0.png (50.79 KB, 下載次數(shù): 53)
下載附件
2018-3-4 02:44 上傳
單片機(jī)源程序如下:
- #include<reg52.h>
- #include<stdlib.h>
- #include<math.h>
- #define u8 unsigned char
- #define u16 unsigned int
- #define u32 long
- sbit KEY=P3^2 ;
- u8 led[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- u8 flag=0;
- u8 n=1,m=1,x=1;
- void main()
- {
- u8 j=0,a,b;
- P0=0;
- TMOD=0x01;
- TH0=15536/256;
- TL0=15536%256;
- ET0=1;
- EA=1;
- TR0=1;
- while(1)
- {
- if(KEY==0)
- {
- for(b=38;b>0;b--)
- {
- for(a=130;a>0;a--);
- }
- if(KEY==0)
- {
- while(KEY==0){P0=0XFF;}
- n++;
- if(n==3||n==5){
- n++;
- }
- if(n==7){
- n=1;
- }
-
- }
-
- }
- if(x==1)
- {
- x=0;
- j=(rand()%8);
- }
- P0=led[j];
- }
-
- }
- void TT() interrupt 1
- {
- flag++;
- if(flag>=(n*10))
- {
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
打地鼠仿真及程序.zip
(16.81 KB, 下載次數(shù): 149)
2018-3-3 20:28 上傳
點(diǎn)擊文件名下載附件
新手學(xué)習(xí)資料 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|