單片機(jī)課程設(shè)計(jì)報(bào)告電子計(jì)時(shí)器綜合系統(tǒng)設(shè)計(jì)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告電子計(jì)時(shí)器綜合系統(tǒng)設(shè)計(jì)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告電子計(jì)時(shí)器綜合系統(tǒng)設(shè)計(jì)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告電子計(jì)時(shí)器綜合系統(tǒng)設(shè)計(jì)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)報(bào)告電子計(jì)時(shí)器綜合系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、吉林建筑工程學(xué)院電氣與電子信息工程學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 電子計(jì)時(shí)器綜合系統(tǒng)設(shè)計(jì) 專業(yè)班級(jí): 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 設(shè)計(jì)時(shí)間: 2011.08.222011.09.02 教師評(píng)語(yǔ):成績(jī) 評(píng)閱教師 日期 目錄第1章 緒論······························

2、··························3 11 課程設(shè)計(jì)目的······················&

3、#183;························31.2 課程設(shè)計(jì)內(nèi)容·······················&#

4、183;·······················31.3 課程設(shè)計(jì)要求························

5、83;······················31.4 電子時(shí)鐘的簡(jiǎn)單介紹·························&

6、#183;···············31.5 單片機(jī)的相關(guān)知識(shí)································

7、···········3 1.5.1 單片機(jī)簡(jiǎn)介·····································

8、;········3 1.5.2 單片機(jī)的發(fā)展史·······································&#

9、183;·4第2章 控制系統(tǒng)的硬件設(shè)計(jì)·········································52.1 單片機(jī)型號(hào)的選擇···

10、;········································52.1 89c51單片機(jī)介紹·······&#

11、183;····································52.3 振蕩電路············

12、;·······································62.4 復(fù)位電路·········&#

13、183;·········································72.5 鍵盤電路·······

14、;············································72.6 數(shù)碼管顯示工作原理···

15、83;·····································72.7 整個(gè)電路原理圖··········

16、83;··································82.8 pcb板圖··············

17、;·····································9第3章 控制系統(tǒng)的軟件設(shè)計(jì)··········

18、83;·····························103.1 程序流程圖··················

19、3;·····························103.2 程序設(shè)計(jì)···················

20、·······························12第4章 軟件仿真·················&#

21、183;·································13 4.1 proteus軟件介紹·············&#

22、183;·····························13 4.2 仿真結(jié)果··················

23、83;································13 4.3 結(jié)果分析···············

24、3;··································13第5章 心得體會(huì)··············

25、····································14參考文獻(xiàn)·············

26、··············································14附錄···&#

27、183;·················································&#

28、183;········15 第1章 緒論1.1 課程設(shè)計(jì)目的:通過(guò)單片機(jī)原理與應(yīng)用課程設(shè)計(jì),掌握單片機(jī)及其擴(kuò)展系統(tǒng)設(shè)計(jì)的方法和設(shè)計(jì)原則及相應(yīng)的硬件調(diào)試的方法。進(jìn)一步加深單片機(jī)及其擴(kuò)展系統(tǒng)設(shè)計(jì)和應(yīng)用的理解。1.2 課程設(shè)計(jì)內(nèi)容:1)電子計(jì)時(shí)器綜合系統(tǒng)設(shè)計(jì)有4位數(shù)碼管顯示,能按照分秒進(jìn)制顯示時(shí)間; 能正確手動(dòng)復(fù)位;有上電指示燈;1.3 課程設(shè)計(jì)要求:1)獨(dú)立設(shè)計(jì)原理圖及相應(yīng)的硬件電路。2)針對(duì)選擇的設(shè)計(jì)題目,設(shè)計(jì)系統(tǒng)軟件。軟件要做到:操作方便,實(shí)用性強(qiáng),穩(wěn)定可靠。3)設(shè)計(jì)說(shuō)明書格式規(guī)范,層次合理,重點(diǎn)突出。并附上設(shè)計(jì)

