|
實驗內(nèi)容
1.使用外部中斷0,(S0開關(guān))作為控制開關(guān),外部中斷0工作在電平或跳沿觸發(fā)方式,上電后,P1.0位的LED燈點亮,按一次按鈕,點亮P1.7位的LED燈,熄滅P1.0位的LED燈。
2.使用外部中斷1,(S1開關(guān))作為控制開關(guān),外部中斷1工作在電平或跳沿觸發(fā)方式,在(1)步驟的基礎(chǔ)上,按壓S1開關(guān),實現(xiàn)上電狀態(tài),即,P1.0位的LED燈點亮,熄滅P1.7位的LED燈。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
-258c5d0876ccfaa1.png (24.69 KB, 下載次數(shù): 106)
下載附件
2020-6-22 22:49 上傳
-6c1a9a6fc2bf508c.png (23.9 KB, 下載次數(shù): 94)
下載附件
2020-6-22 22:49 上傳
單片機源程序如下:
- //實驗1
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit P10=P1^0;
- sbit P17=P1^7;
- void main()
- {
- EA=1; //總中斷允許
- EX0=1; //允許外部中斷0中斷
- IT0=1; //選擇外部中斷0為跳沿觸發(fā)
- while (1)
- {
- P10=0;
- }
- }
- void int0() interrupt 0 using 0 //外部中斷0的中斷函數(shù) 中斷號n=0,選擇第0區(qū)工作寄存器區(qū)
- {
- EX0=0; //禁止外部中斷0中斷
- while(1)
- {
- P10=1;
- P17=0;
- }
- EX0=1;
- }
復(fù)制代碼- //實驗2
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit P10=P1^0;
- sbit P17=P1^7;
- void main()
- {
- EA=1; //總中斷允許
- EX0=1; //允許外部中斷0中斷
- IT0=1; //選擇外部中斷0為跳沿觸發(fā)
- EX1=1;
- IT1=1;
- PX1=1;
- while (1)
- {
- P10=0;
- }
- }
- void int0() interrupt 0 using 0 //外部中斷0的中斷函數(shù) 中斷號n=0,選擇第0區(qū)工作寄存器區(qū)
- {
- EX0=0; //禁止外部中斷0中斷
- while(1)
- {
- P10=1;
- P17=0;
- }
- EX0=1; //中斷返回前,打開外部中斷0中斷
- }
- void int1() interrupt 2 using 2
- {
- uchar m;
- EX1=0;
- while(1)
- {
- P10=0;
- P17=1;
- }
- EX1=1;
- }
-
復(fù)制代碼
全部資料51hei下載地址:
實驗二 外部中斷實驗.zip
(94.99 KB, 下載次數(shù): 35)
2020-6-22 22:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|