|
實(shí)驗(yàn)二中斷顯示控制 單片機(jī)控制led燈亮和滅,led燈初始狀態(tài)從左到右兩個(gè)燈間隔一個(gè)燈循環(huán)亮滅,然后從右到左循環(huán)亮滅,,當(dāng)按下按鍵,led燈全亮,然后全滅。然后再恢復(fù)循環(huán)。 二、實(shí)驗(yàn)過程 (一)實(shí)驗(yàn)項(xiàng)目的方案分析 1.設(shè)計(jì)原理 STC12C5A60S2單片機(jī)內(nèi)部包括微處理器、存儲(chǔ)器(存放程序指令或數(shù)據(jù)的ROM、RAM等)、輸入/輸出口(I/O口)及其他功能部件如定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)等。它們通過地址總線、數(shù)據(jù)總線和控制總線連接起來。 本實(shí)驗(yàn)充分利用了8051芯片的I/O引腳。系統(tǒng)已采用STC12C5A60S2系列單片機(jī)為中心器件來設(shè)計(jì)數(shù)碼管顯示系統(tǒng),實(shí)現(xiàn)數(shù)碼管循環(huán)顯示。 2.器件配置清單 表1器件配置表
(二)實(shí)驗(yàn)項(xiàng)目的硬件電路設(shè)計(jì) 通過Proteus仿真電路軟件搭建電路,電路圖如圖所示。
圖1硬件設(shè)計(jì)圖 (三)實(shí)驗(yàn)項(xiàng)目的程序設(shè)計(jì) 1、C51程序編寫
2、keil軟件調(diào)試截圖 通過Keil軟件進(jìn)行C51控制程序的編寫,通過不斷調(diào)試修改,最終的調(diào)試好的Keil 程序截圖如圖2所示。 
圖2調(diào)試無措的Keil程序 (四)實(shí)驗(yàn)項(xiàng)目的虛擬仿真 打開Keil C軟件將上面程序輸入,調(diào)試無誤后編譯輸出".hex"文件,打開Proteus軟件,將之前編譯好的".hex"文件加入到芯片中,開始運(yùn)行仿真。
(五)實(shí)驗(yàn)項(xiàng)目的實(shí)際驗(yàn)證電路及驗(yàn)證結(jié)果 將單片機(jī)C51程序編譯無誤后,生成HEX文件,通過STC-ISP下載到單片機(jī)中,下載的軟件界面如圖4所示,搭建的實(shí)際電路如圖5所示。 
圖4下載HEX文件到單片機(jī)
圖5面包板搭建的實(shí)際電路
以下為實(shí)際效果的截圖:
總結(jié): 感覺中斷程序比前兩個(gè)程序流水燈以及數(shù)碼管顯示要難一些,寫程序過程中遇到當(dāng)按下按鍵,led亮7個(gè),有一個(gè)沒亮,檢查發(fā)現(xiàn)是寫錯(cuò)了。改正后又有一些其他問題,在經(jīng)過反復(fù)改正后,終于完成了。
單片機(jī)源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define LED P0
- sbit key=P3^2;
- uint i;
- void delay_1ms(uint t)
- {
- uint i;
- while(t--)
- for(i=0;i<120;i++);
- }
- main()
- {
- EA=1;
- EX0=1;
- IT0=1;
- while(1)
- {
- LED=0xfa;
- for(i=0;i<5;i++)
- {
- delay_1ms(1000);
- LED=(LED<<1)|0x01;
- }
- for(i=0;i<5;i++)
- {
- delay_1ms(1000);
- LED=(LED>>1)|0x80;
- }
- }
- }
- void EX_INT0() interrupt 0
- { P1=0X00;
- delay_1ms(1000);
- P1=0XFF;
- }
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
外部中斷說明書.doc
(1.21 MB, 下載次數(shù): 15)
2019-1-12 21:46 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|