當前位置:編程學習大全網 - 編程語言 - 找到51單片機數碼管動態顯示“6688”的匯編程序~電路如下~謝謝~

找到51單片機數碼管動態顯示“6688”的匯編程序~電路如下~謝謝~

s1位p0.0數碼管位置定義

s2位p0.1

s3位p0.2

s4位p0.3

s5位p0.4

s6位p0.5

s7位p0.6

s8位p0.7

led _ data equ p2數碼管數據定義

org 00h程序起始

jmp main主程序開始

org 030h主程序從30H開始。

主營:MOV sp,# 30h設置堆棧

l全部休息;調用初始化程序

lcall pro _ 8led調用數碼管顯示程序

jmp main返回

;* * * * * * * *初始化程序* * * * * * * * * * * *

其余:MOV a,# 00h清除寄存器

MOV b,# 00h清除寄存器

MOV p0,# 0;禁止數碼管顯示。

MOV p2,# 255;

MOV p 1.0 ffh;禁止LED顯示

clr嘟嘟聲;沒有蜂鳴器

ret返回

;* * * * * *數碼管顯示程序* * * * * * * * * * * * * *

pro_8led:

MOV b,# 32;壹個* * *顯示32個數字。

clr psw.3復位寄存器組

setb psw.4

MOV r0,# 00h數據顯示從0開始。

MOV r1,# 01h;數碼管從1開始。

回路:MOV p0,r 1;點亮當前數碼管

MOV a,r0;準備第壹批數據

MOV dptr,# tab _ nu獲取標題

MOVc a,@ a+dptr;獲得第壹批數據

MOV led_data,a;輸出至顯示數據端口

lcall延遲;500毫秒延遲

lcall延遲;1秒延遲

inc r0準備下壹個數據

MOV a,r 1;準備下壹個數碼管。

RLC a;設置下壹個數碼管。

JC c 1;顯示所有8位,傳輸

MOV r1,a;否則,設置下壹位。

djnz b,loop32的數字沒有顯示,將返回顯示。

ret否則返回主程序。

c1: MOV r1,# 1;顯示8位後,再次開始循環。

clr c;設置顯示位

djnz b,loop顯示32位後,它將返回重新顯示。

ret否則返回主程序。

;* * * * * * * * * *數碼管顯示* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。

;* * * * * * * * * * * *軟件延遲為500毫秒* * * * * * * * * * * * * * * * * * * * * * * * * * * *

延遲:推psw保存原始寄存器內容。

clr psw.3

clr psw.4設置新的寄存器組

MOV r0,# 2;延遲參數1

MOV r1,# 250;延遲參數2

MOV r2,# 2;延遲參數3

dl1:djnz r0,dl 1;延遲周期1

MOV r0,# 250;

dl2:djnz r1,dl 1;延遲周期2

MOV r0,# 240;

MOV r1,# 248;

dl3:djnz r2,dl 1;延遲周期3

nop定時精度調整

pop psw恢復原始寄存器

ret返回

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

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

;這是壹個數字顯示表,其中帶小數點的數字比不帶小數點的數字大16。

;比如0的顯示碼是0;然後顯示代碼0。是16;等等

tab_nu:

db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h數字0-7沒有十進制代碼。

db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh不帶十進制代碼的數字8-f

db 40h,79h,24h,30h,19h,12h,02h,78h帶有十進制代碼的數字0-7

db 00h,10h,08h,03h,46h,21h,06h,0eh帶十進制代碼的數字8-f

結束

  • 上一篇:計算機中,壹個數據在機器裏是怎樣處理的呢?
  • 下一篇:8萬買鋼炮不選GTI還有誰?博越換老5系是賺還是賠?
  • copyright 2024編程學習大全網