用組合語言寫一程式,利用定時計數器,定時一秒,數碼管秒個位加1,同時有LED燈在迴圈流動

時間 2021-09-10 12:12:59

1樓:做而論道

;定時器定時一秒,一個數碼管秒個位加1,同時八個led燈迴圈流動很簡單的題目,只能寫很簡單的程式:

org   0000h

jmp   start

org   000bh

inc   r2

reti

start:

setb  tr0

mov   ie, #82h

mov   r3, #127

lp: mov   r4, #0

dp: mov   a, r4

mov   dptr, #tab

movc  a, @a + dptr

mov   p3, a

mov   p0, r3

mov   a, r3

rr    a

mov   r3, a

cjne  r2, #122, $  ;定時 999424usmov   r2, #0

inc   r4

cjne  r4, #10, dp

jmp   lp

tab:

db   0c0h,0f9h,0a4h,0b0h, 99hdb   92h, 82h, 0f8h, 80h, 90hend

2樓:匿名使用者

org   0000h

ljmp   begin

org   000bh

ljmp t0isr

org 0030h

begin:

mov sp,#5fh

mov tmod,#01h

mov th0,#3ch

mov tl0,#0b0h

mov a,#0

mov   dptr,#table

movc  a,@a+dptr

mov   p1,a

setb tr0

setb et0

setb ea

mov r2,#0

mov r4,#0

mov r7,#0

sjmp $

t0isr:

clr tr0

mov th0,#3ch

mov tl0,#0b0h

setb tr0

inc r7

cjne r7,#10,t01

t01:

jc t0e

mov r7,#0

inc r2

inc r4

cjne r2,#10,t02

t02:

jc lp

mov r2,#0

lp:mov a,r2

mov   dptr,#table

movc  a,@a+dptr  ;找到相應位顯示**mov   p1,a

cjne r4,#9,t03

t03:

jc leddis

mov r4,#1

leddis:

mov a,#0ffh

clr c

push 04h

leddis1:

rlc a

djnz r4,leddis1

mov p0,a

pop 04h

t0e:

reti

table:      ; 共陰極數碼管顯示**表db    3fh,06h,5bh,4fh,66h ;01234db    6dh,7dh,07h,7fh,6fh ;56789end

利用51微控制器,4個數碼管設計一個計時器,要求在數碼管上顯示的資料從0開始每1秒鐘加1。 10

3樓:anyway丶

共陽數碼管中斷程式:

#include

#define uint unsigned int

#define uchar unsigned char

uchar code table=

;uint num,a;

uchar bai,shi,ge;

void init();

void delay(uint);

void display(ucharbai,ucharshi,ucharge);

uint fb();

uint fs();

uint fg();

void main()

}void init()

void display(ucharbai,ucharshi,ucharge)

void timeoff() interrupt 1}}

void delay(uint z)

uint fb()

uint fs()

uint fg()

擴充套件資料

2個可程式設計定時/計數器·5箇中斷源,2個優先順序(52有6個)

一個全雙工序列通訊口

外部資料儲存器定址空間為64kb

外部程式儲存器定址空間為64kb

邏輯操作位定址功能·雙列直插40pindip封裝

單一+5v電源供電

cpu:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能暫存器;

ram:用以存放可以讀寫的資料,如運算的中間結果、最終結果以及欲顯示的資料;

rom:用以存放程式、一些原始資料和**;

i/o口:四個8位並行i/o口,既可用作輸入,也可用作輸出

t/c:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;

五個中斷源的中斷控制系統;

一個全雙工uart(通用非同步接收傳送器)的序列i/o口,用於實現微控制器之間或微控制器與微機之間的序列通訊;

片內振盪器和時鐘產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6m—12m。

4樓:匿名使用者

我剛剛寫好的 我的數碼管是共陽的 用中斷函式來寫#include

#define uint unsigned int#define uchar unsigned charuchar code table=

;uint num,a;

uchar bai,shi,ge;

void init();

void delay(uint);

void display(ucharbai,ucharshi,ucharge);

uint fb();

uint fs();

uint fg();

void main()

}void init()

void display(ucharbai,ucharshi,ucharge)

void timeoff() interrupt 1}}void delay(uint z)

uint fb()

uint fs()

uint fg()

5樓:匿名使用者

#include

#define uint unsigned int

uint qian,bai,shi,ge;

int a;

unsigned char code table=;

void chushihua(); //初始化函式

void delay(unsigned int i); //延時函式

void xianshi(uint qian,uint bai,uint shi,uint ge); //顯示函式

void main()

xianshi(qian,bai,shi,ge); } }

void exter1() interrupt 1

void chushihua()

void delay(unsigned int i)

void xianshi(uint qian,uint bai,uint shi,uint ge)

6樓:匿名使用者

這個不難的 你自己動手練習一下就會了的

微控制器彙編程式,用微控制器定時/計數器t0產生的一秒的定時時間,作為秒計數時間,當一秒產生時,秒計數

7樓:匿名使用者

彙編比較麻煩

但是也能寫

8樓:做而論道

參考

其實,上次給你的,是最簡單的。

比 c 語言程式更要簡單的多。

9樓:單身女王

setb tr0

mov r2, #122

wait:

jnb tf0, $

clr tf0

djnz r2, wait

dec p0

sjmp 0000hend

編寫一個定時一秒的子程式,利用該子程式編寫一個延時一分鐘的程式。微控制器組合語言題目求解

10樓:匿名使用者

equ min 60h ;分存放單元;精度不是很高的,看著辦

delay1min:

acall delay1sec

djnz r6,exit

mov r6,#60

inc min

retdelay1sec:

mov r5,#250

de2:

mov r4,#20

de1:

mov r3,#10

djnz r3,$

djnz r4,de1

djnz r5,de2ret

11樓:

這個把你們教科書上的延時程式改改就行了。子程式定時一秒,然後主程式中迴圈60次。

利用組合語言寫出高效的3x 1程式

愛因景潤 unsigned long d asm 這個程式我除錯過了,只要運算過程中不出現越界就沒問題。變數d你定義到資料段中就行了。另外我還除錯了一下你給的 好像無論怎樣都jmp start6,根本跳不出來耶。還有據我理解,你的 是往前看好幾步,然後2個4個的往上加,我不知道你為什麼採用這種演算法...

用組合語言編寫程式計算5 10

超級花生 dseg segment result dw 存放和 dseg ends cseg segment assume cs cseg,ds dsegstart mov ax,dseg mov ds,ax mov ax,5 從5開始加 mov result,0 和的初值賦0 mov cx,20 ...

使用組合語言或C51語言設計程式,控制發光二極體每1秒鐘閃亮一次

include reg52.h unsigned char i main void t0 interrupt 1 12m晶振 p1.0 接 led 低電平有效 1s內亮滅各一次。中斷 led bit p1.0 org 00h ajmp main org 0bh ajmp t0int org 30h ...