1. 數碼管顯示設計
本設計使用了一個4位的數碼管,為共陽型,為了節省單片機的IO口,使用了兩片74HC595作為數碼管的驅動晶片,共佔用3個IO口。74HC595部分電路圖如下:
與單片機相連接的三個腳分別為:HC_DAT,HC_RCK,HC_CLK。兩片595採用級聯方式,即U2的第9腳接到U3的第14引腳。
2. 74HC595簡介
74HC595是8位的移位寄存器,串入並出,並具有鎖存功能,被廣泛的用於數碼管、點陣的驅動電路中。其管腳介紹如下:
15:數據輸出A-接數碼管數據A段;
1:數據輸出B-接數碼管數據B段;
2:數據輸出C-接數碼管數據C段;
3:數據輸出D-接數碼管數據D段;
4:數據輸出E-接數碼管數據E段;
5:數據輸出F-接數碼管數據F段;
6:數據輸出G-接數碼管數據G段;
7:數據輸出H-接數碼管數據H段;
16:電源正腳-接電源正;
8:電源負腳-接電源負;
14:數據輸入腳-接單片機管腳;
12:數據鎖存時鐘-接單片機管腳;
11:數據輸入時鐘-接單片機管腳;
13:使能輸出腳-低電平有效,接低電平;
10:數據清零-不清零,接高電平;
9:數據級聯輸出-接下一片595的數據輸入腳;
74HC595的真值表如下:
知道了74HC595的引腳定義和真值表,那該如何編程呢?下面重點來了,通過時序圖來編程。看重點!!!
3. 74HC595時序圖
我是重點!我是重點!我是重點!
通過時序可以看出:
SCK是上升沿的時候要把數據寫入;
RCK是上升沿的時候數據才能鎖存顯示;
有數據操作的過程中RESET必須是高電平;
EN必須是低電平,595才能工作;
知道了以上4點就可以寫程序了。其中3、4條是硬體連接上的事情(也可以用單片機的IO口來連接,這樣的話可以隨時控制74HC595的工作與否情況)。寫程序主要靠1、2條。下面具體操作。
4. 程序實例
看下面一段程序:
第39行:HC595_CLK(0)的原型如下:
HC595_CLK(0)是讓CLK處於低電平,即上升沿還沒有來到;
HC595_DAT(1)就是要把寫入的數據準備好;
temp<<1是將數據移位,即一個字節分八次寫入;
HC595_CLK(1)是讓CLK處於高電平,即上升沿來了;
以上幾句解釋一下就是:
在CLK時鐘上升沿來臨之前把要寫入的數據準備好,等上升沿來了就把準備好的數據寫入。這就是對時序圖的解釋。
記住,這僅僅是把數據寫入到了74HC595中,但是還沒有讓74HC595鎖存,即沒有讓數據顯示出來,如果讓數據顯示的話,必須要給RCK一個上升沿(即時序圖中的第2條),操作如下:
單片機執行完這個程序後,數據才會在數碼管上顯示出來。
這一節內容的難度較大,主要是因為時序圖這個東西是很模糊的一個內容,大家可以慢慢理解體會。
推薦閱讀
STC15單片機實驗名稱:使用NTC電阻測量溫度實驗內容: 使用NTC電阻測量溫度並顯示在數碼管上 讀取DS18B20模塊測量溫度作為參考實驗器材: STC15W408AS_DIP16 x1 DS18B20 x1 TM1637數碼管 x1
發表於 2020-12-17
/*一款電子鐘程序,此電子鐘是四位電子鐘數碼管組成的,功能分別有走時、響鬧、走時間調整、鬧鐘時間調整等功能!調整部分分別由三個按鍵實現,一個功能鍵,一個+(加)鍵,另一個為-(減)鍵,其它功能鍵是復用功能!*/硬鍵介紹:數碼管個位.十位.百位.千位.小數點分別接P0.0 P0.1 P0.2 P0.3 P0.4。蜂鳴器接P3.5腳,功能按鍵接P3.2 加按鍵接P3.3 減按鍵接P3.4以下是兩張圖片!!!#include <reg52.h>//頭文件#define uchar unsigned char//宏定義#define uint unsigned int//宏定義uchar shi,fen,nshi,nfen,ma
發表於 2020-12-17
51單片機做的溫度顯示,溫度顯示在LCD1602液晶屏上。然後按鍵可以調整溫度閾值,溫度高於或低於所設溫度,蜂鳴器就會響……單片機源程序如下:/*************************************************************************************** 基於單片機的實時溫度報警系統設計  
發表於 2020-12-17
當電機較大時,啟動是個必須注意的問題。比較簡單且用的很多的是星三角啟動,這裡寫出了星三角啟動的核心部分。每一個IO口接上繼電器,再控制交流接觸器,就OK了。但,要注意,星、角交流接觸器一定要互鎖,否則一旦某個交流接觸器粘連,就造成短路了。#include <reg51.h>sbit K1=P3^1; //按鍵1,控制第1個繼電器啟動sbit K2=P3^2; //按鍵2,控制第2個繼電器啟動sbit J1=P1^5; //星接繼電器sbit J2=P1^6; //星點繼電器sbit J3=P1^7; //角繼電器void Delay_1ms(unsigned i
發表於 2020-12-16
、技術性能穩定等特點而受到廣大用戶和專業人士的歡迎。而本設計的電路包括硬體和軟體兩個部分。硬體部分包括紅外感應部分與單片機控制部分。整個系統電路可劃分為:電源部分、傳感器模塊部分、單片機控制電路,而單片機控制由最小系統和指示燈電路、報警電路等子模塊組成。主要工作由熱釋電紅外感應器完成信息採集、處理、數據傳送經過單片機功能設定到達報警模塊這一過程。就此設計的核心模塊來說,單片機就是設計的中心單元。單片機應用系統也是由硬體和軟體組成。硬體包括單片機、輸入/輸出設備、以及外圍應用電路等組成的系統,軟體是主要是工作的程序通過編寫程序來控制輸入的信號。二、設計任務分析1.該設計包括硬體和軟體設計兩個部分。模塊劃分為數據採集、按鍵設定、報警
發表於 2020-12-16
用一個按鍵控制四個繼電器循環導通,程序由51單片機的程序改到STC15F104W上,第一次按鍵,第一個繼電器吸合,第二次按鍵,第二個繼電器吸合,第一個繼電器釋放,以此類推。最初的想法就是實現電風扇,三檔開關,程序裡面可以修改埠。#include<reg52.h>sbit key = P3^4; //定義按鍵void delayms(void); //延時void led_refresh(unsigned char
發表於 2020-12-16