freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c51多功能電子密碼鎖設(shè)計(jì)源程序代碼畢業(yè)設(shè)計(jì)-文庫吧資料

2025-03-06 09:06本頁面
  

【正文】 ,無源蜂鳴器內(nèi)部不帶振蕩源。tt2)。 for(tt2=frq。tt2)。 for(tt2=frq。tt10。 蜂鳴器簡(jiǎn)單發(fā)聲程序: void beep_( uint frq,uint time) { uint tt1,tt2。因此,我們可以通過程序控制 鳴器發(fā)出聲音和關(guān)閉聲音。 } 五.蜂鳴器發(fā)聲設(shè)計(jì) 蜂鳴器的工作原理 蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī) IO 引腳輸出的電流較小,單片機(jī)輸出的 TTL 電平基本上驅(qū)動(dòng)不了蜂鳴器,因此需要增加一個(gè)電流放大的電路,一多半采取一個(gè)三極管來放大驅(qū)動(dòng)蜂鳴器。 } MOSI=0。 } SCLK=1。 } dat=1。0x01) { MOSI=1。 I_delay()。i8。 SS=0。 } //******************功 能 : 發(fā)送數(shù)據(jù) 返回接收 數(shù)據(jù) uchar ISD_SendData(uchar BUF_ISD) { uchar i,dat=BUF_ISD。//PD 掉電 ISD_SendData(0x00)。 SS=1。//RD_STATUS 狀態(tài)寄存器 ISD_SendData(0x00)。 while((statuamp。 statu=ISD_SendData(0x00)。 ISD_SendData(0x05)。 ISD_SendData(0x00)。0x00ff)。 ISD_SendData(StartAdr8)。 ISD_SendData(StartAdramp。 ISD_SendData(0x80)。 SS=1。//RD_STATUS 狀態(tài)寄存器 ISD_SendData(0x00)。 while((statuamp。 delay_ms(50)。//RD_REC_PTR 錄音寄存器 ISD_SendData(0x0C)。 ISD_SendData(0x65)。 SS=1。 ISD_SendData(0x01)。// SS=1。} ISD_SendData(0x03)。} else if(num==0x13){StartAdr=0x0123。} else if(num==0x12){StartAdr=0x0108。} 電子綜合設(shè)計(jì)與制作實(shí)踐 設(shè)計(jì)報(bào)告 19 else if(num==0x11){StartAdr=0x00f7。} else if(num==0x10){StartAdr=0x00e7。} else if(num==0x0f){StartAdr=0x00d7。} else if(num==0x0e){StartAdr=0x00c5。} else if(num==0x0d){StartAdr=0x00b2。} else if(num==0x0c){StartAdr=0x00a3。} else if(num==0x0b){StartAdr=0x0097。} else if(num==0x0a){StartAdr=0x0088。} else if(num==0x09){StartAdr=0x007a。} else if(num==0x08){StartAdr=0x006c。} else if(num==0x07){StartAdr=0x005f。} else if(num==0x06){StartAdr=0x0050。} else if(num==0x05){StartAdr=0x0046。} else if(num==0x04){StartAdr=0x003d。} else if(num==0x03){StartAdr=0x0034。} else if(num==0x02){StartAdr=0x0029。 { if(num==0x01){StartAdr=0x001e。 void Play(uchar num) //形參 =1 放 1 段, 2 放 2 段, 3 放 3 段, 4 放 4 段。 tab++。i16。 write_(0x80+0x40)。 tab++。i16。 write_(0x80)。 else TR1=0。 miao。 t0++。 } void T_rupt() interrupt 3 { TH1=(6553650000)/256。 write_date(0x30+dat1)。 dat2=dat%10。 } void w_cht(uchar dat) { uchar dat1,dat2。 ET1=1。 TL1=(6553650000)%256。 } /************************定時(shí)中斷 ***********************/ void intrupt() { TMOD=0X10。 write_(0x01)。 write_(0x06)。 write_(0x0c)。 電子綜合設(shè)計(jì)與制作實(shí)踐 設(shè)計(jì)報(bào)告 17 write_(0x38)。 lcden=0。 lcden=1。 lcden=0。 } void write_date(uchar date) { P0=date。 delay(5)。 delay(5)。 rs=0。 //清除 LCD 的顯示內(nèi)容 display2(date)。 //控制兩字之間顯示速度 } delay_gd(200)。 if(temp==13) break。 i++。\039。 //設(shè)置顯示位置為第一行的第 1 個(gè)字符 i = 0。 電子綜合設(shè)計(jì)與制作實(shí)踐 設(shè)計(jì)報(bào)告 16 lcd_wcmd(0x06)。 // 初始化 LCD display2(date)。 } void lcd_gundong(uchar *dis1) { uchar i。 lcd_wcmd(0x01)。 lcd_wcmd(0x06)。 lcd_wcmd(0x0c)。 } void lcd_init() { //LCD 初始化設(shè)定 lcd_wcmd(0x38)。 _nop_()。 _nop_()。 lcden = 1。 _nop_()。 _nop_()。 lcden = 0。 rs = 1。 電子綜合設(shè)計(jì)與制作實(shí)踐 設(shè)計(jì)報(bào)告 15 } void lcd_pos(uchar pos) { //設(shè)定顯示位置 lcd_wcmd(pos | 0x80)。 _nop_()。 _nop_()。 lcden = 1。 _nop_()。 _nop_()。 _nop_()。 lcden = 0。 rs = 0。 return result。 0x80)。 _nop_()。 _nop_()。 lcden = 1。 rs = 0。 _nop_()。 _nop_()。 i 動(dòng)態(tài)顯示 主要程序 : void delay_gd(int ms) { // 延時(shí)子程序 int i。 } } 三.液晶顯示設(shè)計(jì) 由于是顯示數(shù)據(jù),所以就要用到如下幾個(gè)顯示子程序,分別是:開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯(cuò)誤后的提示子程序。//權(quán)限 default:return 12。//退出 case 0x77:return 16。//清零 case 0x7b:return 15。//開啟 case 0x7d:return 14。//確定 case 0x7e:return 13。//0 模式 case 0xb7:return 11。//刪除 case 0xd7:return 0。//9 case 0xe7:return 10。//8 case 0xbb:return 9。//7 case 0xdb:return 8。//6 case 0xeb:return 7。//5 case 0xbd:return 6。//4 case 0xdd:return 5。//3 case 0xed:return 4。//2 case 0xbe:return 3。//1 按下相應(yīng)的鍵顯示相對(duì)應(yīng)的碼值 case 0xde:return 2。 } /**********************按鍵值處理函數(shù),返回掃鍵值 ******************/ uchar KeyPro(void) { switch(KeyScan()) { case 0xee:return 1。 return Val。 delay(10)。 Val+=0x07。 //檢測(cè)第四行 if(KeyPort!=0xf7) { Val=KeyPortamp。 return Val。 delay(10)。 Val+=0x0b。 //檢測(cè)第三行 if(KeyPort!=0xfb) { Val=KeyPortamp。 return Val。 delay(10)。 Val+=0x0d。 //檢測(cè)第二行 if(KeyPort!=0xfd) { Val=KeyPortamp。 return Val。 delay(10)。 Val+=0x0e。 //檢測(cè)第一行 if(KeyPort!=0xfe) { Val=KeyPortamp。 //高四位置高,低四位拉低 電子綜合設(shè)計(jì)與制作實(shí)踐 設(shè)計(jì)報(bào)告 12 if(KeyPort!=0xf0) //表示有按鍵按下 { delay(10)。 主要程序如下: uchar KeyScan(void) //鍵盤掃描函數(shù),使用行列逐級(jí)掃描法 { uchar Val。當(dāng) 89C52 的 口輸出為低電平時(shí),蜂鳴器產(chǎn)生蜂鳴音, 89C52 輸出為高電平時(shí),蜂鳴器不發(fā)聲。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時(shí)約需要 100mA 驅(qū)動(dòng)電流。 當(dāng)密碼連續(xù)輸入 3次錯(cuò)誤之后語音芯片給出語音提示“連續(xù) 3 次密碼輸入錯(cuò)誤,鍵盤已鎖定”。通過 LCD 顯示屏,可以清楚的判斷出鎖所處的狀態(tài)。若密碼修改太簡(jiǎn)單,則顯示“ Code Is Too Simple”。當(dāng)密碼輸入完成時(shí),按下確認(rèn)鍵,如果輸入的密碼正確的話, LCD 上顯示“ Successfully Lock Is Opened”,單片 機(jī)其中 引角會(huì)輸出低電平,使三極管 Q1 導(dǎo)通,電磁鐵吸合,電子密碼鎖被打開,如果密碼不正確, LCD 顯示屏?xí)@示“ Code Error”, 輸出的是高電平,電子密碼鎖不能被打開。同理只有按下退出按鍵后顯示器才處于 屏保 狀態(tài)。本設(shè)計(jì)的顯示部分由液晶顯示器LCD1602 取代普通的數(shù)碼管來完成。未輸入密碼時(shí),單獨(dú)按下 0鍵具有 切換模式 功能,密碼輸入后 0 作為數(shù)字鍵。清零鍵 鍵的功能是當(dāng)前 輸入數(shù)據(jù) 清零。其中 權(quán)限 鍵的功能是設(shè)置密碼修改權(quán)限,只有管理員可以登錄修改密碼。方法是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為 1,則所按下的鍵不在此列;如果不全為 1,則所按下的鍵必在此列,而且是在與零電平行線相交的交點(diǎn)上的那個(gè)鍵。如果有按鍵按下,總會(huì)有一根行線電平被拉至低電平從而使行線不全為 1。 對(duì)照?qǐng)D四所示的 4 4鍵盤,說明線反轉(zhuǎn) 法 工作原理 : 首先辨別鍵盤中有無鍵按下 ,有單片機(jī) I/O 口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。 當(dāng)確認(rèn)有按鍵按下后,下一步就要識(shí)別哪一個(gè)按鍵按下。其原理圖如下: 電子綜合設(shè)計(jì)與制作實(shí)踐 設(shè)計(jì)報(bào)告 7 圖 二 矩陣鍵盤 每一條水平(行線)與垂直線(列線)的交叉處不相通,而
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1