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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1338|回復: 11
打印 上一主題 下一主題
收起左側(cè)

單片機使用匯編語言和定時器動態(tài)數(shù)碼管顯示00到99

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1135835 發(fā)表于 2024-11-22 09:37 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
要求是:采用匯編語言設(shè)計程序,用定時器中斷方式,循環(huán)顯示0-99。目前寫的,但是只有十位能正確顯示,后面都是亂碼,新手小白求助各位大佬(接線圖在下面)
ORG  0000H
LJMP MAIN
ORG  000BH
LJMP T0_INT
ORG  0100H
MAIN:                            ;初始化
    MOV  TMOD, #01H            ;定時器0模式1
    MOV  TL0, #0B0H            ;定時器0初值低8位
    MOV  TH0, #3CH             ;定時器0初值高8位
    SETB TR0                   ;啟動定時器0
    SETB ET0                   ;使能定時器0中斷
    SETB EA                    ;開啟全局中斷
    MOV  DPTR, #TAB            ;表首址送DPTR
    MOV  R0, #0                ;計數(shù)器初始化為0
    MOV  R1, #0                ;輔助計數(shù)器初始化為0
M_LOOP:
    CALL DIS                   ;調(diào)用顯示程序
    SJMP M_LOOP                 ;無限循環(huán)

T0_INT:                         ;定時器0中斷服務程序
    MOV  TL0, #0B0H            ;重新加載定時器0初值低8位
    MOV  TH0, #3CH             ;重新加載定時器0初值高8位
    INC  R1                    ;輔助計數(shù)器R1加1
    MOV  A, R1
    CJNE A, #20, T0_E           ;如果R1不等于20,則跳轉(zhuǎn)到T0_E
    MOV  R1, #0                 ;R1清零
    INC  R0                    ;計數(shù)器R0加1
    MOV  A, R0
    CJNE A, #100, T0_E         ;如果R0不等于100,則跳轉(zhuǎn)到T0_E
    MOV  R0, #0                 ;R0清零
T0_E:
    RETI                        ;從中斷返回

DIS:                             ;顯示程序
    MOV  A, R0                 ;取計數(shù)器R0的值
    MOV  B, #10                ;除以10,B寄存器為10
    DIV  AB                    ;A/B,商在A,余數(shù)在B
    MOV  R2, A                 ;商(十位)存儲在R2
    MOV  R3, B                 ;余數(shù)(個位)存儲在R3

    MOV  A, R2                 ;顯示十位
    MOVC A, @A+DPTR
    CLR  P1.0
    MOV  P0, A
    SETB P0.0                 ;十位的位選
    CALL DLY

    MOV  A, R3                 ;顯示個位
    MOVC A, @A+DPTR
    CLR  P0.0
    MOV  P1, A
    SETB  P1.0                 ;個位的位選
    CALL DLY
    RET

TAB:    DB  3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ;數(shù)碼管顯示編碼0-9
DLY:    MOV  R4, #20             ;10ms延時
D1:     MOV  R5, #248
        DJNZ R5, $
        DJNZ R4, D1
        RET
END

2.jpg (398.95 KB, 下載次數(shù): 0)

接線圖

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

使用道具 舉報

沙發(fā)
ID:1109793 發(fā)表于 2024-11-22 15:18 | 只看該作者
這么復雜的板子,干嘛用匯編啊
回復

使用道具 舉報

板凳
ID:123917 發(fā)表于 2024-11-22 21:03 | 只看該作者
計數(shù)到100了,清零,返回主程序加LJMAP MAIN
回復

使用道具 舉報

地板
ID:624769 發(fā)表于 2024-11-22 22:21 | 只看該作者
   MOV  A, R2                 ;顯示十位
    MOVC A, @A+DPTR
    CLR  P1.0
    MOV  P0, A
    SETB P0.0                 ;十位的位選
    CALL DLY

    MOV  A, R3                 ;顯示個位
    MOVC A, @A+DPTR
    CLR  P0.0
    MOV  P1, A
    SETB  P1.0                 ;個位的位選
    CALL DLY
    RET
