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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

用74LS164驅動數碼管

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年01月28日   【字體:

3、實訓進度安排

(1)第一天上午:布置任務、分組、確定題目。

(2)第一天下午和晚上:查找資料確定方案,畫出系統組成框圖、硬件電路圖、軟件流程圖。

(3)第二天上午:同步進行元件購買和軟件設計

(4)第二天下午和晚上:同步進行軟件設計與電路焊接

(5)第三天上午:同步進行軟件設計與電路焊接

(6)第三天下午和晚上:同步進行軟件仿真調試和電路調試

(7)第四天上午:軟硬件聯調

(8)第四天下午和晚上:軟硬件聯調,撰寫實訓報告(每組一份)

(9)第五天上午和下午:產品測試與答辯

 

通過本次課程設計的實踐,進一步學習、掌握單片機應用系統的有關知識,加深了解單片機的工作原理。也進一步掌握簡單單片機應用系統的設計、制作、調試的方法。同時還提高自身的動手實踐能力和科學的思維能力。

同時值得一提的是,在此設計過程中,就對時分之間的點閃爍體現是用查表輸出形式實現的,由于本系統設計是采用74LS164驅動數碼管,只有一個數據信號輸入口,所以不能對數碼管進行“位”控,只能對數碼管的整體顯示進行控制。所以每秒內至少需兩次數據輸出并顯示,第一次輸出顯示的數的小數點都不亮,第二次輸出顯示的數(數的值不變)中第三個數碼管的數的小數點亮,兩者交替輸出顯示,即可實現點時分之間的點閃爍。在具體實現過程中是用查表方式實現,即在第二次輸出顯示時,把R3的值加10,既R3查表所得的值是TAB表格中第二排數值(參看程序清單),而第二排數值所對應顯示的數都是小數點亮的,在此次輸出顯示完成后,再把R3減10,返回原來的值并繼續進行計時。另外在設計按鈕時,一開始遇到的難題是:按一下按鈕,時或分所加的數值并不為1,加的數為不確定值,最后經過研究,使設計程序在查詢P1.2,P1.3端口時,若檢測到高電平時需延遲20ms左右后,再進行二次檢測,以消除按鈕的抖動干擾,使之按一下能正確調節時分進行加1調整(參看程序清單)。最后值得總結的是,在程序設計過程中還存在很多細節上的問題,如因為沒有對進位標志位CY清零,在其他程序都正確的情況下卻始終調不出正確滿意的結果,最后費了很多時間精力去查找尋錯,才得以解決,這使我認識到在程序設計過程中,平時必須加強對一些細小環節的重視,這樣才能在真正程序設計時能做到正確快速的調試成功。總的說來,這次課程設計收益匪淺,通過認真思考、查找資料,以及和同學、老師的探討,解決了很多問題,同時也增長了很多在課堂上學不到的知識。

 

;中斷向量程序段

org    0000h

    ajmp   start  

    org   000bh    ;定時器T0中斷向量地址

    ajmp  dingshi   

    org   001bh    ;定時器T0中斷向量地址

    ajmp  ds

;*********************************************

;初始化程序段

   org  0030h   

start:  mov   sp,#30h   

   mov    tmod,#11h     ;定時器設置

   mov    th0,#3ch      ;定時1秒

   mov    tl0,#0b0h

   mov    iE,#8ah       ;打開定時中斷

   mov    p1,#00h

   setb   tr0

;*********************************************

;主程序段

main:   mov    p1,#00h

   mov    a,p1

   jb     acc.3,proc3    ;查詢P1.3端口電壓

   jb     acc.2,proc2    ;查詢P1.2端口電壓

   ajmp   main

;*********************************************

;二次檢測P1.3,P1.2端口電平

proc3:  acall  delay0         ;延時20ms 

   mov    p1,#00h

   mov    a,p1

   jb     acc.3,jiafen

   ret

proc2:  acall  delay0         ;延時20ms

   mov    p1,#00h

   mov    a,p1

   jb     acc.2,jiashi

   ret

;*********************************************

;調節分子程序

jiafen: clr    p1.3

   mov    ie,#00h

   clr    tr0

   inc     r1

   cjne    r1,#0ah,xianshi0    ;十進位

   mov     r1,#00h

   inc     r2

   cjne    r2,#06h,xianshi0    ;六進位

   mov     r2,#00h

xianshi0:acall   show

   mov     ie,#8ah      ;打開TO,T1中斷

        setb    tr0          ;使T0開始計時

   ret

;*********************************************

; 調節時子程序

jiashi: clr     p1.2

   mov    ie,#00h

   clr    tr0

   cjne    r4,#02h,sjw   ;判斷R4是否為2

;*******

;二十四清零

inc     r3            

   cjne    r3,#04h,xianshi1 ;四進位

   mov     r3,#00h

   inc     r4

   cjne    r4,#03h,xianshi1 ;三進位

   mov     r4,#00h

   ajmp    xianshi1

;********

