實驗總結:
1, 在最后加到99時要進行判斷使其在加等于一。
2, 在減到0時再減時進行判斷使其再減等于99。
3, 在編程時進行循環的語句時經常出錯,但在舍友的幫助下完成了。
4, 剛開始電源接錯了。
電路原理圖如下:
0.png (90.85 KB, 下載次數: 57)
下載附件
2018-12-21 01:26 上傳
程序流程圖:
0.png (8.16 KB, 下載次數: 56)
下載附件
2018-12-21 01:26 上傳
單片機源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- #define ucharunsigned char
- #define uint unsigned int
- sbit key1=P3^2; //將按鍵1接到p3.2
- sbit key2=P3^3; //將按鍵2接到p3.3
- charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //
- char i;
- void delay(uint z) //延時函數
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main(){
- EA=1; //總中斷允許
- EX0=1; //INT0允許
- EX1=1; //脈沖觸發
- while(1);
- }
- void INT0_srv(void) interrupt 0 using 1
- {
- delay(300);
- if(INT0==0) //INT0按下
- {i++; //向后加一位
- if(i==100) //當數字為100是輸零
- i=0;
- P1=led_mod[i/10]; //p1輸出十位
- P2=led_mod[i%10];
- while(key1==1); //p2輸出個位
- }
- }
- void INT1_srv(void) interrupt 2 using 2
- {
- delay(30);
- if(INT1==0) //INT1觸發
- {i--; //后減一位
- if(i<0)
- i=99; //零減一位輸出99
- P1=led_mod[i/10]; //
- P2=led_mod[i%10]; //
- while(key2==0);
- }
復制代碼
實驗二 單片機.docx
(178.95 KB, 下載次數: 14)
2018-12-20 19:00 上傳
點擊文件名下載附件
定時 下載積分: 黑幣 -5
|