7段LED數(shù)碼管_第1頁
7段LED數(shù)碼管_第2頁
7段LED數(shù)碼管_第3頁
7段LED數(shù)碼管_第4頁
7段LED數(shù)碼管_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 7段led數(shù)碼管是利用7個led(發(fā)光二極管)外加一個小數(shù)點的led組合而成的顯示設備,可以顯示09等10個數(shù)字和小數(shù)點,使用非常廣泛,它的外觀如下: 這類數(shù)碼管可以分為共陽極與共陰極兩種,共陽極就是把所有l(wèi)ed的陽極連接到共同接點com,而每個led的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點);共陰極則是把所有l(wèi)ed的陰極連接到共同接點com,而每個led的陽極分別為a、b、c、d、e、f、g及dp(小數(shù)點),如下圖所示。圖中的8個led分別與上面那個圖中的adp各段相對應,通過控制各個led的亮滅來顯示數(shù)字。 那么,實際的數(shù)碼管的引腳是怎樣排列的呢?對于單個數(shù)碼管來說,從它的正

2、面看進去,左下角那個腳為1腳,以逆時針方向依次為110腳,左上角那個腳便是10腳了,上面兩個圖中的數(shù)字分別與這10個管腳一一對應。注意,3腳和8腳是連通的,這兩個都是公共腳。 還有一種比較常用的是四位數(shù)碼管,內(nèi)部的4個數(shù)碼管共用adp這8根數(shù)據(jù)線,為人們的使用提供了方便,因為里面有4個數(shù)碼管,所以它有4個公共端,加上adp,共有12個引腳,下面便是一個共陰的四位數(shù)碼管的內(nèi)部結構圖(共陽的與之相反)。引腳排列依然是從左下角的那個腳(1腳)開始,以逆時針方向依次為112腳,下圖中的數(shù)字與之一一對應。(點擊圖片放大)原創(chuàng)文章如轉載,請注明:轉載自萬用電路板 /

3、ds18b20引腳定義: (1)dq為數(shù)字信號輸入/輸出端;(需要加個上拉電阻加到電源上) (2)gnd為電源地; (3)vdd為外接供電電源輸入端(在寄生電源接線方式時接地)。 本人做過它的課程設計。 以下是程序,你要是有ds18b20的資料最好,沒有的話我可以傳給你。 2個數(shù)碼管顯示。精確到1c。程序沒加報警功能,你可以在最后一段中,比較一下temper_l和temper_h中的數(shù)值 與你要報警的數(shù)值。自己試一下吧! org 0000h ;單片機內(nèi)存分配申明! temper_l equ 29h;用于保存讀出溫度的低8位 temper_h equ 28h;用于保存讀出溫度的高8位 flag1

4、 equ 38h;是否檢測到ds18b20標志位 a_bit equ 20h;數(shù)碼管個位數(shù)存放內(nèi)存位置 b_bit equ 21h ;數(shù)碼管十位數(shù)存放內(nèi)存位置 dq equ p1.2 check equ p1.0 check1 equ p1.3 negtive equ p1.4 main: lcall get_temper;調(diào)用讀溫度子程序 ;進行溫度顯示,用兩位數(shù)碼管來顯示 ;顯示范圍-55到99度,顯示精度為1度 lcall display;調(diào)用數(shù)碼管顯示子程序 ajmp main ; ds18b20復位初始化子程序 init_1820: setb dq nop clr dq ;主機發(fā)出延

5、時637微秒的復位低脈沖 mov r1,#3h tsr1: mov r0,#6bh djnz r0,$ djnz r1,tsr1 setb dq;然后拉高數(shù)據(jù)線 nop nop nop mov r0,#25h tsr2: jnb dq,tsr3;等待ds18b20回應 djnz r0,tsr2 ljmp tsr4 tsr3: setb flag1 ; 置標志位,表示ds1820存在 clr check1;檢查到ds18b20就點亮led ljmp tsr5 tsr4: clr flag1 ; 清標志位,表示ds1820不存在 ljmp tsr7 tsr5: mov r0,#117 tsr6:

6、djnz r0,tsr6 ; 時序要求延時一段時間 tsr7: setb dq ret ; 讀出轉換后的溫度值 get_temper: setb dq bcd: lcall init_1820;先復位ds18b20 jb flag1,tss2 ljmp bcd ; 判斷ds1820是否存在?若ds18b20不存在則返回 tss2:; mov r3,#23 ; djnz r3, $ clr check ;ds18b20已經(jīng)被檢測到! mov a,#0cch ; 跳過rom匹配 lcall write_1820 mov a,#44h ; 發(fā)出溫度轉換命令 lcall write_1820 lcal

7、l delay;延時750微秒 lcall init_1820;準備讀溫度前先復位 mov a,#0cch ; 跳過rom匹配 lcall write_1820 mov a,#0beh ; 發(fā)出讀溫度命令 lcall write_1820 lcall read_1820; 將讀出的溫度數(shù)據(jù)保存 ret ;延時程序 delay: mov r2,#4h delaya: mov r3,#0ffh delayb: mov r4,#0ffh delayc: djnz r4,delayc djnz r3,delayb djnz r2,delaya ret ;寫ds18b20的子程序(有具體的時序要求) w

8、rite_1820: mov r2,#8;一共8位數(shù)據(jù) clr c setb dq nop nop wr1: clr dq mov r3,#6 djnz r3,$ rrc a mov dq,c mov r3,#23 djnz r3,$ setb dq nop djnz r2,wr1 setb dq ret ; 讀ds18b20的程序,從ds18b20中讀出兩個字節(jié)的溫度數(shù)據(jù) read_1820: mov r4,#2 ; 將溫度高位和低位從ds18b20中讀出 mov r1,#temper_l ; 低位存入29h(temper_l),高位存入28h(temper_h) re00: mov r2,

9、#8;數(shù)據(jù)一共有8位 re01: clr c setb dq nop nop clr dq nop nop nop setb dq mov r3,#8 ;16us re10: djnz r3,re10 mov c,dq mov r3,#23 ;70us re20: djnz r3,re20 rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 ret ;顯示子程序 ;根據(jù)temper_h高5位是1來判斷溫度是否為負,若為負,則取反再+1 display: mov a,temper_h jnb acc.1,posi clr negtive cpl a m

10、ov temper_h,a mov a,temper_l cpl a clr c inc a mov temper_l,a mov a,temper_h addc a,#0h mov temper_h,a ;temper_h高4位為0,根據(jù)溫度計算方法,temper_h,temper_l的數(shù)值除16就是實際溫度 ;右移4位即實際溫度,把temper_l高4位和temper_h低4位合并再對換,后轉換為10進制即得實際溫度數(shù)據(jù) posi: mov a,temper_l anl a,#0f0h mov a_bit,a mov a,temper_h add a,a_bit swap a clr c da a mov b_bit,a anl a,#0fh mov dptr,#zi

溫馨提示

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

評論

0/150

提交評論