Chia sẻ Code lập trình Vi Điều Khiển 8051 cơ bản ASM

nguyenthedan

Học sinh trung cấp
mọi người cho mình hỏi, cái này là cấu trúc dạng com phải ko, trên lớp mình học dạng exe thì code có khác nhiều ko? Thanks!!!
 

ledieu0107

Học sinh trung cấp
Ngày xưa thi môn asm này dc những 10đ cơ 89 đọc adc lấy từ 2 cb hiển thị lên lcd 4 dòng giớ hạn nhiệt độ và cảnh báo ak có thêm nút nhấn để cài đặt nhiệt độ cảnh báo nữa :)) giờ nghĩ lại thấy vui vui chúng nó viết C hết cả mình cũng phải nâng cấp trình của mình chứ
Bạn cho mình xin code điều khiển nhiệt độ có phím cài đặt viết bằng asm với.
 

hieponline1

Học sinh phổ thông
Tặng bạn nhé, chơi luôn cả 3 Port 0-1-2. Lẻ ra mình không viết hộ nhưng vì lúc trước củng có đi làm quảng cáo và biết được hoàn cảnh bạn bây giờ nên mới code cho bạn. Chúc thành công :)
Xem đính kèm 29814
Mã:
#include <REGX52.H>

unsigned char dem;
//--------------------------------------------------------
void delay_us(unsigned char h)
{
    unsigned char i,a;
    for(i=0;i<h;i++)
    {
        a=0;
    }
}
//----------------------------------------------------------
void dow(void) interrupt 2
{
    delay_us(2);                //chong doi phim
    dem=dem+5;
    if(dem>70) dem=70;
}
//------------------------------------------------------------
void up(void) interrupt 0
{
    delay_us(2);            // chong doi phim
    dem=dem-5;
    if(dem<5) dem=5;
}
//--------------------------------------------------------------
void delay_x10us(unsigned char time)
{
    while(time--)   
    {
        unsigned char j=1;
        while(j--); // lap 1 lan : 1*8,28us =8,28uS
    }
}
//-----------------------------------------------------------
void main()
{
    TCON=0x05;                // bang 1 ngat theo suon xuong
    IE=0x85;
    dem=50;                       // Sang trung binh
    P0=P1=P2=0x00;
    delay_us(10);
    while(1)
    {
            P0=P1=P2=0xff;
            delay_x10us(100-dem);    // T = Ton + Toff = 828uS    =>>F=1,2Khz
            P0=P1=P2=0x00;
            delay_x10us(dem);
    }
}
Bản Full
Bác có thể băm xung 32 bit bằng asm không ạ?
 

laptoan

Học sinh phổ thông
Còn PRO nào ở room này không, cho em xin tham khảo code asm về 16 đèn led và 8 nút bấm ic 8051. Bấm 8 nút bấm là 16 đèn led nháy theo 8 kiểu khác nhau với ạ.

Thanks!!!
 

npoan2010

Học sinh phổ thông
Chip cho mình hỏi về ma trận nhé.mình tìm trên mạng thấy có mấy code ma trận chạy chữ 8 x x24 mình nghĩ nó cũng giống hồ quang 8 x 24. nên mình làm thử 1 mạch hồ quang . nhưng sao khi thử lần lượt 2 code
code 1 :
org 0000h
num equ 20h
start: call xoa
mov r3, #0
call QUATP1 ;
jmp start

QUATP1:
call xoa
mov dptr, #b_1 ;
la1: mov r4, #25
ql1: call h1
djnz r4, ql1
inc dptr
inc r3
cjne r3, #48, la1 ;
mov r3, #0
ret

h1:
mov r0, #00000001b
mov r1, #00h
ll1: mov a, r0
rR a
mov r0, a
mov p1, r0
mov a, r1
movc a, @a+dptr
mov p0, a
inc r1
call del1
call xoa
call del1
cjne r0, #00000001b, ll1
ll2: mov a, r0
rR a
mov r0, a
mov p2, r0
mov a, r1
movc a, @a+dptr
mov p0, a
inc r1
call del1

call xoa
call del1
cjne r0, #00000001b, ll2
ll3: mov a, r0
rR a
mov r0, a
mov p3, r0
mov a, r1
movc a, @a+dptr
mov p0, a
inc r1
call del1
call xoa
call del1
cjne r0, #00000001b, ll3
ret

del1:
mov r7, #2
v6: mov r6, #50
djnz r6, $
djnz r7, v6
ret
delay:
mov r7, #5
v6a: mov r6, #50
v5: mov r5, #250
djnz r5, $
djnz r6, v5
djnz r7, v6a
ret
xoa: mov p0, #0ffh ; NHU VAY MOI CHAY
mov p2, #00h
mov p3, #00h
mov p1, #00h
ret
b_1:
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H

code 2:
org 0000h
num equ 20h
start: call xoa
mov r3, #0

call sentoa
call senthu ;

