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

正文內(nèi)容

基于單片機的密碼鎖設(shè)計_課程設(shè)計報告-文庫吧資料

2025-07-10 19:23本頁面
  

【正文】 ite_12864dat(uchar dat) { rw=0。 e=0。 e=1。 delaynus(100)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護指令 } } 第 26 頁 /********************************************* 以下是對液晶的操作 向 12864 寫命令 ***************************************************/ void write_12864(uchar ) { rw=0。 writeset1302(0x90,0xa5)。 //根據(jù)寫月寄存器命令字,寫入月的初始值 writeset1302(0x8c,((13/10)4|(13%10)))。 //根據(jù)寫小時寄存器命令字,寫入小時的初始值 writeset1302(0x86,((10/10)4|(10%10)))。 //根據(jù)寫秒寄存器命令字,寫入秒的初始值 writeset1302(0x82,((35/10)4|(35%10)))。0x80) { //判斷時鐘芯片是否關(guān)閉 writeset1302(0x8E,0x00)。 flag= readset1302(0x81)。 return dat。 SCLK=1。 write1302(cmd)。 SCLK=0。 } /*********************************************************************** 第 25 頁 函數(shù)功能:在寫入命令字的情況下從 1302 中讀取一個字節(jié)的數(shù)據(jù) 入口參數(shù):命令子: cmd **************************************************************************/ uchar readset1302(uchar cmd ) { uchar dat。 delaynus(2)。 delaynus(2)。 if(DATA==1) dat=dat|0x80。i8。 //此處不能加這一句 delaynus(2)。 } /*******************************************************************8 函數(shù)功能:從 DS1302 中讀取一個字節(jié)數(shù)據(jù) /*********************************************************************/ uchar read1302(void) { uchar i,dat。 SCLK=1 。 write1302(cmd)。 RST=1。 第 24 頁 } } /*********************************************************************** 函數(shù)功能: 向 DS1302 在寫入命令的情況下寫入一個字節(jié)數(shù)據(jù) 入口參數(shù):命令: cmd 數(shù)據(jù): dat ***********************************************************************/ void writeset1302(uchar cmd ,uchar dat) { RST=0。 SCLK=0。 SCLK=1。0x01。i8。 delaynus(2)。 } } ****************************************************************** 函數(shù)功能:向 DS1302 寫一個字節(jié)數(shù)據(jù) 入口參數(shù): x /*******************************************************************/ void write1302(uchar dat) { uchar i。j0。in。 } /********************************************************** 延時若干毫秒 ********************************************************** void delayms(uint n) { uint i,j。in。 /******************************************************************** 函數(shù)功能: 延時若干微秒 入口參數(shù) n ***********************************************************************/ void delaynus(uint n) { uint i。 // sbit deng=P2^7。 sbit RST =P2^2。 第 23 頁 sbit DATA=P2^1。 sbit SCLK=P2^0。 // sbit psb=P2^7。 sbit e=P3^4。 sbit rw=P3^6。 sbit rs=P3^5。 uchar table3[]=年月日時分秒周 。 } } 日歷子程序 include include include include include include define uchar unsigned char define uint unsigned int uchar table1[]=課程設(shè)計 :。 if((tempamp。 P1=0x0f。 } return(key)。 temp=tempamp。break。break。break。break。 if(temp!=0xf0) { temp=P1。0xf0。 temp=P1。 } return(key)。 temp=tempamp。break。break。break。break。 if(temp!=0xf0) { temp=P1。0xf0。 temp=P1。 } return(key)。 temp=tempamp。break。break。break。break。 if(temp!=0xf0) { temp=P1。0xf0。 temp=P1。 } return(key)。 temp=tempamp。break。break。break。break。 //延時消抖動 if(temp!=0xf0) //穩(wěn)定以后再掃描 { temp=P1。0xf0。 temp=P1。 第 20 頁 uchar keyscan() { uchar temp。 } 按鍵掃描子程序 include include define uint unsigned int define uchar unsigned char uchar key。 writecmd(0x01)。 writecmd(0x0c)。 writecmd(0x30)。 // wela=0。 p++。 } void lcd_dis(uchar X,uchar Y,uchar *p) { lcd_pos(X,Y)。 pos=X+Y。 else if(X==2) X=0x88。 if(X==0) X=0x80。 EN=0。 EN=1。 P0=dat。 RW=0。 EN=0。 EN=1。 P0=cmd。 RW=0。j)。i) for(j=110。 for(i=xms。 //sbit wela=P2^7。 sbit EN=P3^4。 }*/ 液晶顯示子程序 include include define uint unsigned int define uchar unsigned char sbit RS=P3^5。 } } /*void rom_init() { init()。in。 p=temp。 } } void readpage(uchar addr,uchar temp[],uchar n) //讀出若干字節(jié) { uchar i。in。 p=temp。 } void writepage(uchar addr,uchar temp[],uchar n) //寫入若干字節(jié) { uchar i。 delayms(50)。 while(!flag)。 i=readbyte()。 check()。 start()。 check()。 while(flag)。 writebyte(0xa0)。 } 第 17 頁 uchar refrrom(uchar addr) //從地址 addr 中讀出數(shù)據(jù) { uchar i。 stop()。 check()。 while(flag)。 writebyte(addr)。 check()。 } void wrtorom(uchar addr,uchar temp) //向地址 addr 中寫入一個字節(jié) { start()。 byte=1。 SCL=0。 else byte=byteamp。 delaynp()。 SDA=1。 SCL=0。 } uchar readbyte() //讀一個字節(jié) { uchar count=8。 temp=1。 SCL=1。 else 第 16 頁 SDA=0。 if((tempamp。 while(count) { SCL=0。 //應(yīng)答標(biāo)志位,非應(yīng)答 else if(CY==0) SCL=0。 CY=SDA。 SCL=1。 SDA=1。 SCL=1。 SDA=0。 SCL=0。 SDA=0。 SDA=1。 delaynp()。 delaynp()。 _nop_()。 _nop_()。 void delayms(unsigned int xms)。 bit flag。 } } 存儲芯片子程 include include include define uint unsigned int define uchar unsigned char sbit SDA=P2^4。 init()。在這過程中遇到了很多問題,所以在這里也要真誠的感謝老師和同學(xué)們的幫助。第三,做硬件時不僅要合理的布局原件,而且要考慮到鏈接外接電路的端口問題。在做課程設(shè)計的過程也讓我們學(xué)到了很多東西,對于我自身來說 ,第一是知道了模塊化編程的形式及使用方法。說實話這次的做課程設(shè)計的成功對我們是一個很大的鼓勵。而密碼鎖則是每個模塊逐個調(diào)試,調(diào)試好了再連在一起總調(diào)。 軟件調(diào)試 開始時寫程序時是分兩大塊內(nèi)容進行的,萬 年歷與密碼鎖。最后發(fā)現(xiàn)有鏈接短路的現(xiàn)象。但當(dāng)將程序燒到芯片時,發(fā)現(xiàn)液晶屏不能顯示字符,當(dāng)旋轉(zhuǎn)下 LCD 調(diào)節(jié)背光的螺絲后,屏幕能正常顯示了。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1