sjw:    inc     r3             

        cjne    r3,#0ah,xianshi1   ; 十進位

   mov     r3,#00h

   inc     r4

   cjne    r4,#03h,xianshi1   ;三進位

   mov     r4,#00h

xianshi1:acall  show

   mov     ie,#8ah     ;打開TO,T1中斷

        setb    tr0         ;使T0開始計時

   ret

;*********************************************

;TO產生中斷計時子程序

dingshi:mov    th1,#0ffh    ;T1賦初值(可任意值)

   mov    tl1,#0feh

        mov     th0,#3ch    ;T0賦初值(定時0.1s)

   mov     tl0,#0b0h 

   inc     r6

   cjne    r6,#0ah,dings0    ; 十進位

   mov     r6,#00h

   setb    et1

   setb    tr1

   inc     r5

   cjne    r5,#3ch,dings4    ; 60進位

   mov     r5,#00h

   inc     r1

   cjne    r1,#0ah,dings4    ; 十進位

   mov     r1,#00h

   inc     r2

   cjne    r2,#06h,dings4    ; 六進位

   mov     r2,#00h

   cjne    r4,#02h,sjw       ;判斷R4是否為2

;*******

;二十四清零

inc     r3                

   cjne    r3,#04h,dings4    ; 四進位

   mov     r3,#00h

   inc     r4

   cjne    r4,#03h,dings4    ; 三進位

mov     r4,#00h

   ajmp    dings4

;*******

sjw:    inc     r3

   cjne    r3,#0ah,dings4     ; 十進位

   mov     r3,#00h

   inc     r4

   cjne    r4,#03h,dings4     ; 三進位

   mov     r4,#00h

dings4: acall   show

dings0: reti 

;*********************************************

;T1中斷子程序

ds:     clr  tr1

   acall delay               ;延時約0.5s

;*******

;R3加10

 mov  a,#0ah               

   add  a,r3

   mov  r3,a

   acall  show

;*******

; R3減10

   mov  a,r3

   clr c            ;特別注意在減法操作時應清除CY標志位

   subb a,#0ah

   clr  c

   mov  r3,a

   reti

;*********************************************

;顯示子程序

show:   mov   dptr,#Tab

   mov   70h,#04h    ; 顯示的位數

   mov   r0,#01h     ;先輸出R0值

led:    mov   71h,#08h

   mov   a,@r0

   movc  a,@a+dptr

   setb  p1.1        ;P1.1  時鐘信號 

tart:   rlc   a

   nop

   mov   p1.0,c      ;P1.0  數據信號

   nop

   clr   p1.1

   nop

   setb  p1.1

   djnz  71h,tart

   inc   r0         ;進行加1,分別輸出R2,R3,R4的值

   djnz  70h,led

   ret 

;*********************************************

;延時約20ms子程序

delay0:  mov 75h,#4eh

loop01:  mov 76h,#0ffh

loop02:  nop

    djnz 76h,loop02

    djnz 75h,loop01

    ret

;*********************************************

;延時約0.5S子程序

delay:  mov 74h,#03h

loop0:  mov 73h,#0ffh

loop1:  mov 72h,#0ffh

loop2:  nop

   djnz 72h,loop2

   djnz 73h,loop1

   djna 74h,loop0

   ret

;*********************************************

; 本表為顯示數據表

Tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh 

;“0,1,2,3,4,5,6,7,8,9”

db 0bfh,86h,0dbh,0cfh,0e6h,0edh,0fdh,87h,0ffh,0efh 

;帶有小數點顯示的“0,1,2,3,4,5,6,7,8,9” 

;*********************************************

         end   

關閉窗口

相關文章

主站蜘蛛池模板: 国产成人a亚洲精品 | 久久精品亚洲精品国产欧美 | 日韩高清电影 | 国产在线第一页 | 成人中文字幕在线 | 欧美在线播放一区 | 亚洲一区二区三区在线观看免费 | 久久高清| 波多野结衣中文字幕一区二区三区 | 国产精品色婷婷久久58 | 欧美日韩高清在线观看 | 国产一级片免费视频 | 久久久久久蜜桃一区二区 | 亚洲a视| 视频第一区| 欧美一区二区三区免费在线观看 | 亚洲欧美精 | 91视频亚洲| 一区二区三区小视频 | 成人乱人乱一区二区三区软件 | 日韩成人在线播放 | 欧美韩一区二区三区 | 成人 在线 | 九九热这里 | 色又黄又爽网站www久久 | 国产精品免费一区二区三区 | 91精品国产一二三 | 亚洲日产精品 | 台湾a级理论片在线观看 | 日日综合| 国产三级精品视频 | 欧美色综合天天久久综合精品 | 九色在线观看 | 亚洲一区二区三区在线免费 | 亚洲国产日韩欧美 | 久久久精品 | 成人国产精品入口免费视频 | 日本天堂视频 | 中文字幕在线观看一区二区 | 日本黄色大片免费 | 国产69精品久久久久777 |