jmp start


SENTOA:
call xoa
mov num, #3
lamt1: mov dptr, #STOA ;
mov r3, #0
qlai1: mov r2, #40
llai1: call XOAY5
djnz r2, llai1
inc dptr
inc dptr
inc dptr
inc r3
cjne r3, #16, qlai1
djnz num, lamt1
ret
SENTHU:
call xoa
mov num, #3
lamt2: mov dptr, #STHU ;
mov r3, #0
qlai2: mov r2, #40
llai2: call XOAY4
djnz r2, llai2
inc dptr
inc dptr
inc dptr
inc r3
cjne r3, #16, qlai2
djnz num, lamt2
ret

XOAY5:; TOA
mov r0, #11111110b
mov r1, #00h
XOAY55: mov a, r0
rr a
mov r0, a
mov p0, r0
;
mov a, r1
movc a, @a+dptr
mov p1, a
inc r1
mov a, r1
movc a, @a+dptr
mov p2, a
inc r1
mov a, r1
movc a, @a+dptr
mov p3, a
inc r1
call del1
call xoa
call del1
cjne r0, #11111110b, XOAY55
ret


XOAY4: ;THU
mov r0, #01111111b
mov r1, #00h

XOAY44: mov a, r0
rl a
mov r0, a
mov p0, r0
;
mov a, r1
movc a, @a+dptr
mov p1, a
inc r1
mov a, r1
movc a, @a+dptr
mov p2, a
inc r1
mov a, r1
movc a, @a+dptr
mov p3, a
inc r1
call del1
call xoa
call del1
cjne r0, #01111111b,XOAY44
ret

del1:
mov r7, #2
v6: mov r6, #50
djnz r6, $
djnz r7, v6
ret
delay:
mov r7, #5
v6a: mov r6, #50
v5: mov r5, #250
djnz r5, $
djnz r6, v5
djnz r7, v6a
ret
xoa: mov p0, #0ffh
mov p2, #00h
mov p3, #00h
mov p1, #00h
ret
STOA:

db 11110001b,11111111b,00011111b;29
db 11111000b,11111110b,00111110b;28
db 01111100b,01111100b,01111100b;27
db 00111110b,00111000b,11111000b;26
db 00011111b,00010001b,11110001b;25
db 10001111b,10000011b,11100011b;24
db 11000111b,11000111b,11000111b;23
db 11100011b,11101111b,10001111b;22
db 11110001b,11111111b,00011111b;21
db 11111000b,11111110b,00111110b;20
db 01111100b,01111100b,01111100b;19
db 00111110b,00111000b,11111000b;18
db 00011111b,00010001b,11110001b;17
db 10001111b,10000011b,11100011b;16
db 11000111b,11000111b,11000111b;15
db 11100011b,11101111b,10001111b;14
db 11110001b,11111111b,00011111b;13
db 11111000b,11111110b,00111110b;12
db 01111100b,01111100b,01111100b;11
db 00111110b,00111000b,11111000b;10
db 00011111b,00010001b,11110001b;9
db 11000111b,11000111b,11000111b;7
db 11100011b,11101111b,10001111b;6
db 11110001b,11111111b,00011111b;5
db 11111000b,11111110b,00111110b;4
db 01111100b,01111100b,01111100b;3
db 00111110b,00111000b,11111000b;2
db 00011111b,00010001b,11110001b;1


STHU:
db 00011111b,00010001b,11110001b
db 00111110b,00111000b,11111000b
db 01111100b,01111100b,01111100b
db 11111000b,11111110b,00111110b
db 11110001b,11111111b,00011111b
db 11100011b,11101111b,10001111b
db 11000111b,11000111b,11000111b
db 10001111b,10000011b,11100011b
db 00011111b,00010001b,11110001b
db 00111110b,00111000b,11111000b
db 01111100b,01111100b,01111100b
db 11111000b,11111110b,00111110b
db 11110001b,11111111b,00011111b
db 11100011b,11101111b,10001111b
db 11000111b,11000111b,11000111b
db 10001111b,10000011b,11100011b
db 00011111b,00010001b,11110001b
db 00111110b,00111000b,11111000b
db 01111100b,01111100b,01111100b
db 11111000b,11111110b,00111110b
db 11110001b,11111111b,00011111b
db 11100011b,11101111b,10001111b
db 11000111b,11000111b,11000111b
db 10001111b,10000011b,11100011b
db 00011111b,00010001b,11110001b
db 00111110b,00111000b,11111000b
db 01111100b,01111100b,01111100b
db 11111000b,11111110b,00111110b
db 11110001b,11111111b,00011111b
END
thì code1 đèn sáng ko tỏ và ko đều như code 2.
mong chip và các bạn giúp mình.
port 0 nối transitor a 1015
port 1.2.3 nối trực tiếp với dương led
mình dùng mạch như thế này
 

Đính kèm

Quảng cáo Google