29、原理圖及相應(yīng)的源程序。1.4 電子時(shí)鐘的簡(jiǎn)單介紹 1957年,ventura發(fā)明了世界第一臺(tái)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開始迅速發(fā)展起來(lái)。現(xiàn)在的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過(guò)計(jì)數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)清零。從而達(dá)到及時(shí)的功能,是人們?nèi)粘I钪胁豢扇鄙俚墓ぞ摺,F(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),這種表具有時(shí)分秒顯示時(shí)間的功能,還可以進(jìn)

30、行時(shí)和分的校隊(duì),片選的靈活性好。 該電子鐘由at89c51,button,八段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動(dòng)電路,有延時(shí)程序和循環(huán)程序產(chǎn)生的一秒定時(shí),達(dá)到時(shí)分秒的計(jì)時(shí),六十秒為一分鐘,六十分鐘為一小時(shí),滿二十四小時(shí)為一天。有兩個(gè)按鍵分別控制小時(shí)和分鐘,當(dāng)按下控制分鐘的按鍵時(shí),分鐘加一,同理按控制小時(shí)的按鍵時(shí),小時(shí)加一。1.5 單片機(jī)的相關(guān)知識(shí)1.5.1 單片機(jī)簡(jiǎn)介 單片機(jī)就是在一片半導(dǎo)體硅片上集成了中央處理器(cpu)、存儲(chǔ)器(ramrom)、并行i/o口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)系統(tǒng)時(shí)鐘電路及系統(tǒng)總線的微型計(jì)算機(jī)。這樣一塊集成電路芯片具有一臺(tái)微型計(jì)算機(jī)的屬性,因而被稱為單片微型計(jì)算機(jī),簡(jiǎn)

31、稱單片機(jī)。從應(yīng)用領(lǐng)域來(lái)看,單片機(jī)主要用來(lái)控制,所以又稱為微控制器(microcontroller unit)或嵌入式控制器。單片機(jī)是將計(jì)算機(jī)的基本部件微型化并集成在一塊芯片上的微型計(jì)算機(jī)。單片機(jī)按照其用途可分為通用型和專用型兩大類。1.5.2 單片機(jī)的發(fā)展史 第一階段(1974年1976年):?jiǎn)纹瑱C(jī)初級(jí)階段。因工藝限制,單片機(jī)采用雙片的形式而且功能比較簡(jiǎn)單。1974年12月,仙童公司推出了8位的f8單片機(jī),實(shí)際上只包括了8位cpu,64b ram和2個(gè)并行口。第二階段(1976年1978年):低性能單片機(jī)階段。1976年,intel公司推出的mcs-48單片機(jī)(8位單片機(jī))極大地促進(jìn)了單片機(jī)的

32、變革和發(fā)展;1977年,gi公司推出了pic1650,但這個(gè)階段的單片機(jī)仍然處于低性能階段。第三階段(1978年1983年):高性能單片機(jī)階段。1978年,zilog公司推出了z8單片機(jī);1980年,intel公司在mcs-48的基礎(chǔ)上推出了mcs-51系列,mortorola公司推出了6801單片機(jī),這些產(chǎn)品使單片機(jī)的性能及應(yīng)用躍上了一個(gè)新的臺(tái)階。此后各公司的8位單片機(jī)迅速發(fā)展起來(lái)。這個(gè)階段推出的單片機(jī)普遍帶有串行i/o口、多級(jí)中斷系統(tǒng)、16位定時(shí)器/計(jì)時(shí)器、片內(nèi)rom、ram容量增大,且尋址范圍可達(dá)64kb,有的片內(nèi)還帶有a/d轉(zhuǎn)換器。由于這類單片機(jī)的性能價(jià)格比高,是目前應(yīng)用數(shù)量最高的單片

