Em có 6 con led 7 đoạn loại A chung được nối với nhau hình dưới.
Bây giờ em muốn hiển thị số 6-5-4-3-2-1 trên 6 led theo thứ tự từ trái sang phải, mỗi led hiện 1 số. Em có viết chương trình nguồn như dưới đây nhưng không biết sai do đâu mà khi mô phỏng thì không chạy. Nhờ mọi người trong diễn đàn góp ý giúp em với.
P/S: Sơ đồ mạch và file mô phỏng bằng phần mềm Proteus v7.8 ở đây
Bây giờ em muốn hiển thị số 6-5-4-3-2-1 trên 6 led theo thứ tự từ trái sang phải, mỗi led hiện 1 số. Em có viết chương trình nguồn như dưới đây nhưng không biết sai do đâu mà khi mô phỏng thì không chạy. Nhờ mọi người trong diễn đàn góp ý giúp em với.
Code:
;LED sang khi p2 = 0, p0 = 0 ;Dung p0 de quet, p2 de xuat ma 7 doan ;------------------------------------- org 0h sjmp main ma_so: db 82h, 92h, 99h, 0b0h, 0a4h, 0f9h ; so 6-5-4-3-2-1 ;------------------------------------- main: mov p2, #0ffh ; tat cac led clr a ; xoa thanh ghi a, a = 0 mov dptr, #ma_so ; dat con tro du lieu tai vi tri dau bang ; start: mov r0, #11111110b ; khoi tao gia tri dau tien cho xung quet mov a, r0 ; chep r0 vao a loop: mov p0, r0 ; xuat xung quet rl a ; quay trai a mov r0, a ; chep du lieu thay doi o a tro lai r0 push acc clr a movc a, @a+dptr ; nap du lieu trong bang vao a mov p2, a ; xuat du lieu ra led call delay_1ms ; goi ct lam tre de led sang mov p0, #0ffh ; xoa xung quet mov p2, #0ffh ; tat led pop acc inc dptr cjne r0, #10111111b, main ; quet het 6 led thi quay lai quet tu dau sjmp loop ; ;------------------------------------- delay_1ms: ; START: Wait loop, time: 1 ms ; Clock: 12000.0 kHz (12 / MC) ; Used registers: R0, R1 MOV R6, #002h MOV R7, #0F7h NOP DJNZ R6, $ DJNZ R7, $-5 NOP NOP NOP ret ; Rest: 0 ; END: Wait loop ;------------------------------------- end
Comment