久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3586|回復: 1
打印 上一主題 下一主題
收起左側

原創的單片機數字時鐘設計與調試 含源程序 仿真 軟硬件解釋得很詳細

[復制鏈接]
跳轉到指定樓層
樓主
ID:579259 發表于 2019-12-9 17:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

利用單片機、若干個按鍵和6位數碼管,構建時分秒實時時鐘。要求:(1)時間累進最小單位為秒,數碼管為動態顯示,共陽共陰不限;(2)具有時鐘設置功能,參照如下要求設置:A、“設置”鍵按下,進入設置狀態;B、“選擇/移位”鍵按下,選定對時、對分、對秒設置;C、用上、下鍵(或加、減鍵)對選定的時、分、秒進行設置,設定起點時間;D、“確認”鍵按下后,從設定的起點時刻開始,實現時分秒時鐘;E、“取消”鍵按下后,本次所有設置無效,仍從“設置”按下前時刻開始計時。

我們用單片機的P0口的連接數碼管的段碼線, P2口連接數碼管的位選線,P1.0口為設置按鍵,P1.1口為選擇/移位按鍵,P1.2口為加一按鍵,P1.3口為減一按鍵,P1.4口為確認按鍵,P1.5口為取消按鍵。單片機上電之后定時器T0開始計時,按下設置按鍵后進入設置模式,按下不同的按鍵對應設計要求的不同效果。

1.2 分析

根據題目,我們需要實現時分秒時鐘功能,并且進入設置模式后,按下不同的按鍵能夠進行不同的設置操作,從而實現更改時分秒的值等操作。因此,我們將總原理圖分為單片機最小系統模塊、獨立按鍵模塊、數碼管顯示模塊、數碼管鎖存驅動模塊等四個模塊。單片機最小系統為主控板處理信息;獨立按鍵模塊來實現按鍵信息的輸入;數碼管顯示模塊用來根據獨立按鍵模塊不同按鍵按下時讀取的鍵值來進行段選和位選,從而完成時鐘顯示功能;數碼管驅動模塊用來增加數碼管的驅動能力,并且作為鎖存器,當輸入的數據消失時,在芯片的輸出端數據仍然保持。

2.方案設計
2.1 系統總體框圖
圖2.1 系統總體框圖
2.2 系統總體框圖描述

              AT89C51:作為主控芯片,來處理接收到的按鍵信息,并控制數碼管顯示相應的數值。

              晶振電路:單片機晶振的作用是為系統提供基本的時鐘信號,通常一個系統共用一個晶振,便于各部分保持同步。沒有晶振,就沒有時鐘周期,沒有時鐘周期,就無法執行程序代碼,單片機就無法工作。

              復位電路:在上電或復位的過程中,控制單片機的復位狀態,這段時間讓單片機保持復位狀態,而不是一上電或剛復位完畢就工作,防止單片機發出錯誤的指令、執行錯誤操作,也可以提高電磁兼容性能。

              按鍵控制電路:通過獨立按鍵來進行對標志位和引腳高低電平的判斷,“設置”鍵按下,進入設置狀態;“選擇/移位”鍵按下,選定對時、對分、對秒設置;用上、下鍵(或加、減鍵)對選定的時、分、秒進行設置,設定起點時間;“確認”鍵按下后,從設定的起點時刻開始,實現時分秒時鐘;“取消”鍵按下后,本次所有設置無效,仍從“設置”按下前時刻開始計時。

              數碼管顯示電路:采用共陰極數碼管,單片機通過I/O輸出高低電平信號,從而使數碼管點亮不同的段,顯示不同的數字,實現時鐘功能。

數碼管驅動鎖存電路:74HC573包含八路3態輸出的非反轉透明鎖存器,是一種高性能硅柵CMOS器件。SL74HC573跟LS/AL573的管腳一樣。器件的輸入是和標準CMOS輸出兼容的,加上拉電阻他們能和LS/ALSTTL輸出兼容。當鎖存使能端LE為高時,這些器件的鎖存對于數據是透明的(也就是說輸出同步)。當鎖存使能變低時,符合建立時間和保持時間的數據會被鎖存。


3. 硬件設計
3.1 主要元器件介紹
3.1.1 獨立按鍵

獨立按鍵式直接用I/O口線構成的單個按鍵電路,其特點式每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其他I/O口線的狀態。獨立式按鍵電路配置靈活,軟件結構簡單,但每個按鍵必須占用一個I/O口線,因此,在按鍵較多時,I/O口線浪費較大,不宜采用。本次課設只需要6個獨立按鍵來實現功能,因此不會有太大的影響。

獨立按鍵的軟件常采用查詢式結構。先逐位查詢沒跟I/O口線的輸入狀態,如某一根I/O口線輸入為低電平,則可確認該I/O口線所對應的按鍵已按下,然后,再轉向該鍵的功能處理程序。

