精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于51單片機的8位數碼管電子時鐘仿真圖及源代碼詳細資料概述

2oON_changxuemc ? 來源:未知 ? 作者:易水寒 ? 2018-07-19 17:13 ? 次閱讀

利用8位數碼管顯示時間,原理與4位數碼管顯示的基本一樣

仿真圖:

程序源代碼:

本程序已經通過在線軟件仿真和硬件制作.

org 0000h ;程序開始入口地址

sjmp main ;跳轉至主程序

org 000bh ;T0中斷入口地址

ljmp inti0 ;跳轉至T0中斷程序

org 001bh ;T1中斷入口地址

ljmp inti1 ;跳轉至T1中斷程序

org 0030h

main:mov tmod,#11h ;設T0、T1為模式1

mov ie,#8ah ;開T0、T1允許中斷

mov th0,#4ch ;賦T0 50ms初值

mov tl0,#00h

mov th1,#4ch ;賦T1 50ms初值

mov tl1,#00h

mov sp,#60h ;設置堆棧指針

mov 38h,#00 ;鬧鐘分初值

mov 39h,#00 ;鬧鐘時初值

mov 31h,#00 ;時間秒初值

mov 32h,#00 ;時間分初值

mov 33h,#00 ;時間時初值

setb tr0 ;啟動定時器T0

setb tr1 ;啟動定時器T1

loop:lcall display ;調用時間顯示程序

lcall keysan ;調用時間調節按鈕

lcall keynz ;調用鬧鐘控制按鈕

ajmp loop

inti0:push psw ;壓入堆棧指針,保護現場

push acc

clr ea ;關中斷www.dgzj.com

mov th0,#4ch ;重賦T0定時初值

mov tl0,#00h

inc 3ah ;3ah為50ms計數單元

mov a,3ah

cjne a,#20,out ;1秒計數是否到

mov 3ah,#00 ;清50ms計數初值

inc 31h ;秒加1

mov a,31h

cjne a,#60,out ;60秒計數是否到

mov 31h,#00

inc 32h ;分加1

mov a,32h

cjne a,#60,out ;60分計數是否到

mov 32h,#00

inc 33h ;時加1

mov a,33h

cjne a,#24,out ;24時計數是否到

mov 33h,#00

out: setb ea ;開中斷

pop acc ;彈出堆棧指針,恢復現場

pop psw

reti ;中斷返回

inti1:push psw ;壓入堆棧指針,恢復現場

push acc

clr ea

mov th1,#4ch ;重賦T1定時初值

mov tl1,#00h

inc 71h ;71h為50ms計數單元

mov a,71h

cjne a,#20,out1

mov 71h,#00

mov a,32h ;鬧鐘判斷

cjne a,38h,out1 ;鬧鐘時間分判斷

mov a,33h

cjne a,39h,out1 ;鬧鐘時間時判斷

clr p1.0 ;到鬧鐘時間,清p1.0

out1:setb ea ;開中斷

pop acc

pop psw

reti ;中斷返回

display:mov a,31h ;秒顯示

mov b,#10

p ab

mov 20h,a ;將十位放入20h單元

mov 21h,b ;將個位、余數放入21h單元

disp1: mov a,20h ;秒十位顯示

mov dptr,#table

movc a,@a+dptr ;將A的內容+table內容,結果回存給A

mov p0,a ;將A給P0口

clr p2.6 ;清p2.6,點亮第7位數碼管

lcall del1ms ;調用1ms延時子程序

setb p2.6 ;滅第7位數碼管

disp2: mov a,21h ;秒個位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.7

lcall del1ms

setb p2.7

disp4: mov a,32h ;分顯示

mov b,#10

p ab

mov 22h,a

mov 23h,b

disp5: mov a,22h ;分十位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.3

lcall del1ms

setb p2.3

disp6: mov a,23h ;分個位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.4

lcall del1ms

setb p2.4

disp7: mov a,33h ;時顯示

mov b,#10

p ab

mov 24h,a

mov 25h,b

disp8: mov a,24h ;時十位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.0

lcall del1ms

setb p2.0

disp9: mov a,25h ;時個位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.1

lcall del1ms

setb p2.1

disp10: mov 34h,#0bfh ;"-"顯示