33、機(jī)。第四階段(1983年現(xiàn)在):8位單片機(jī)鞏固、發(fā)展及16位單片機(jī)、32位單片機(jī)推出階段。16位單片機(jī)的典型產(chǎn)品為intel公司生產(chǎn)的mcs-96系列單片機(jī)。而32位單片機(jī)除了具有更高的集成度,其數(shù)據(jù)處理速度比16位單片機(jī)提高許多,性能比8位、16位單片機(jī)更加優(yōu)越。20世紀(jì)90年代是單片機(jī)制造業(yè)大發(fā)展的時(shí)期,這個(gè)時(shí)期的mortorola、intel、atmel、德州儀器(ti)、三菱、日立、philips、lg等公司也開發(fā)了一大批性能優(yōu)越的單片機(jī),極大地推動(dòng)了單片機(jī)的應(yīng)用。近年來(lái),又有不少新型的高集成度單片機(jī)產(chǎn)品涌現(xiàn)出來(lái),出現(xiàn)了單片機(jī)產(chǎn)品豐富多彩的局面。目前,除了8位單片機(jī)得到廣泛應(yīng)用之外,1

34、6位單片機(jī)、32位單片機(jī)也得到廣大用戶的青睞。第2章 控制系統(tǒng)的硬件設(shè)計(jì)2.1 單片機(jī)型號(hào)的選擇 通過(guò)對(duì)多種單片機(jī)性能的分析,最終認(rèn)為at89c51時(shí)最理想的電子時(shí)鐘開發(fā)芯片。89c51時(shí)一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能cmos8位微處理器,器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的ncs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的89c51是一種高效微控制器,而且它與mcs-51兼容,且具有4k字節(jié)可編程閃爍存儲(chǔ)器和1000寫/擦循環(huán),數(shù)據(jù)保留時(shí)間為10年等特點(diǎn),是最好的選擇。2.2 89c51單片

35、機(jī)介紹 圖1 at89c51vcc:電源gnd:接地p0口:p0口為一個(gè)8位漏極開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定能夠以為數(shù)據(jù)/地址的第八位。在flash編程時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部上拉為低電平時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫1

36、時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的原因。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高8位。在給出地址1時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部8位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入1時(shí),它們被內(nèi)部上拉位高電平,并用作輸入。作為輸入,由于外部上拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口

37、也可作為at89c51的一特殊功能口,如下所示: p3.0 rxd(串行數(shù)據(jù)輸入口) p3.1 txd(串行數(shù)據(jù)輸出口) p3.2 /int0(外部中斷0輸入) p3.3 /int1(外部中斷1輸入) p3.4 t0(定時(shí)器0外部計(jì)數(shù)輸入) p3.5 t1(定時(shí)器1外部計(jì)數(shù)輸入) p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通輸出)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通輸出) p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí) ,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在flash編程

38、期間,次引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如果想禁止ale的輸出可在sfr8eh地址上置0.此時(shí),ale只有在執(zhí)行movx,movc指令時(shí)ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置為無(wú)效。/psen:外部程序存儲(chǔ)器的讀選通信號(hào),低電平有效。在由外部程序存儲(chǔ)器取值期間,每個(gè)機(jī)器兩次/psen有效,但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。/ea/vpp:/ea為該引腳的

39、第一功能,即外部程序存儲(chǔ)器訪問(wèn)控制允許端。當(dāng)/ea為高電平時(shí),在pc值不超過(guò)0ffffh時(shí),單片機(jī)讀片內(nèi)程序存儲(chǔ)器(4kb)中的程序;當(dāng)pc值超出時(shí),將自動(dòng)轉(zhuǎn)向片外60kb程序存儲(chǔ)器空間中的程序。當(dāng)/ea引腳為低電平時(shí),只讀取外部程序存儲(chǔ)器中的內(nèi)容。vpp為該引腳的第二功能,即在對(duì)片內(nèi)flash進(jìn)行編程時(shí),vpp引腳接入編程電壓。2.3 振蕩電路 本次設(shè)計(jì)采用內(nèi)部振蕩電路,瓷片電容采用22pf,晶振采用12mhz。電路連接如圖3所示 圖2 震蕩電路2.4 復(fù)位電路 單片機(jī)系統(tǒng)的復(fù)位電路在這里采用的是上電復(fù)位電路的形式,其中電阻r1采用10k的阻值,電容采用電容值為22pf的電容。電路連接如圖4

