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 ...