【正文】
RdFromROM_dword(PASSWORD_ADDR)。 DisplayOneChar(62*i,1,message[temp/0x10])。//關閉顯示 } lastdisflag=currentdisflag。 } keyscan()。 delay2(200)。 if(dispassword_||temp==(default_entrywords/10000)){ if(dispassword_amp。 return 1。 led=0。 buzzer=0。 status=input_password(amp。 if(SETUP_PASSWORD1==passwords) { refresh_display(0,0,tab6)。 delay2(200)。 } else { refresh_display(0,1,tab3)。 //I/O口初始化 TMOD=0x01。//啟動等待,等LCD講入工作狀態(tài) //interrupt_t0()。 //temp=RdFromROM_uint(PASSWORD_ADDR)。 dispassword_flag=0。 //refresh_display(0,1,cls)。 _nop_()。t agree with the disciplinary action your employer has taken against youdamagesbased agreement. In England and Wales, your solicitor can39。s antiracism taskforce, is in London for the Football Association39。s governing body, has also ordered an immediate investigation into the referee39。二十年的人生軌跡深深淺淺,突然就感覺到有些事情,非做不可了。City39。nearest CAB.For more information about making a claim to an employment tribunal, seeFurther help.Employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.Most people find making a claim to an employment tribunal challenging. If you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed under //延時124*8+10=1002us}g an employment tribunal claimEmployment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if: y++) { _nop_()。 delay2(200)。 //delay(1000)。 //RdFromROM_dword(PASSWORD_ADDR)。 //uint temp=0。 //開鎖 default:break。 } } else break。SETUP_PASSWORD2)){ if(SETUP_PASSWORD1==SETUP_PASSWORD2){ refresh_display(0,0,cls)。 //DisplayData(temp)。 refresh_display(0,0,tab5)。 } else { refresh_display(0,0,cls)。 if(status){ if(INPUT_PASSWORD==passwords) { refresh_display(0,1,cls)。 } return 0。 if(key==15){ *input=0。)。 while(1){ if(keycounts==0){ refresh_display((15PASSWORD_LENGTH)/2,1,amp。 }*/ DisplayListChar(X,Y,DData)。0xff。temp))){ key=temp。 } currentdisflag=1。 case 0xe7:key=9。 case 0xeb:key=6。 break。 break。}void keyscan(){ uchar temp=0。0xf0。led=1。break。break。 //串口發(fā)送01 case 0x18:key=2。 } else IRCOM[6]=IRCOM[6]+0x30。 } } if(IRCOM[2]!=~IRCOM[3]) { EX1=1。 while (IRIN) //計算IR高電平時長 { delay(1)。 delay(1)。 unsigned char q=0。 } //DisplayData(indata)。 //refresh_display(0,1,cls)。 //DisplayOneChar(72*i,1,message[temp%0x10])。 stop()。 write_byte(AddWr)。 respons()。i++) { scl=1。 delay11()。 delay11()。 scl=0。 sda=0。 scl=0。//顯示單個字符 ListLength++。 ListLength = 0。//限制X不能大于15,Y不能大于1 if (Y) X |= 0x40。}/****************************1602初始化函數**************************/void LCD_Init(void){ LCD_WriteCommand(0x38)。 delay2(1)。x0。void LCD_Init(void)。uchar code cls[]= { }。uchar code tab1[]={Input code }。 while(x) { for (i = 0。void delay1ms()。參考文獻[1] 張毅剛. 單片機原理及應用(第二版)[M]. 北京:高等教育出版社, 2010: 1642. [2] 林伸茂. 8051單片機徹底研究基礎篇[M]. 北京:人民郵電出版社,2003:24150. [3] 麥山,[J].1998.[4] 邱玉春,[J].2000:56163.[5] 張文崢,李先亮, 紅外通信在導航儀中的應用[J]. 2000.[6] [M].北京:高等教育出版社,2004:10156.[7] [M].北京:電子工業(yè)出版社,2008:3279.附錄1.元器件清單元器件名稱及規(guī)格數量51單片機1晶振12MHZ1瓷片電容30PF2電解電容10 uF 2USB1發(fā)光二極管2蜂鳴器1三極管PNP1AT24C021滑動變阻器10K1排阻10K1電阻1K4按鍵17自鎖按鍵1電阻10K3電阻10歐12.源程序includeinclude //包含_nop_()函數定義的頭文件define uchar unsigned chardefine uint unsigned intdefine delayNOP()。另外要考慮仿真與實物的不同,所以在畫PCB板時,除了注意與仿真保持一致還要注意在實物中的效果,因此要考慮元器件封裝及接入器件的電阻大小等等。若密碼正確模擬鎖led點亮并顯示right,密碼不正確顯示error蜂鳴器鳴叫并跳轉到最初的界面。這說明原始設定的密碼在調用的過程中被某一句程序改寫。3)存儲器硬件調試在本次設計中,如上述介紹為了防止掉電丟失采用AT24c02進行存儲數據。根據程序設計思路首先對矩陣鍵盤進行掃描,將對應的數字以*的形式顯示到1602上,這里要考慮1602的寫地址。仿真圖如下圖21所示: 圖21整體仿真圖仿真圖與PCB原理圖稍有差異,但在PROTEUS仿真中卻只有六個管腳,其中少的兩個管腳:管腳4為GND即直接接地,管腳8為VCC,為電源。即當接發(fā)光二極管接的IO口為低電平時led點亮(可認為開鎖)??紤]到安全性,將會將數字顯示成*,提示語及密碼均顯示在LCD的正中間以保證屏幕的整體美觀效果。蜂鳴器驅動電路的外圍設計:蜂鳴器、三極管再加上一個1K電阻接到單片機的IO口上。NEC格式的特征:(1)使用16位客戶代碼(2)使用8位數據代碼(3)引導碼間隔是9 ms + ms(4)使用38 kHz載波頻率下圖為接收頭上觀察到的波形: 圖11 遙控信號周期波形圖12 引導碼間隔圖NEC碼編碼原理如下:(1)數據幀結構(組成) 圖13 數據幀結構圖(2)“0”、“1”的表示方法: 圖14 “0”和“1”的發(fā)射圖 2)紅外接收本次設計采用的紅外遙控信號的接收集紅外接收和放大于一體,不需要添加其他外圍電路,就可以輸出與TTL電平兼容的信號。鍵盤的每個按鍵所代表的功能如下圖所示:圖6 44矩陣鍵盤 存儲電路設計關于密碼保護問題,除了由六位隨機數字組成,還要考慮到斷電之后數據會丟失的問題,為了防止掉電丟失,本設計采用AT24c02存儲器。因此這次設計中,采用LCD1602。由于本設計采用的遙控器比較普遍,因此編碼解碼問題可以很容易查閱到。此處的模擬鎖用發(fā)光二極管來代替。并腐蝕電路板。另外,其最大的缺點是利用簡單工具就能很容易地把鎖撬開。這樣不僅不安全,而且,每天都要帶鑰匙很不方便?;?1單片機的紅外遙控密碼鎖摘 要:關于如何加強家庭住房安全問題日益突出。再從我們身邊來說,家庭住房多采用一般的機械鎖。 研究現(xiàn)狀目前大部分的家庭用鎖采用的都是機械式的,一種鑰匙對應一把鎖,但鑰匙可復制,這無疑給人們的安全帶來極大威脅。第二步,使用Altium Designer 6完成原理圖,并設計PCB圖完成人工布線。方案二:同樣采用矩陣鍵盤,考慮到需要顯示多個字符的問題,此時采用液晶顯示LCD1602。紅外的控制是本設計的難點,遙控器是以紅外波的方式將特定的信號送給紅外接收頭。此外,每個數碼管的位選端必須要通過單片機的IO口進行控制,這就要占用多個IO口,且在PCB板中進行手動布線時會很復雜。如下圖所示,16個按鍵上分別實現(xiàn)不同功能,其中輸入數字鍵:0、9;以及相應的功能鍵。由于本次設計用到的遙控器采用的是NEC編碼協(xié)議,下面將重點描述NEC碼特性。以至于單片機的I/O 口是無法直接驅動,所以要使用放大電路用以驅動蜂鳴器,本次設計采用三極管來進行蜂鳴器的驅動。第二行用來顯示密碼。另外,密碼鎖是用發(fā)光二極管來模擬,只需用高低電平來控制IO口即可。本設計的主流程圖如下圖所示:開始有紅外中斷?接收碼正確否?密碼對否?調用中斷解碼程序紅外解碼報警開鎖中斷返回