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

正文內(nèi)容

單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-基于stc89c52rc的電子萬(wàn)年歷設(shè)計(jì)-wenkub

2022-11-02 15:58:46 本頁(yè)面
 

【正文】 define yhl 0x80 define er1 0x80+0x40 //液晶屏的與 C51 之間的引腳連接定義(顯示數(shù)據(jù)線接 C51 的 P0 口) sbit rs=P2^0。 //返回該值 } 主程序如下: include include define uint unsigned int define uchar unsigned char uchar a,miao,shi,fen,ri=1,yue=1,nian,week=1,key1n=0,key2n=0,run,runl,bai,mstt,miao1=0,shi1=0,fen1=0,ril=1,yuel=1,nianl,weekl=1,Wl,Rl,Yl,Nl,W,R,Y,N。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。 delay1(20)。 //讀入列線值 P1=cord_h|0xf0。0x0f。 //演示程序 /* 主函數(shù) */ /* 延時(shí)程序 */ void delay1(uint i) //延時(shí)函數(shù) { while(i)。而這是以后最實(shí)用的,真的是受益匪淺。我對(duì)單片機(jī)的 C 語(yǔ)言編程有了更深刻的認(rèn)識(shí)和更扎實(shí)的掌握,通過(guò)不斷修改,不斷嘗試,對(duì)源代碼各個(gè)模塊的函數(shù)都有了一個(gè)非常深入的掌握。通過(guò)控制三極管的導(dǎo)通和截止來(lái)實(shí)現(xiàn)蜂鳴器的響與不響。按鍵用來(lái)調(diào)整時(shí)間和設(shè)定鬧鐘,其一端直接接到單片機(jī)的端口,另一端接地,當(dāng)按下按鍵時(shí),相應(yīng)的端口變?yōu)榈碗娖剑ㄟ^(guò)檢測(cè)這一低電平就可以判斷是哪個(gè)鍵按下,從而作相應(yīng)的操作。手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端 RST 上加入高電平。 圖 2 STC89C52RC 主控 模塊 3 時(shí)鐘振蕩電路 時(shí)鐘振蕩電路圖 3 所示,時(shí)鐘振蕩電路用于產(chǎn)生單片機(jī)正常工作時(shí)所需要的時(shí)鐘信號(hào),電路由兩個(gè) 30pF 的瓷片電容和一個(gè)12MHz的晶振組成,并接入到單片機(jī)的 XTAL1和 XTAL2 引腳處,使單片機(jī)工作于內(nèi)部振蕩模式。 可設(shè)定指定日期、時(shí)間的鬧鐘 。 單片機(jī)實(shí)驗(yàn)報(bào)告 題 目: 基于 STC89C52RC的電子萬(wàn)年歷設(shè)計(jì) 專 業(yè): 通信 工程 年 級(jí): 2020 級(jí) 班 級(jí): 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)老 師: 2 一、 設(shè)計(jì)任務(wù)與要求: 利用 STC89C52RC 單片機(jī)設(shè)計(jì)一個(gè)具有如下功能的電子萬(wàn)年歷: 能夠顯示年、月、日、時(shí)、分 、秒、星期 。 二、方案設(shè)計(jì)與論證 按照系統(tǒng)設(shè) 計(jì)的要求和功能,將系統(tǒng)分為主控模塊、時(shí)鐘電路模塊、按鍵掃描模塊、 LCD 顯示模塊、蜂鳴器電路、 電源電路、復(fù)位電路、晶振電路幾個(gè)模塊,系統(tǒng)框圖如圖 1 所示。 此電 路在加電后延遲大約 10ms 振蕩器起振,在 XTAL2 引腳產(chǎn)生幅度為 3V 左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率決定。一般采用的辦法是在 RST 端和正電源 Vcc 之間接一個(gè)按鈕和一個(gè)電阻,如圖所示,當(dāng)人為按下按鈕時(shí),則 Vcc 的 +5V 電平就會(huì)直接加到 RST 端,由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。 圖 6 按鍵電路 顯示電路 顯示電路采用 LCD1602 液晶顯示,圖中只畫(huà)出了其相應(yīng)的接口,如圖 7所示。 圖 8 蜂鳴器電路 6 四、軟件設(shè)計(jì)與流程圖 程序 主 流程圖 主程序首先初始化定時(shí)器、 LCD1602 及 DS1302,然后就開(kāi)始查詢按鍵,有鍵按下則開(kāi)始調(diào)整時(shí)間和設(shè)置鬧鐘,若沒(méi)有按下,則執(zhí)行下面的時(shí)間、日期及鬧鐘時(shí)間的顯示,最后依次循環(huán)這些相同的操作,相應(yīng)流程圖如圖 9 所示: 圖 9 程序主流程圖 按鍵的檢測(cè)主要是通過(guò)查詢的辦法來(lái)實(shí)現(xiàn),利用按鍵進(jìn)行間調(diào)整 及鬧鐘設(shè)置,鬧鐘開(kāi)關(guān)鍵 是開(kāi)啟 和關(guān)閉 鬧 鐘功能; 設(shè)置 1 鍵 按下則開(kāi)始設(shè)置時(shí)間及日期,同時(shí)被選擇的時(shí)間和日期開(kāi)始閃爍,第一次按下 設(shè)置 1鍵時(shí),設(shè)置 年 , 第二次按下設(shè)置 月 ,后面依次設(shè)置 日 、星期、 時(shí) 、 分 、 秒 ;鬧鐘設(shè)置鍵按下則開(kāi)始設(shè)置鬧鐘時(shí)間及日期,同時(shí)被選擇的時(shí)間和日期開(kāi)始閃爍,第一次按下鬧鐘設(shè)置鍵時(shí),設(shè)置 年 ,第二次按下設(shè)置 月 ,后面依次設(shè)置 日 、星期、 時(shí) 、 分 、 秒 ; 若按下 下調(diào)鍵 是減 1操作,按下 上調(diào)鍵 是加 1 操作 ,無(wú)論是對(duì)時(shí)鐘和鬧鐘的年份或月份進(jìn)行加減,都會(huì)使日期歸 1。在收獲知識(shí)的同時(shí),還收獲了閱歷,收獲了成熟。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。 } /* 鍵盤(pán)掃描程序 */ uchar keyboard(void) //鍵盤(pán)掃描函數(shù),使用行列反轉(zhuǎn)掃描法 { uchar cord_h,cord_l。 //讀入列線值 if(cord_h!=0x0f) //先檢測(cè)有無(wú)按鍵按下 { 9 delay1(100)。 //輸出當(dāng)前列線值 cord_l=P1amp。 while(P1!=0x0f)。//0 按下相應(yīng)的鍵顯示相對(duì)應(yīng)的碼值 case 0xde:return(8)。//2 case 0x7e:return(0)。//4 case 0xdd:return(9)。//6 case 0x7d:return(1)。//8 case 0xdb:return(10)。//a case 0x7b:return(2)。//c case 0xd7:return(11)。//e case 0x77:return(3)。 */ 10 case 0xee:return(0)。//1 按下相應(yīng)的鍵顯示相對(duì)應(yīng)的碼值 case 0xbe:return(2)。//3 case 0xed:return(4)。//5 case 0xbd:return(6)。//7 case 0xeb:return(8)。//9 case 0xbb:return(10)。//b case 0xe7:return(12)。//d case 0xb7:return(14)。//f default:return(0xff)。 uint count1=0,count2=0,clk_set=0,clk_switch=0。 sbit en=P2^2。 /************************************************************ ACC 累加 器 =A =E0H 就是 ACC 的第 0 位。以后在學(xué)習(xí)指令時(shí), 常用 A 來(lái)表示累加器。//蜂鳴器,通過(guò)三極管 9012 驅(qū)動(dòng),端口低電平響 /**************************************************************/ uchar code tab0[]= Wang Zhe 。//時(shí)間顯示的固定字符 //延時(shí)函數(shù),后面經(jīng)常調(diào)用 void delay(uint xms)//延時(shí)函數(shù),有參函數(shù) { uint x,y。y0。x0。 } /********液晶寫(xiě)入指令函數(shù)與寫(xiě)入數(shù)據(jù)函數(shù),以后可調(diào)用 **************/ write_1602(uchar )//****液晶寫(xiě)入指令函數(shù) **** { rs=0。 en=1。//數(shù)據(jù) /指令選擇置為 數(shù)據(jù) rw=0。 //en 置高電平,為制造下降沿做準(zhǔn)備 delay(1)。lnum3。 for(r=0。 } } lcd_init()//***液晶初始化函數(shù) **** { write_1602(0x38)。//清顯示 /*****************************************/ write_1602(0x80)。 write_1602(0x80+0x40)。 /*write_1602(0x80+16)。 write_1602(0x80+0x40+16)。*/ /*********************************************/ write_1602(yh+1)。//向液晶屏寫(xiě)日歷顯示的固定符號(hào)部分 //delay(3)。a++) { write_1602dat(tab3[a])。 } /*********************over***********************/ //時(shí)分秒顯示子函數(shù) void write_sfm(uchar add,uchar dat)//向 LCD 寫(xiě)時(shí)分秒 ,有顯示位置加、現(xiàn)示數(shù)據(jù),兩個(gè)參數(shù) { uchar gw,sw。//er 是頭文件規(guī)定的值 0x80+0x40 write_1602dat(0x30+sw)。//取得個(gè)位數(shù)字 sw=dat/10。//數(shù)字 +30 得到該數(shù)字的 LCD1602 顯示碼 } // //年月日顯示子函數(shù) void write_nyr(int add,int dat)//向 LCD 寫(xiě)年月日,有顯示位置加數(shù)、顯示數(shù)據(jù),兩個(gè)參數(shù) { int gw,sw。//設(shè)定顯示位置為第一個(gè)位置 +add write_1602dat(0x30+sw)。//取得個(gè)位數(shù)字 sw=dat/10。//數(shù)字 +30 得到該數(shù)字的 LCD1602 顯示碼 } // void write_week(uchar week)//寫(xiě)星期函數(shù) { write_1602(yh+0x0c)。//星期數(shù)為 1 時(shí),顯示 write_1602dat(39。N39。T39。)。 break。//星期數(shù)據(jù)為 3 時(shí)顯示 write_1602dat(39。D39。T39。)。 break。//星期數(shù)據(jù)為 5 時(shí)顯示 write_1602dat(39。I39。S39。)。 break。//星期數(shù)據(jù)為 7 時(shí)顯示 write_1602dat(39。N39。 /************鬧鐘開(kāi)關(guān)顯示 ****************/ if(key==1) {if(clk_switch==0) {clk_switch=1。 write_1602dat(39。 write_1602dat(39。 write_1602dat(39。 } else {clk_switch=0。 write_1602dat(39。 17 write_1602dat(39。 write_1602dat(39。} } if(key2n==0||key2n==8) { if(key==11)////12 為功能鍵(時(shí)間設(shè)置鍵) { buzzer=0。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1