根據設計要求:按下設置按鍵后進入設置模式,此時按下不同的按鍵,進行不同的操作,比如移位選擇時分秒、加一減一等操作。只需將P1.0口為設置按鍵,P1.1口為選擇/移位按鍵,P1.2口為加一按鍵,P1.3口為減一按鍵,P1.4口為確認按鍵,P1.5口為取消按鍵。通過按鍵掃描函數不斷掃描鍵值來判斷是否進入相應的設置模式。

在獨立按鍵處理過程中,一旦檢測到有按鍵閉合與確認按鍵已經穩定閉合期間,通過調用10-20ms延時子程序避開按鍵抖動問題。由于按鍵是機械器件,按下或者松開時有固定的機械抖動,抖動圖如圖所示:

圖3.1 按鍵抖動圖

按鍵去抖分為硬件去抖和軟件去抖,硬件去抖最簡單的是按鍵兩端并聯電容,容量根據實驗而定。軟件去抖使用方便不增加硬件成本,容易調試,所以現在處理按鍵抖動問題大部分選擇軟件去抖。軟件去抖操作步驟如下:

①檢測到按鍵按下后進行10-15ms延時,用于跳過這個抖動區域。

②延時后再檢測按鍵狀態,如果沒有按下表明是抖動或者干擾造成,如果仍舊按下,可以認為是真正的按下。并進行對應的操作。

③同樣按鍵釋放后也要進行去抖動延時,延時后檢測按鍵是否真正松開。

3.1.2 8位極數碼管

要顯示8位數碼管,需控制:8個公共端COM(位選線)和8*8個段引腳(段選線)。段選線選擇顯示字型,位選線控制著該數碼管的亮或滅。根據控制方式不同,分為靜態顯示和動態顯示。

靜態顯示就是顯示驅動電路具有輸出鎖存功能,單片機將所有要顯示的數據送出后就不再控制LED,直到下一次顯示時再傳送一次新的顯示數據。靜態顯示的數據穩定,占用的CPU時間少。靜態顯示中,每一個顯示器都要占用單獨的具有鎖存功能的I/O接口,該接口用于筆劃段字型代碼。這樣單片機只要把要顯示的字形代碼發送到接口電路,該字段就可以顯示發送的字形。要顯示新的數據時,單片機再發送新的字形碼。另一種方法是動態掃指顯示。動態掃描方法是用其接口電路把所有顯示器的8個筆畫段a-h同名端連在一起,而每一個顯示器的公共極COM各自獨立的受I/O線控制。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是哪個顯示器亮,則取決于COM段,而這一段是由I/O控制的,由單片機決定何時顯示哪一位了。

動態掃描用分時的方法輪流控制各個顯示器的COM端,使各個顯示器輪流點亮。在輪流點殼掃描過程中,每位顯示器的點殼時間極為短暫,但由于人的視覺暫留現象及余暉效應,給人的感覺就是一串穩定的顯示數據。

圖3.2 數碼管引腳圖
3.1.3 74HC573鎖存器

74HC573包含八路3態輸出的非反轉透明鎖存器,是一種高性能硅柵CMOS器件。SL74HC573跟LS/AL573的管腳一樣。器件的輸入是和標準CMOS輸出兼容的,加上拉電阻他們能和LS/ALSTTL輸出兼容。當鎖存使能端LE為高時,這些器件的鎖存對于數據是透明的(也就是說輸出同步)。當鎖存使能變低時,符合建立時間和保持時間的數據會被鎖存。

圖3.3 74HC573引腳圖

3.2 原理圖及功能電路介紹
3.2.1 單片機最小系統
圖3.4 單片機最小系統
3.2.2 獨立按鍵
圖3.5 獨立鍵盤電路圖
3.2.3 鎖存器
圖3.5 鎖存器電路圖
3.2.4 8位數碼管顯示
圖3.6 數碼管顯示電路圖
4.軟件設計
4.1 程序流程圖
圖4.1 主程序流程圖

圖4.2 按鍵掃描函數程序流程圖         圖4.3 中斷服務子程序流程圖

4.2程序流程圖說明

首先,對單片機最小系統及所需要的各種參數進行初始化,包括I/O口初始化、按鍵以及定時器初始化,單片機上電之后定時器便開始計時,當按鍵掃描函數掃描到“設置”鍵按下時,停止計時,存儲初始計時時間,當“移位”鍵按下時,判斷“加”或者“減”按鍵是否被按下,通過“移位”和“加”“減”鍵來設定自己想要的時間后,按下“確認”鍵從設定時間開始計時。按下“取消”鍵則從初始計時時間開始計時。

5.仿真調試
5.1 調試方案

本次設計軟件編程方面,采用模塊化編程的思想,主要有三個模塊:數碼管顯示模塊、按鍵掃描模塊、定時器計時模塊。首先,編寫數碼管顯示函數模塊。數碼管采用動態掃描的方式,先送位碼,再送段碼,然后再消隱。調試階段,數碼管正常顯示。其次,編寫定時器計數模塊。我們采用定時器T0,方式1,定時50ms,采用長定時,定時20次,即為1s,采用中斷方式。在中斷服務子程序中,根據日常時分秒的進制關系,對時分秒變量進行處理。