40、所示     圖3 復(fù)位電路2.5 鍵盤電路 該設(shè)計(jì)使用了兩個(gè)鍵盤。該鍵盤可以實(shí)現(xiàn)小時(shí)和分鐘的調(diào)節(jié),當(dāng)按下控制分鐘的按鍵時(shí),可以實(shí)現(xiàn)分鐘的加一,每加一次分鐘加一;同樣按下控制小時(shí)的按鍵時(shí),也實(shí)現(xiàn)同樣的功能。達(dá)到調(diào)節(jié)時(shí)間的目的。 圖4 鍵盤電路2.6 數(shù)碼管顯示工作原理 數(shù)碼管是一個(gè)把多個(gè)led顯示段集成在一起的顯示設(shè)備。有兩種類型,一種是共陽(yáng)型,一種是共陰型。共陽(yáng)型就是把多個(gè)led顯示段的陽(yáng)極接在一起,又稱為公共端。共陰型就是把多個(gè)led顯示段的陰極接在一起,即為公共商。陽(yáng)極即為二極管的正極,又稱為正極,陰極即為二極管的負(fù)極,又稱為負(fù)極。通常的數(shù)碼管又分為8段,即

41、8個(gè)led顯示段,這是為工程應(yīng)用方便設(shè)計(jì)的,稱為a、b、c、d、e、f、g、dp,其中dp是小數(shù)點(diǎn)位段。而多位數(shù)碼管,除某一位的公共端會(huì)連接在一起,不同位的數(shù)碼管的相同端也會(huì)連接在一起。即,所有的a段都會(huì)連在一起,其它的段也是如此,這是最實(shí)際的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及公共端電平一直有效。動(dòng)態(tài)顯示的原理是,各個(gè)數(shù)碼管的相同段連接在一起,共同占用8位段引管線;每位數(shù)碼管的陽(yáng)極連在一起組成公共端。利用人眼的視覺(jué)暫留性,依次給出各個(gè)數(shù)碼管公共端加有效信號(hào),早同時(shí)給出該數(shù)碼管加有效的數(shù)據(jù)信號(hào),當(dāng)全段掃描速度大于視覺(jué)暫留速度時(shí),顯示就會(huì)清晰顯示出來(lái)。

42、 圖5 共陰數(shù)碼管 2.7 整個(gè)電路原理圖圖6 電路原理圖2.8 pcb板圖圖7 pcb板圖第3章 控制系統(tǒng)的軟件設(shè)計(jì)3.1 程序流程圖 本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時(shí)計(jì)數(shù)中斷程序、時(shí)間調(diào)整程序、延時(shí)程序四大模塊。主程序流程圖:second加1second=60嗎?顯示數(shù)據(jù)處理開始 秒按鍵識(shí)別成功否開中斷,并允許t0中斷th0,tl0裝入初值計(jì)數(shù)單元清零second=0分按鍵識(shí)別成功否顯示數(shù)據(jù)處理minit=0minite=60嗎?minite加1時(shí)按鍵識(shí)別成功否hour加1hour=24嗎?hour=0中斷子程序流程圖3.2 程序設(shè)計(jì) 見附錄第4章 軟件仿真4.1 proteus軟件

43、介紹 proteus軟件是英國(guó)labcenter electronics公司出版的eda工具軟件,是目前最好的模擬單片機(jī)外圍器件的工具??梢苑抡?1系列、avr、pic等常用的mcu及其外圍電路(如lcd、ram、rom、鍵盤、馬達(dá)、led、ad/da,部分spi器件,部分iic器件等)。proteus是世界上著名的eda工具,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍設(shè)備協(xié)同仿真,一鍵切換到pcb設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái)。proteus具有原理布圖、pcb自動(dòng)或人工布線、spice電路仿真的功能。4.2

