單片機(jī)課程設(shè)計(jì)動(dòng)態(tài)密碼實(shí)時(shí)發(fā)送_第1頁
單片機(jī)課程設(shè)計(jì)動(dòng)態(tài)密碼實(shí)時(shí)發(fā)送_第2頁
單片機(jī)課程設(shè)計(jì)動(dòng)態(tài)密碼實(shí)時(shí)發(fā)送_第3頁
單片機(jī)課程設(shè)計(jì)動(dòng)態(tài)密碼實(shí)時(shí)發(fā)送_第4頁
單片機(jī)課程設(shè)計(jì)動(dòng)態(tài)密碼實(shí)時(shí)發(fā)送_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)原理及應(yīng)用課程設(shè)計(jì)單片機(jī)課程設(shè)計(jì)設(shè)計(jì)課題: 動(dòng)態(tài)密碼的實(shí)時(shí)發(fā)送 專業(yè)班級(jí): 電子信息工程12級(jí) 小組組號(hào): 第六組 小組成員: 指導(dǎo)老師: 劉恩博老師 設(shè)計(jì)時(shí)間: 2015年6月29日 信息科學(xué)與技術(shù)學(xué)院3目 錄一、單片機(jī)課程設(shè)計(jì)任務(wù)書 11、課程設(shè)計(jì)題目:動(dòng)態(tài)密碼的實(shí)時(shí)發(fā)送12、總體要求:13、課程設(shè)計(jì)具體要求:1二、單片機(jī)課程設(shè)計(jì)報(bào)告21、設(shè)計(jì)項(xiàng)目簡介22、電路原理圖23、系統(tǒng)功能描述24、程序流程圖35、心得體會(huì)46、參考文獻(xiàn)4附件一:仿真調(diào)試4附件二:程序6甲機(jī)程序:6乙機(jī)程序:11一、單片機(jī)課程設(shè)計(jì)任務(wù)書1、課程設(shè)計(jì)題目:動(dòng)態(tài)密碼的實(shí)時(shí)發(fā)送2、總體要求:1、實(shí)現(xiàn)雙機(jī)(單片機(jī))的

2、通信,甲機(jī)每隔60S發(fā)送一組隨機(jī)密碼,用隨機(jī)函數(shù)實(shí)現(xiàn),每組密碼有6位數(shù)字組成;2、乙機(jī)接收到密碼后,在LCD液晶屏上實(shí)時(shí)顯示接收到的密碼3、在乙機(jī)的LCD液晶屏上第1行顯示接收的密碼第二行顯示倒計(jì)時(shí)標(biāo)志(60S)3、課程設(shè)計(jì)具體要求:選定好設(shè)計(jì)項(xiàng)目后,課程設(shè)計(jì)應(yīng)達(dá)到以下要求編寫項(xiàng)目功能說明書,確定應(yīng)用系統(tǒng)的功能和具體參數(shù)設(shè)計(jì)電路原理圖制作硬件設(shè)計(jì)和調(diào)試程序課程設(shè)計(jì)報(bào)告二、單片機(jī)課程設(shè)計(jì)報(bào)告1、設(shè)計(jì)項(xiàng)目簡介隨著現(xiàn)代生活的推進(jìn),動(dòng)態(tài)密碼在人們的生活中已經(jīng)普及,此動(dòng)態(tài)密碼的實(shí)時(shí)發(fā)送是一款基于單片機(jī)AT98C51(2)的計(jì)時(shí)工具,它的工作原理是利用程序使甲機(jī)每60ms發(fā)送一組隨機(jī)密碼,用隨機(jī)函數(shù)實(shí)現(xiàn),

3、每組密碼有6位數(shù)字組成;乙機(jī)接收到密碼后,在LCD液晶屏上實(shí)時(shí)顯示接收到的密碼,在LCD液晶屏上設(shè)置接收密碼的倒計(jì)時(shí)(60S)標(biāo)志2、電路原理圖 圖一:電路原理圖3、系統(tǒng)功能描述按下開始鍵以后,甲機(jī)發(fā)送開始信號(hào)B給乙機(jī),乙機(jī)接受到信號(hào)并開始顯示60S倒計(jì)時(shí),倒計(jì)時(shí)結(jié)束后乙機(jī)發(fā)送倒計(jì)時(shí)結(jié)束信號(hào)C給甲機(jī),甲機(jī)開始產(chǎn)生密碼并發(fā)送密碼給乙機(jī),乙機(jī)等待接受密碼并在1602上顯示。4、程序流程圖甲機(jī):初始化初始化 讀串口讀鍵盤乙機(jī)開始鍵?N接收到BN發(fā)送B-乙Y倒計(jì)時(shí)60S讀串口N接收到C發(fā)送信號(hào)CY接受密碼產(chǎn)生隨機(jī)密碼顯示密碼發(fā)送密碼5、心得體會(huì)單片機(jī)是我所學(xué)專業(yè)的主要課程之一,因此我認(rèn)為單片機(jī)課程設(shè)計(jì)