mov a,34h

mov p0,a

clr p2.5

lcall del1ms

setb p2.5

disp11: mov 35h,#0bfh ;"-"顯示

mov a,35h

mov p0,a

clr p2.2

lcall del1ms

setb p2.2

ret

display1:mov a,38h ;鬧鐘分顯示

mov b,#10

p ab

mov 26h,a

mov 27h,b

d1:mov a,26h ;鬧鐘分十位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.3

lcall del1ms

setb p2.3

d2:mov a,27h ;鬧鐘分個位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.4

lcall del1ms

setb p2.4

dispnz: mov a,39h ;鬧鐘時顯示

mov b,#10

p ab

mov 28h,a

mov 29h,b

d5: mov a,28h ;鬧鐘時十位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.0

lcall del1ms

setb p2.0

d6: mov a,29h ;鬧鐘時個位顯示

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.1

lcall del1ms

setb p2.1

mov 35h,#0bfh ;"-"顯示

mov a,35h

mov p0,a

clr p2.2

lcall del1ms

setb p2.2

ret

table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;數字0—9

del1ms:mov r7,#10 ;1ms延時子程序

del1: mov r6,#50

del2:djnz r6,del2

djnz r7,del1

ret

del20ms:mov r5,#40 ;20ms延時子程序

del3: mov r4,#250

del4: djnz r4,del4

djnz r5,del3

ret

keysan:jnb p3.1,key1 ;秒加1按鈕

jnb p3.2,key2 ;分加1按鈕

jnb p3.3,key3 ;時加1按鈕

sjmp keyout

key1: lcall del20ms

jb p3.1,keyout

jnb p3.1,$

inc 31h ;秒加1

mov a,31h

cjne a,#60,keyout

mov 31h,#00

sjmp keyout

key2:lcall del20ms

jb p3.2,keyout

jnb p3.2,$

inc 32h ;分加1

mov a,32h

cjne a,#60,keyout

mov 32h,#00

sjmp keyout

key3:lcall del20ms

jb p3.3,keyout

jnb p3.3,$

inc 33h ;時加1

mov a,33h

cjne a,#24,keyout

mov 33h,#00

sjmp keyout

keyout:ret

keynz:jnb p3.4,keynz4 ;顯示鬧鐘并可修改和顯示當前時間

jnb p3.7,keynz5

jnb p3.5,nz3

jnb p3.6,nz4

sjmp nzout

nzout:ret

nz2:lcall display1

jnb p3.5,nz3

jnb p3.6,nz4

keynz4:jnb p3.4,nz2

sjmp nzout

nz3:lcall del20ms

jb p3.5,nzout

jnb p3.5,$

inc 38h

mov a,38h

cjne a,#60,nzout

mov 38h,#00

sjmp nzout

nz4:lcall del20ms

jb p3.6,nzout

jnb p3.6,$

inc 39h

mov a,39h

cjne a,#24,nzout

mov 39h,#00

sjmp keyout

keynz5:jb p3.7,nzout

jnb p3.7,$

setb p1.0

sjmp nzout

end

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 51單片機
    +關注

    關注

    273

    文章

    5699

    瀏覽量

    123225
  • 數碼管
    +關注

    關注

    32

    文章

    1876

    瀏覽量

    90970
  • 電子時鐘
    +關注

    關注

    11

    文章

    197

    瀏覽量

    24504

原文標題:51單片機8位數碼管電子時鐘仿真圖及源代碼

