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

正文內容

電子密碼鎖總體設計方案-資料下載頁

2025-04-25 13:39本頁面
  

【正文】 [i] =39。 39。 } }3) 、仿真結果圖示密碼修改仿真結果圖 報警模塊程序設計1) 、設計原理本次設計的密碼鎖報警系統(tǒng),當輸入密碼錯誤后,系統(tǒng)自動給出提示“ERROR”,并且會提示用戶當前輸入錯誤密碼次數“first”、“second”、:“third”。當連續(xù)三次輸入密碼錯誤后,系統(tǒng)報警,并給出提示“Waiting....”,并立即鎖定鍵盤,終止任何操作。2)、實現程序 while(1) //一次的時間 { if(t1==100) //3000為設置的時間 {t1=101。 for(m=0。m10。m++) //時間報警 { beep()。 delay(5)。 } Display_String( ,0x40)。 Display_String(timeover inputagain ,0x00)。 //超時之后的顯示 Clear_Password()。 break。 EA=0。 ET0=0。 TR0=0。 } else { break。 EA=0。 ET0=0。 TR0=0。 } break。 } } break。 3)、仿真結果圖 報警系統(tǒng)模塊仿真結果圖 通信(虛擬)模塊程序設計1) 、設計原理單片機串口通信程序的實現方法實際應用中,單片機通信程序一般采用中斷方式與微機通信,微機做為主控方。當單片機收到微機發(fā)送的地址信號時,便轉入中斷服務程序,向微機發(fā)送數據。主程序首先完成串行口的初始化、設置串口的工作方式、串口波特率,數據位、校驗位等。 2) 、具體實現程序oid Puts_to_SerialPort(uchar *s){while(*s!=39。\039。){Putc_to_SerialPort(*s)。s++。delay(5)。}}void trans(){ SCON=0x40。 //串口模式 TMOD=0x20。 //T1工作模式 TH1=0xfd。 //波特率 TL1=0xfd。 PCON=0x00。 //波特率不倍增 TI=0。 TR1=1。delay(5)。//向主機發(fā)送數據Puts_to_SerialPort(password: )。Puts_to_SerialPort(UserPassword)。Puts_to_SerialPort( )。Puts_to_SerialPort(Time)。Puts_to_SerialPort(\r\n)。delay(50)。while(1){if(k=15){break。}}}3)、仿真結果圖示虛擬通信模塊仿真結果圖附 錄 電路原理圖 Proteus仿真圖 PCB板圖 源程序includeincludeinclude//include define delay4us()。define uchar unsigned chardefine uint unsigned intuint t1,t2。 //時間設置變量uint flag=0。 //密碼保存標志uint m,n=1。uint flag1=0。uint flag2。uchar k。uint change=0。 //是否切換uchar pre_keyno=16,KeyNo=16。inputnb=0。uchar idata DSY_BUFFER[17]= 。uchar idata mima[]=111111。 //用戶輸入密碼uchar idata mima1[7]=。uchar mima2[4]=。uchar idata UserPassword[10]= 。//用戶輸入的密碼uchar IS_Valid_User = 0。uchar i = 0。sbit SCL = P3^2。 //串行時鐘sbit SDA = P3^3。 //串行數據sbit rs = P2^0。sbit rw = P2^1。sbit eq = P2^2。sbit LED_OPEN = P2^7。//開鎖燈亮sbit BEEP = P3^7。//蜂鳴器void beep()。void Clear_Password()。void Display_String(uchar *str,uchar lineno)。//在液晶指定行顯示字符串void delay(uint x)。 //延時void key_main()。uchar keys_scan()。//DS1302初始化sbit IO=P2^5。 //1302數據線sbit SCLK=P2^4。 //1302時鐘線sbit RST=P2^3。 //復位uint num=0。//uchar idata Time[]={Time: *00:0000*}。 //時間數組uchar idata date_time[7]。 //從ds1302讀取的當前日期時間////向串口發(fā)送字符void Putc_to_SerialPort(uchar c){SBUF=c。while(TI==0)。TI=0。}//向串口發(fā)送字符串void Puts_to_SerialPort(uchar *s){while(*s!=39。\039。){Putc_to_SerialPort(*s)。s++。delay(5)。}}void trans(){ SCON=0x40。 //串口模式 TMOD=0x20。 //T1工作模式 TH1=0xfd。 //波特率 TL1=0xfd。 PCON=0x00。 //波特率不倍增 TI=0。 TR1=1。delay(5)。//向主機發(fā)送數據Puts_to_SerialPort(password: )。Puts_to_SerialPort(UserPassword)。Puts_to_SerialPort( )。Puts_to_SerialPort(Time)。Puts_to_SerialPort(\r\n)。delay(50)。while(1){if(k=15){break。}}}////向寫數據void write_ds1302(uchar dat){uchar i。for(i=0。i8。i++){IO=dat amp。 0x01。 //保持最后一位為,讀狀態(tài)SCLK=1。delay(1)。SCLK=0。dat = 1。}}//從讀數據uchar read_ds1302(){uchar i,b=0x00。for(i=0。i8。i++){b |= _crol_((uchar)IO,i)。SCLK=1。delay(1)。SCLK=0。}return b/16*10+b%16。 //與BCD碼轉換}//從指定位置讀數據uchar read_data(uchar addr){uchar dat。RST=0。SCLK=0。RST=1。write_ds1302(addr)。dat=read_ds1302()。SCLK=1。RST=0。return dat。}//讀取當前日期時間void read_date_time(){uchar i,addr=0x81。for(i=0。i7。i++){date_time[i]=read_data(addr)。addr+=2。}}void format_datetime(uchar d,uchar *p){p[0]=d/10+39。039。p[1]=d%10+39。039。}//時間顯示void xianshi(){while(change==0){read_date_time()。format_datetime(date_time[2],Time+7)。 //時間轉換format_datetime(date_time[1],Time+10)。format_datetime(date_time[0],Time+13)。Display_String(Time,0x40)。keys_scan()。if(k==15)change=1。}keys_scan()。Display_String(your password... ,0x00)。 //在第行顯示標題Display_String( ,0x40)。 }void tgx() //時間更新{read_date_time()。format_datetime(date_time[2],Time+7)。 //時間轉換format_datetime(date_time[1],Time+10)。format_datetime(date_time[0],Time+13)。}/*void init()//中斷設置{ t1=0。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 TMOD=0x11 。 EA=1。 ET0=1。 TR0=1。 //啟動定時器 }void init1()//中斷設置{ TMOD=0x11 。 t2=0。 TH1=(6553650000)/256。 TL1=(6553650000)%256。 EA=1。 ET1=1。 TR1=1。 //啟動定時器 }void timer0() interrupt 1 //中斷一設置一次輸入的時間間隔 { TH0=(6553650000)/256。 TL0=(6553650000)%256。 t1++。 }void timer1() interrupt 3 //中斷二設置總時間{ TH1=(6553650000)/256。 TL1=(6553650000)%256。 t2++。}*/ //鍵盤 void delay_key(uint x){ uchar i。 while (x) for(i=0。i120。i++)。}//矩陣鍵盤掃描uchar keys_scan(){ uchar temp。 P1=0x0f。 delay_key(2)。 temp=P1^0x0f。 switch(temp) { case 1: k=0。break。 case 2: k=1。break。 case 4: k=2。break。 case 8: k=3。break。 default:break 。 } P1=0xf0。 delay_key(2)。
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1