4、是十分必要而且十分重要的。盡管剛剛拿到課程設(shè)計(jì)題目時(shí)有點(diǎn)迷惘,不知道如何著手,但通過上網(wǎng)和圖書館查閱相關(guān)資料,自己認(rèn)真鉆研以及虛心詢問同學(xué),終于解決了一個(gè)又一個(gè)的困難和障礙,成功完成了任務(wù)。通過本次的單片機(jī)課程設(shè)計(jì),不僅大大地豐富了我的理論知識(shí),而且在實(shí)踐過程中更令我學(xué)會(huì)了堅(jiān)持、耐心和努力。此次單片機(jī)課程設(shè)計(jì)需要運(yùn)用到許多之前所學(xué)過的知識(shí),令我認(rèn)識(shí)到自己以前學(xué)習(xí)的一些不足之處,例如對(duì)以前所學(xué)知識(shí)的理解不夠深刻,掌握得不夠牢固,運(yùn)用不夠靈活。這讓我懂得了認(rèn)真學(xué)習(xí)的重要性,以及要孜孜不倦地鉆研所學(xué)過的知識(shí),做得融會(huì)貫通,不能一覽而過,不求甚解。在邊學(xué)習(xí)邊動(dòng)手的過程中,我對(duì)電子時(shí)鐘的構(gòu)造以及原理有了

5、進(jìn)一步的了解,同時(shí)也加深和鞏固了我對(duì)單片機(jī)匯編語言的認(rèn)識(shí)。除此之外,由于是第一次做單片機(jī),因此在此次課程設(shè)計(jì)的過程中,無論是電路繪制還是匯編語言編寫都難免遇到了不少困難和障礙,例如匯編語言編寫出錯(cuò)、電路元件無從入手等。在面對(duì)困難和障礙時(shí),我慶幸自己沒有退縮和逃避,而是通過各種方法,迎難而上,以堅(jiān)持、耐心和努力勇敢無畏地面對(duì)困難,克服困難,解決困難。讓我發(fā)現(xiàn)問題、分析問題、解決問題以及動(dòng)手實(shí)踐的能力都有了很大的提高,并了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義。從這次的課程設(shè)計(jì)中,我們真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)

6、常的練習(xí)的過程中才能提高。本次課程設(shè)計(jì)盡管時(shí)間不長,但從中所獲,將令我受益終生。6、參考文獻(xiàn)1張毅剛.單片機(jī)原理及應(yīng)用. 北京:高等教育出版社 ,2013: 12-1,31附件一:仿真調(diào)試附件二:程序甲機(jī)程序:#include #define uchar unsigned char#define uint unsigned intsbit scl = P21;/ 定義了AT24C02的sda腳sbit sda = P20;/ 定義了AT24C02的scl腳/*/ 用于簡短的延時(shí)/*/void DelayShort() ; ; /*/ 毫秒級(jí)的延時(shí)函數(shù),time是要延時(shí)的毫秒數(shù)/*/void D

7、elayMs(uint time)uint i,j;for(i=time;i1;i-)for(j=111;j1;j-);/*/ IIC總線初始化/*/void IIcInit()scl=1; DelayShort(); sda=1; DelayShort();/*/ IIC起始函數(shù)/*/void IIcStart()sda=1; DelayShort(); scl=1; DelayShort(); sda=0; DelayShort(); scl=0; DelayShort();/*/ IIC終止函數(shù)/*/void IIcStop()sda=0; DelayShort(); scl=1; De

