日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

山东大学单片机原理与应用实验 4.1 按键声光报警实验

發(fā)布時(shí)間:2024/3/7 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 山东大学单片机原理与应用实验 4.1 按键声光报警实验 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

一、實(shí)驗(yàn)題目

二、實(shí)驗(yàn)要求

三、實(shí)驗(yàn)過(guò)程及結(jié)果

四、實(shí)驗(yàn)流程圖

五、實(shí)驗(yàn)源代碼


一、實(shí)驗(yàn)題目

4.4按鍵聲光報(bào)警實(shí)驗(yàn)

二、實(shí)驗(yàn)要求

1、畫(huà)出實(shí)驗(yàn)的流程圖

2、編寫(xiě)源程序并進(jìn)行注釋

3、記錄實(shí)驗(yàn)過(guò)程

4、記錄程序運(yùn)行結(jié)果截圖

三、實(shí)驗(yàn)過(guò)程及結(jié)果

本實(shí)驗(yàn)聯(lián)系靜態(tài)按鍵識(shí)別,發(fā)光二極管驅(qū)動(dòng),以及外部中斷的使用方法,實(shí)驗(yàn)原理圖如下圖1所示(注:圖中元件編號(hào)中括號(hào)里面的內(nèi)容表示該元件所在的板子名稱(chēng),如CPU 表示該元器件位于CPU 板,以下類(lèi)同)。

圖1:實(shí)驗(yàn)原理圖

要求利用外部硬件中斷,按鍵按下一次產(chǎn)生一次外部中斷,在中斷服務(wù)程序中計(jì)數(shù)器加1,同時(shí),通過(guò)發(fā)光二極管的閃爍和蜂鳴器響的次數(shù),指示計(jì)數(shù)器的當(dāng)前值。當(dāng)計(jì)數(shù)到10時(shí),再次按鍵將重新從1開(kāi)始計(jì)。

1. 在實(shí)驗(yàn)前先采用軟件仿真的方式驗(yàn)證代碼。

?? 1)使用Proteus軟件搭建實(shí)驗(yàn)電路如下所示:

圖2:實(shí)驗(yàn)電路圖

?2)使用keil軟件新建工程與文件,將代碼寫(xiě)入,并且build,將hex文件導(dǎo)入

?3)觀察實(shí)驗(yàn)結(jié)果如下圖所示,可知程序運(yùn)行符合題意:

圖3:仿真實(shí)驗(yàn)結(jié)果

2. 硬件實(shí)驗(yàn)運(yùn)行

1)關(guān)掉實(shí)驗(yàn)箱電源。將 MCU 板插接在母板上,按照前面連接關(guān)系表將硬件連接好。

2)在仿真器斷電情況下將仿真器的仿真頭插在 MCU 板的MCU 插座上。將仿真器與開(kāi)發(fā)PC 機(jī)的通信口連接好,打開(kāi)實(shí)驗(yàn)箱及仿真器的電源。

3)運(yùn)行 Keil uVision2 開(kāi)發(fā)環(huán)境,建立工程int0_c.uV2,MCU 為AT89S51,包含啟動(dòng)文件STARTUP.A51。

4)按照實(shí)驗(yàn)功能要求創(chuàng)建源程序 int0.c 并加入到工程int0_c.uV2,并設(shè)置工程

int0_c.uV2 屬性,將其晶振頻率設(shè)置為11.0592MHz,選擇輸出可執(zhí)行文件,DEBUG方式選擇硬件DEBUG,并選擇其中的“WAVE V series MCS51 Driver”仿真器。
5)構(gòu)造(Build)工程 int0_c.uV2。如果編程有誤進(jìn)行修改,直至構(gòu)造正確為止。

6)運(yùn)行程序,按下 MCU 板上的KEY0 按鍵,觀察每次按鍵按下時(shí)主板上的發(fā)光二極管的閃爍和蜂鳴器響的次數(shù),是否符合程序要求,若不符合要求,分析出錯(cuò)原因,繼續(xù)重復(fù)第4、5 步的步驟,直至結(jié)果正確。

通過(guò)硬件實(shí)驗(yàn)可知,按下按鍵即可看到燈閃一次,蜂鳴器響一次;再次按下,就是閃兩次,響兩次。一直到最后閃10次,響十次;再次按下時(shí),跳回1重新開(kāi)始。

四、實(shí)驗(yàn)流程圖

圖4:實(shí)驗(yàn)流程圖

五、實(shí)驗(yàn)源代碼

#include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit led=P3^0; //定義led燈控制端口 sbit bell=P3^1; //定義蜂鳴器控制端口 sbit key=P3^2; //定義報(bào)警控制端口 uchar count,i; //定義計(jì)數(shù)器 void delay(uchar count) // 定義延時(shí)函數(shù) {uint x,y;for(x=count;x>0;x--) //循環(huán)嵌套for(y=110;y>0;y--); //1ms延時(shí)函數(shù) }//總延時(shí)為count*1 ms void show(uchar count) // 定義蜂鳴器報(bào)警并且燈光閃爍 { i=count; //循環(huán)變量for(;i!=0;i--) //函數(shù)循環(huán)次數(shù){led=0; //置低電平則LED燈亮bell=0; // 置低電平則蜂鳴器響delay(500); //調(diào)用延時(shí)函數(shù)led=1; //置高電平則LED燈滅bell=1; //置高電平蜂鳴器不響delay(500); //調(diào)用延時(shí)函數(shù)} } void s_timer0() interrupt 0 using 0 // 定義中斷程序 { EA=0; //屏蔽中斷請(qǐng)求if(count!=10)count=count+1; //count自增show(count); delay(50);//延時(shí)if(count==10) // 緊接著就要判斷是否是10,否則,再響十次之后,下一次不會(huì)是響一次。count=0; //若count為10則結(jié)束,重新賦值為0EA=1; //允許中斷 } void main() // 主程序 { EA=1; //允許中斷EX0=1; //允許外部中斷0中斷IT0=0; //設(shè)置外中斷0為電平觸發(fā)方式while(1); //循環(huán) }

初學(xué)單片機(jī),可能存在錯(cuò)誤之處,還請(qǐng)各位不吝賜教。

總結(jié)

以上是生活随笔為你收集整理的山东大学单片机原理与应用实验 4.1 按键声光报警实验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。