文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    8位數碼管顯示的電子時鐘

    采用8位數碼管顯示,DS1302時鐘芯片,89S51單片機。 四個輸入按鍵,已加入調時程序。電路已運行測試走時穩定。
    發表于 05-18 09:08 ?43次下載

    51單片機的可調電子時鐘編寫有源代碼及proteus仿真

    基于51單片機的可調電子時鐘,1602顯示,可調節時間和鬧鐘,有源代碼和proteus仿真
    發表于 08-31 10:50 ?228次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>的可調<b class='flag-5'>電子時鐘</b>編寫有<b class='flag-5'>源代碼</b>及proteus<b class='flag-5'>仿真</b><b class='flag-5'>圖</b>

    基于數碼管電子時鐘代碼設計詳細資料免費下載

    本文檔的主要內容詳細介紹的是基于數碼管電子時鐘代碼設計資料免費下載。
    發表于 07-04 08:00 ?34次下載

    51單片機串口接受并顯示在數碼管的程序源代碼詳細資料免費下載

    本文檔的主要內容詳細介紹的是51單片機串口接受并顯示在數碼管的程序源代碼詳細資料免費下載。
    發表于 09-04 16:16 ?51次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>串口接受并顯示在<b class='flag-5'>數碼管</b>的程序<b class='flag-5'>源代碼</b><b class='flag-5'>詳細資料</b>免費下載

    使用51單片機設計的六位數碼管電子時鐘程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機設計的六位數碼管電子時鐘程序免費下載。
    發表于 09-26 14:58 ?122次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>設計的六<b class='flag-5'>位數碼管</b><b class='flag-5'>電子時鐘</b>程序免費下載

    8位數碼管電子時鐘仿真及程序源代碼

    利用8位數碼管顯示時間,原理與4位數碼管顯示的基本一樣。
    的頭像 發表于 01-21 16:24 ?1.4w次閱讀
    <b class='flag-5'>8</b><b class='flag-5'>位數碼管</b><b class='flag-5'>電子時鐘</b><b class='flag-5'>仿真</b><b class='flag-5'>圖</b>及程序<b class='flag-5'>源代碼</b>

    使用51單片機實現六位數碼管時鐘的程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現六位數碼管時鐘的程序免費下載。
    發表于 07-19 17:38 ?32次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>實現六<b class='flag-5'>位數碼管</b><b class='flag-5'>時鐘</b>的程序免費下載

    使用51單片機進行數碼管顯示的電子時鐘的C語言程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機進行數碼管顯示的電子時鐘的C語言程序免費下載。
    發表于 06-03 08:00 ?23次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>進行<b class='flag-5'>數碼管</b>顯示的<b class='flag-5'>電子時鐘</b>的C語言程序免費下載

    使用51單片機實現的電子時鐘源代碼和電路仿真資料合集免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現的電子時鐘源代碼和電路
    發表于 03-06 08:00 ?14次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>實現的<b class='flag-5'>電子時鐘</b><b class='flag-5'>源代碼</b>和電路<b class='flag-5'>圖</b>及<b class='flag-5'>仿真</b><b class='flag-5'>資料</b>合集免費下載

    51單片機開發板實現6位數碼管數字時鐘仿真電路免費下載

    本文檔的主要內容詳細介紹的是51單片機開發板實現6位數碼管數字時鐘仿真電路
    發表于 04-10 08:00 ?20次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>開發板實現6<b class='flag-5'>位數碼管</b>數字<b class='flag-5'>時鐘</b>的<b class='flag-5'>仿真</b>電路<b class='flag-5'>圖</b>免費下載

    使用51單片機實現8位數碼管時鐘的程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現8位數碼管時鐘的程序免費下載。
    發表于 11-13 08:00 ?11次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>實現<b class='flag-5'>8</b><b class='flag-5'>位數碼管</b><b class='flag-5'>時鐘</b>的程序免費下載

    基于51單片機電子時鐘數碼管顯示設計資料

    基于51單片機電子時鐘數碼管顯示設計資料
    發表于 10-25 10:07 ?13次下載

    51單片機系列--8位數碼管

    數碼管通常用于電子時鐘電子秤、日歷、電梯顯示等用于顯示數字的電子器件上,其優點是顯示明亮清晰、容易控制、價格低廉,缺點是占用引腳過多。在實際生活中應用廣泛。下面是集成板上的
    發表于 11-20 16:51 ?21次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>系列--<b class='flag-5'>8</b><b class='flag-5'>位數碼管</b>

    基于51單片機數碼管顯示電子時鐘例程源代碼

    基于51單片機數碼管顯示電子時鐘例程源代碼
    發表于 05-12 16:33 ?46次下載

    51單片機8位數碼管顯示學號程序編寫思路

    51單片機是一種非常經典的單片機型號,具有廣泛的應用領域。我們可以利用51單片機的IO口來控制8
    的頭像 發表于 01-04 15:21 ?7199次閱讀