8、layShort(); sda=1; DelayShort();/*/ IIC寫一個(gè)字節(jié)/*/void IIcWriteByte(uchar dat) uchar i,temp;temp=dat;for(i=0;i8;i+)temp=temp1; scl=0; DelayShort(); sda=CY; DelayShort(); scl=1; DelayShort();scl=0; DelayShort(); sda=1; DelayShort();/*/ IIC讀一個(gè)字節(jié)/*/uchar IIcReadByte()uchar i,temp,dat=0;scl=0; DelayShort()

9、; sda=1;DelayShort();for (i=0;i8;i+) scl=1; DelayShort();temp=sda;dat=(dat1)|temp; scl=0; DelayShort(); return(dat);/*/ IIC總線響應(yīng)/*/void IIcRespons()uchar i=0;scl=1;DelayShort();/ 如果sda收到低電平,或者i自加255個(gè)數(shù)后還沒收到低電平,都認(rèn)為收到了while(sda=1)&(i=0;i-) IIcWriteDat(0,TH0);/ 每隔1秒,保存一次定時(shí)器0的值到芯片AT24C02IIcWriteDat(1,TL0)

10、;UartSendByte(i); / 每隔1秒,發(fā)送剩余的秒數(shù)給乙機(jī) DelayMs(1000);SendBuf0=(TH0+TL0)%10+0x30; / 隨機(jī)密碼的第1位為TH0+TL0的個(gè)位temp=TH0*TL0;SendBuf1=temp/10000+0x30;/ 隨機(jī)密碼的第2位為TH0*TH0的萬位SendBuf2=temp%10000/1000+0x30;/ 隨機(jī)密碼的第3位為TH0*TH0的千位SendBuf3=temp%1000/100+0x30;/ 隨機(jī)密碼的第4位為TH0*TH0的百位SendBuf4=temp%100/10+0x30;/ 隨機(jī)密碼的第5位為TH0*T

11、H0的十位SendBuf5=temp%10+0x30;/ 隨機(jī)密碼的第6位為TH0*TH0的個(gè)位UartSendByte(0xEF);/ 發(fā)送每一組密碼前,先發(fā)送0xEFfor(j=0;j6;j+)/ 將6位密碼依次發(fā)送出去UartSendByte(SendBufj);/*/ 串口中斷服務(wù)程序/*/void UartInt0(void) interrupt 4if(RI=1)RI=0;乙機(jī)程序:#include #define uchar unsigned char#define uint unsigned intsbit LcdRS=P13;/ 1602液晶的RS控制腳sbit LcdRW=

12、P14;/ 1602液晶的RW控制腳sbit LcdEN=P15;/ 1602液晶的EN控制腳/*/ 毫秒級(jí)的延時(shí)函數(shù),time是要延時(shí)的毫秒數(shù)/*/void DelayMs(uint time)uint i,j;for(i=time;i1;i-)for(j=111;j1;j-);/*/ 串口初始化/*/void TimerInit()TMOD = 0x20;SCON = 0x50;TH1 = 0xfd;TL1 = 0xfd;TR1 = 1;REN = 1;EA = 1;ES = 1;/*/ 1602液晶寫命令函數(shù),com就是要寫入的命令/*/void WriteCom(uchar com)P

13、0=com;LcdRS = 0; LcdRW = 0;LcdEN = 0;DelayMs(1);LcdEN = 1;DelayMs(1);LcdEN = 0;/*/ 1602液晶寫數(shù)據(jù)函數(shù),dat就是要寫入的命令/*/void WriteData(uchar dat)P0=dat;LcdRS = 1; LcdRW = 0;LcdEN = 0;DelayMs(1);LcdEN = 1;DelayMs(1);LcdEN = 0;/*/ 1602液晶初始化函數(shù)/*/void LcdInit() LcdRW = 0;WriteCom(0x38);WriteCom(0x0c);WriteCom(0x06

14、);/*/ 液晶光標(biāo)定位函數(shù)/*/void LcdGotoXY(uchar line,uchar column) if(line=1) / 第一行 WriteCom(0x80+column-1); if(line=2) / 第二行 WriteCom(0xC0+column-1); /*/ 液晶輸出字符串函數(shù)/*/void LcdPrintStr(uchar *str) while(*str!=0) WriteData(*str+);/*/ 主函數(shù)/*/void main(void)TimerInit();/ 定時(shí)器初始化LcdInit();/ 液晶初始化LcdGotoXY(1,1);LcdPrintStr( Code: );LcdGotoXY(2,1);LcdPrintStr( Count: s );while(1);/*/ 串口中斷服務(wù)程序/*/void Uar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論