你這板子什么情況? 個位,和十位 段選 用的不是 同一個總線? 那你 到了十萬位,百萬位,千萬位, 還要用 P5,P6, P7 ? 你單片機有那么多口子么?
回復

使用道具 舉報

5#
ID:76044 發(fā)表于 2024-11-23 09:59 | 只看該作者
顯示部分改了下,看看能不能用

DIS:                             ;顯示程序
    MOV  A, R0                 ;取計數(shù)器R0的值

    MOV  B, #10                ;除以10,B寄存器為10
    DIV  AB                    ;A/B,商在A,余數(shù)在B
    MOVC A, @A+DPTR
    MOV  P1, A
    SETB P0.0                 ;十位的位選
    CALL DLY
    CLR  P0.0.

    MOV  A, B                 ;顯示個位
    MOVC A, @A+DPTR   
    MOV  P1, A
    SETB  P0.1                 ;個位的位選
    CALL DLY
    CLR  P0.1

    RET
回復

使用道具 舉報

6#
ID:1072347 發(fā)表于 2024-11-24 16:13 | 只看該作者
5樓的似乎沒問題,你的原本的顯示部分寫的有點臃腫
回復

使用道具 舉報

7#
ID:1136459 發(fā)表于 2024-11-24 17:05 | 只看該作者
A_Bit EQU 20H
B_Bit EQU  21h  ;十位數(shù)存放處
TEMP  EQU 22h

STAR:  MOV  TEMP, #0 ;初始化計數(shù)器

STLOP:  
ACALL  DISPLAY
INC  TEMP
MOV  A,TEMP
CJNE  A,#100,NEXT ;=100重來
MOV  TEMP,#0

NEXT:
LJMP  STLOP

;顯示子程序
DISPLAY:
      MOV A, TEMP ;將temp中 的數(shù)轉(zhuǎn)換成10進制
      MOV B,#10;
      DIV AB;
      MOV B_Bit,A ;十位在A
      MOV A_Bit,B;個位在B
      MOV DPTR,#TAB;指定查表啟始地址
      MOV R0,#2;4

DPL1:  MOV  R1,#100;250 ;顯示1000次
DPLOP: MOV A,A_Bit;取個位數(shù)
      MOVC A,@A+DPTR;查個位數(shù)的7段代碼
      ;CPL A;
      MOV  P1 ,A;送出個位的7段代碼
      CLR  P2.7;
      ACALL D1MS;延時顯示1ms
      SETB P2.7;
      MOV  A,B_Bit  ;取十位數(shù)
      MOVC A, @A+DPTR ;查十位數(shù)的7 段代碼
      ;CPL A;
      MOV  P1 ,A;送出十位的7段代碼
      CLR  P2.6;
      ACALL D1MS;
      SETB P2.6;
      DJNZ  R1,DPLOP  ;100次沒完循環(huán)
      DJNZ  R0,DPL1  ;2個100次沒完循環(huán)RET
      ;延時4毫秒即2微秒* R7*R6(按12MHZ算)


D1MS: MOV  R7 ,#5;10
      D1:  MOV  R6,#50;
           DJNZ R6,$;
           DJNZ R7,D1;
           RET;

;7段數(shù)碼管各劃的數(shù)字排列表,共陽的七段花數(shù)
TAB:
DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h;
END;就不知道對不對,我們學校給的
回復

使用道具 舉報

8#
ID:1136459 發(fā)表于 2024-11-24 17:18 | 只看該作者
A_Bit EQU 20H
B_Bit EQU  21h  ;十位數(shù)存放處
TEMP  EQU 22h

STAR:  MOV  TEMP, #0 ;初始化計數(shù)器

STLOP:  
ACALL  DISPLAY
INC  TEMP
MOV  A,TEMP
CJNE  A,#100,NEXT ;=100重來
MOV  TEMP,#0

NEXT:
LJMP  STLOP