44、仿真結(jié)果4.3 仿真結(jié)果分析 功能太過(guò)單調(diào),只能實(shí)現(xiàn)時(shí)分秒的顯示,設(shè)計(jì)比較簡(jiǎn)單。電路圖的設(shè)計(jì)過(guò)于簡(jiǎn)單,用的器件太少,實(shí)現(xiàn)調(diào)節(jié)時(shí)間的按鈕太少,不能很好的調(diào)節(jié)時(shí)間。在此時(shí)過(guò)程中,六位數(shù)碼顯示管只顯示五位數(shù)字,有一位數(shù)字不亮,通過(guò)多次的修改程序并在proteus軟件環(huán)境中進(jìn)行仿真,最終解決了這個(gè)問(wèn)題,也透漏出我在單片機(jī)電路設(shè)計(jì)和程序設(shè)計(jì)方面的不足。不過(guò)最后的仿真效果非常好,實(shí)現(xiàn)了預(yù)期的效果,比較令人滿意。第5章 心得體會(huì)心得體會(huì) 隨著日子一天天的流逝,課程設(shè)計(jì)也接近了尾聲。經(jīng)過(guò)兩周的奮戰(zhàn),我的課程設(shè)計(jì)終于完成了。在沒(méi)有做課程設(shè)計(jì)以前覺(jué)得課程設(shè)計(jì)只是對(duì)這學(xué)期所學(xué)單片機(jī)知識(shí)的單純總結(jié)。課程設(shè)計(jì)不僅是對(duì)前

45、面所學(xué)知識(shí)的一種檢驗(yàn),而且也是對(duì)自己能力的一種提高。通過(guò)這次課程設(shè)計(jì)使我明白了自己原來(lái)的知識(shí)還比較欠缺,自己要學(xué)習(xí)的知識(shí)還很多;以前老是覺(jué)得自己什么東西都會(huì),什么東西都懂,有點(diǎn)眼高手低。通過(guò)這次課程設(shè)計(jì),我才明白學(xué)習(xí)是一個(gè)長(zhǎng)期積累的過(guò)程,在以后的工作,生活中應(yīng)該不斷不得學(xué)習(xí),努力提高自己知識(shí)和綜合素質(zhì)。這次對(duì)數(shù)字鐘的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于數(shù)字鐘的原理與設(shè)計(jì)理念。在此次的數(shù)字鐘設(shè)計(jì)過(guò)程中,更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和具體的使用方法。通過(guò)自己畫原理圖和pcb板圖,掌握了proteus軟件的使用方法,增強(qiáng)了自己的動(dòng)手能力。感謝這兩周來(lái)同學(xué)間的相

46、互幫助和老師的指導(dǎo)。兩周的鍛煉,14天的不同感受,我有過(guò)對(duì)知識(shí)的掌握不足時(shí)的迷茫,也有過(guò)思路不清是的懊惱,但一路走來(lái),我卻收獲了知識(shí),收獲的希望和努力后的成果。通過(guò)這次的課程設(shè)計(jì)加深了我對(duì)理論知識(shí)的理解,同時(shí)增強(qiáng)了我的邏輯思維能力,另一方面也是對(duì)課堂所學(xué)理論知識(shí)作一個(gè)總結(jié)和補(bǔ)充。在此我要感謝老師的孜孜教誨和同學(xué)的幫助,我相信這十幾天的不懈努力回給我未來(lái)的學(xué)習(xí)帶來(lái)很多的啟發(fā),我會(huì)在以后的工作生活中更好的理論聯(lián)系實(shí)際,證明自己的能力參考文獻(xiàn)1單片機(jī)原理及應(yīng)用/張毅剛 彭喜元 彭宇主編.高等教育出版社,2010年5月第二版2單片機(jī)原理及應(yīng)用/張毅剛高等教育出版社,20043mcs-51系列單片機(jī)實(shí)用

