Nguyên văn bởi congdt
Xem bài viết
Code:
select_row: mov r5,scan_row ;scan_row là hàng muốn quét mov dptr,#ram_data ;ram_data = 2000h địa chỉ chọn ram row1: cjne r5,#1,row2 ;so sánh xem quét hàng mấy loop1: movx a,@dptr ;đọc từ ram mov c,acc.0 ;đưa bit đầu tiên ra 595 mov ds_, c setb clk ;dịch bit inc dptr ;tăng để đọc byte tiếp theo của ram clr clk djnz width,loop1 ;width là số byte muốn truyền ret row2: cjne r5,#2,row3 loop2: movx a,@dptr mov c,acc.1 mov ds_, c setb clk inc dptr clr clk djnz width,loop2 ret row3: cjne r5,#3,row4 loop3: movx a,@dptr mov c,acc.2 mov ds_, c setb clk inc dptr clr clk djnz width,loop3 ret row4: cjne r5,#4,row5 loop4: movx a,@dptr mov c,acc.3 mov ds_, c setb clk inc dptr clr clk djnz width,loop4 ret row5: cjne r5,#5,row6 loop5: movx a,@dptr mov c,acc.4 mov ds_, c setb clk inc dptr clr clk djnz width,loop5 ret row6: cjne r5,#6,row7 loop6: movc a,@dptr mov c,acc.5 mov ds_, c setb clk inc dptr clr clk djnz width,loop6 ret row7: cjne r5,#7,row8 loop7: movx a,@dptr mov c,acc.6 mov ds_, c setb clk inc dptr clr clk djnz width,loop7 ret row8: cjne r5,#8,end_ loop8: movx a,@dptr mov c,acc.7 mov ds_, c setb clk inc dptr clr clk djnz width,loop8 ret end_: ret
cảm ơn anh
Comment