;顯示子程序
DISPLAY:
      MOV A, TEMP ;將temp中 的數(shù)轉(zhuǎn)換成10進制
      MOV B,#10;
      DIV AB;
      MOV B_Bit,A ;十位在A
      MOV A_Bit,B;個位在B
      MOV DPTR,#TAB;指定查表啟始地址
      MOV R0,#2;4

DPL1:  MOV  R1,#100;250 ;顯示1000次
DPLOP: MOV A,A_Bit;取個位數(shù)
      MOVC A,@A+DPTR;查個位數(shù)的7段代碼
      ;CPL A;
      MOV  P1 ,A;送出個位的7段代碼
      CLR  P2.7;
      ACALL D1MS;延時顯示1ms
      SETB P2.7;
      MOV  A,B_Bit  ;取十位數(shù)
      MOVC A, @A+DPTR ;查十位數(shù)的7 段代碼
      ;CPL A;
      MOV  P1 ,A;送出十位的7段代碼
      CLR  P2.6;
      ACALL D1MS;
      SETB P2.6;
      DJNZ  R1,DPLOP  ;100次沒完循環(huán)
      DJNZ  R0,DPL1  ;2個100次沒完循環(huán)RET
      ;延時4毫秒即2微秒* R7*R6(按12MHZ算)


D1MS: MOV  R7 ,#5;10
      D1:  MOV  R6,#50;
           DJNZ R6,$;
           DJNZ R7,D1;
           RET;

;7段數(shù)碼管各劃的數(shù)字排列表,共陽的七段花數(shù)
TAB:
DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h;
END;
回復

使用道具 舉報

9#
ID:1135835 發(fā)表于 2024-11-28 23:33 | 只看該作者
188610329 發(fā)表于 2024-11-22 22:21
MOV  A, R2                 ;顯示十位
    MOVC A, @A+DPTR
    CLR  P1.0

感謝感謝,接線是老師規(guī)定好的
回復

使用道具 舉報

10#
ID:1135835 發(fā)表于 2024-11-28 23:33 | 只看該作者
lxm41577 發(fā)表于 2024-11-23 09:59
顯示部分改了下,看看能不能用

DIS:                             ;顯示程序

謝謝謝謝
回復

使用道具 舉報

11#
ID:1135835 發(fā)表于 2024-11-28 23:33 | 只看該作者
55236 發(fā)表于 2024-11-24 17:18
A_Bit EQU 20H
B_Bit EQU  21h  ;十位數(shù)存放處
TEMP  EQU 22h

感謝感謝
回復

使用道具 舉報

12#
ID:1135835 發(fā)表于 2024-11-28 23:33 | 只看該作者
55236 發(fā)表于 2024-11-24 17:05
A_Bit EQU 20H
B_Bit EQU  21h  ;十位數(shù)存放處
TEMP  EQU 22h

感謝感謝
回復

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本精品一区二区 | 成人在线播放网站 | 特级黄一级播放 | 97国产一区二区精品久久呦 | 综合色播| 中文字幕日韩一区 | 最新免费av网站 | 一区二区在线免费观看 | 欧美一区二区在线播放 | 国产精品午夜电影 | 免费视频久久久久 | 中文字幕一区二区三区日韩精品 | 日日久| 成人久久久久久久久 | 四虎影院一区二区 | 久久丝袜| 国产精品国产精品国产专区不卡 | av在线影院 | 亚洲电影第三页 | 国产精品免费观看 | 国产亚洲二区 | av电影一区 | 欧美一级电影免费观看 | 国产剧情一区 | 久久国产婷婷国产香蕉 | 精品国产成人 | 欧美一区免费 | 精品一区二区免费视频 | 国产女人第一次做爰毛片 | 武道仙尊动漫在线观看 | 亚洲综合日韩精品欧美综合区 | 黄色大片观看 | 91精品久久久久久久久久入口 | 久草a√ | 国产中文视频 | 国产成人精品久久 | 亚洲一区二区在线 | 成人免费av| 一区二区在线免费观看 | 国产欧美一区二区三区国产幕精品 | 日韩欧美亚洲 |