5.2 調試過程

在調試階段,數碼管顯示不出時間,一直處于黑屏,后來發現,可能是數碼管消隱的問題,將相關語句注釋掉,即可正常顯示時間運行。最后編寫按鍵掃描模塊。我們先定義定時器啟停標志位flag,通過標志位控制定時器的TR0,從而控制定時器的啟停。在設置按鍵里,只需將標志位flag置1,即可停止定時器,進入設置狀態。在選擇/移位按鍵里,我們循環改變之前定義的mark標志位,即可選擇相應的時間位。在增減按鍵里,我們需要對時間位數值進行自增或自減,并且做好相應的上下界的處理。由于if語句使得語句過于冗余,因此此處采用冒號表達式,這樣看起來更簡潔明了些。在取消按鍵里,由于需要記憶之前的時間,所以,在這之前我們定義一個存放時間值的數組。在設置按鍵里,將初始時間存放在數組里,然后在取消按鍵里,對時間進行重新賦初始值,然后在將flag標志位置0。在確認按鍵里,我們只需要將flag標志位置0,從而再次啟動定時計數器。在調試階段,雖然功能能夠正常使用,但出現了按鍵之間的沖突。例如,在數字鐘計時階段,可以通過按鍵來修改數值,所以,我們需要對按鍵進行相應的互鎖,讓不同時刻按鍵的功能失效或再次生效。我們可以利用之前定義的flag標志位,在功能按鍵里進行判斷,當定時器停止計時,修改數值的功能鍵才有效。

此時,按鍵掃描模塊的按鍵功能不會沖突,達到了預期的效果。

但本次設計仍然存在一些問題,就是按鍵按下后,數碼管會黑屏,原因是我們的按鍵做了按鍵松開檢測,如果按鍵按下一直不放,會在此處出現死循環。而采用這一措施,是為了保證每次按鍵按下都執行一次的功能。其次,考慮到數碼管顯示不如LCD好控制(或者說穩定),我們沒有加移位調整時的時間位閃爍功能,可能操作起來缺少點體驗感。

5.3 Proteus仿真截圖
5.3.1 定時器定時

如圖,單片機上電之后定時器立即開始工作,以秒為最小單位顯示時間。

圖5.3.1 定時器開始工作
5.3.2 進入設置模式

如圖,定時器進入設置模式后,定時器暫停工作,定時值不變。

圖5.3.2 進入設置模式
5.3.3選擇/移位操作
如圖,按下“選擇/移位”按鍵后,首先對時進行設置
圖5.3.3 選擇/移位操作
5.3.4時位加一
如圖,按下“加”按鍵之后時鐘的時會加一。
圖5.3.4 時位加一
5.3.5分位加一
如圖,再次按下“選擇/移位”,對分位進行設置,按下加一鍵后分位加一。
圖5.3.5 分位加一
5.3.6秒位加一
如圖,再次按下“選擇/移位”,對秒位進行設置,按下加一鍵后秒位加一。
圖5.3.6 秒位加一
5.3.7仿真的局限性

仿真截圖無法表現出數碼管在動態顯示時鐘的狀態。




完整的Word格式文檔51黑下載地址:

單片機課設.docx (1.06 MB, 下載次數: 30)

數字時鐘.zip (68.26 KB, 下載次數: 48)




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:579259 發表于 2019-12-9 17:39 | 只看該作者
所有代碼,原理圖仿真,代碼均為原創
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久热9| 欧美天堂在线观看 | 在线观看中文字幕一区二区 | 成人免费一级视频 | 91精品国产91久久综合桃花 | 一区二区三区国产在线观看 | 免费毛片网站 | 日本一区二区高清不卡 | 中文字幕成人 | 在线看日韩 | 欧美日韩亚洲一区 | 亚洲va国产日韩欧美精品色婷婷 | 日本免费一区二区三区 | 欧美成人精品一区 | 国产精品99久久久久久www | 日韩欧美国产不卡 | 国产一区二区三区在线视频 | 日韩欧美国产精品一区 | jlzzjlzz国产精品久久 | 欧美在线 | 国产精品久久久久久久久久久久久 | 国产一卡二卡三卡 | 韩日一区二区 | 精品久久久久国产免费第一页 | 特黄毛片视频 | 91大神在线资源观看无广告 | 欧美二区三区 | 不卡在线视频 | 爱高潮www亚洲精品 中文字幕免费视频 | 亚洲国产精品成人 | 国产成人精品999在线观看 | 黄色一级毛片 | 夜夜摸夜夜操 | 日韩成人在线网站 | 日韩欧美一区二区在线播放 | 九九九久久国产免费 | 在线视频国产一区 | 天天插天天操 | av毛片| 国产精品久久久久久久久久免费看 | 精品少妇一区二区三区在线播放 |