47、接口技術(shù)/李華主編北京:北京航空航天大學(xué)出版社,1993.8附錄#include<reg51.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned intuchar code dsy_code = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff ;uchar dsy_buffer = 0,0,0xbf,0,0,0xbf,0,0;uchar scan_bit;uchar dsy_idx;uchar key_state;uch

48、ar h,m,s,s100;void delayms(uchar x) uchar i; while(x-) for( i = 0; i < 120; i+);void increase_hour() if(+h > 23) h = 0; dsy_buffer0 = dsy_codeh / 10; dsy_buffer1 = dsy_codeh % 10;void increase_minute() if(+m > 59) m = 0; increase_hour(); dsy_buffer3 = dsy_codem / 10; dsy_buffer4 = dsy_codem

49、 % 10;void increase_second() if(+s > 59) s = 0; increase_minute(); dsy_buffer6 = dsy_codes / 10; dsy_buffer7 = dsy_codes % 10;void t0_int() interrupt 1 th0 = (65536 - 1000) / 256; tl0 = (65536 - 1000) % 256; p3 = scan_bit; p0 = dsy_bufferdsy_idx; scan_bit = _crol_(scan_bit,1); dsy_idx = (dsy_idx

50、+ 1) % 8;void t1_int() interrupt 3 th1 = (65536 - 50000) / 256; tl1 = (65536 - 50000) % 256;if( +s100 = 20) s100 = 0; increase_second(); void main() p0 = p3 = 0xff; tmod = 0x11; th0 = (65536 - 1000) / 256; tl0 = (65536 - 1000) % 256; th1 = 0xdc; tl1 = 0; tcon = 0x01; ea = 1; et0 = 1; et1 = 1; h = 0;

51、 m = s = s100 = 0; dsy_buffer0 = dsy_codeh / 10; dsy_buffer1 = dsy_codeh % 10; dsy_buffer3 = dsy_codem / 10; dsy_buffer4 = dsy_codem % 10; dsy_buffer6 = dsy_codes / 10; dsy_buffer7 = dsy_codes % 10; scan_bit = 0xfe; dsy_idx = 0; tr0 = tr1 = 1; key_state = 0xff; while(1) if ( p1 key_state) delayms(10

52、); if ( p1 key_state) key_state = p1; ea = 0;if(key_state & 0x01) =0) increase_hour();else if(key_state & 0x02) =0) m = (m + 1) % 60; dsy_buffer3 = dsy_codem / 10; dsy_buffer4 = dsy_codem % 10;ea = 1; c51 compiler v9.00 時(shí)_? 07/29/2011 15:38:04 page 1 c51 compiler v9.00, compilation of module

53、 時(shí)_?object module placed in 時(shí)鐘.objcompiler invoked by: e:c51binc51.exe 時(shí)鐘.c browse debug objectextendline level source 1 #include<reg51.h> 2 #include<intrins.h> 3 #define uchar unsigned char 4 #define uint unsigned int 5 uchar code dsy_code = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,

54、0x90,0xff ; 6 uchar dsy_buffer = 0,0,0xbf,0,0,0xbf,0,0; 7 uchar scan_bit; 8 uchar dsy_idx; 9 uchar key_state; 10 uchar h,m,s,s100; 11 void delayms(uchar x) 12 13 1 uchar i; 14 1 while(x-) for( i = 0; i < 120; i+); 15 1 16 void increase_hour() 17 18 1 if(+h > 23) h = 0; 19 1 dsy_buffer0 = dsy_codeh / 10; 20 1 dsy_buffer1 = dsy_codeh % 10; 21 1 22 void increase_minute() 23 24 1 if(+m > 59) 25 1 26 2 m = 0; increase_hour(); 27 2 28 1 dsy_buffer3 = dsy_codem / 10; 29 1 dsy_buffer4 = dsy_codem % 10; 30 1 31 void increase_second() 32 33 1 if(+s > 59) 34 1 35 2 s = 0; inc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論