ตัวอย่างใน วีโอ ใช้ col scan จะเห็นได้ว่าข้อมูล ในแต่ละ col
จะถูกส่งออกที่ละอัน โดยข้อมูลเป็นของ col segment ไหน
ก็ on col segment นั้น ถ้าเราหน่วงเวลาช้าๆ ก็จะเห้นเป็นแค่ไฟวิ่งแค่นั้น
แต่ถ้าลองเร็วๆซัก 5ms ก็จะเห็นเป็นตัวอักษรแล้ว...
วีโอเป็น HD นะครับขยายได้ถ้ามองไม่ชัด
;//****************************
;//* Source Code For AT89c2051
;//****************************
shift_dat bit p1.0
shift_clk bit p1.1
col_lat bit p1.2
row_lat bit p1.3
;data segment
dseg at 020h
col_dat: ds 1
row_dat: ds 1
dl_a: ds 1
dl_b: ds 1
dl_c: ds 1
;//***** macro operator *****//;
set_col macro ___col_dat
mov a,#___col_dat
cpl a
acall col_shift_dat
endm
set_row macro ___row_dat
mov a,#___row_dat
acall row_shift_dat
endm
clr_col macro
acall col_clear_dat
endm
delay_ms macro ___d_1
mov dl_b,#___d_1
acall delay
endm
delay_x macro
delay_ms (5)
endm
;code segment
;//***** ap code start *****//;
cseg at 0000h
ajmp initial
cseg at 0050h
initial: mov p1,#0ffh
mov p3,#0ffh
mov sp,#050h
;clear internal ram
mov r0,#07fh
clr a
mov @r0,a
djnz r0,$-1
;shift initial logic
clr shift_clk
clr col_lat
clr row_lat
;//***** main program *****//;
main: set_row (0ffh) ; set row data col-1
set_col (00000001b) ; set col-1 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
set_row (011h) ; set row data col-2
set_col (00000010b) ; set col-2 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
set_row (011h) ; set row data col-3
set_col (00000100b) ; set col-3 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
set_row (031h) ; set row data col-4
set_col (00001000b) ; set col-4 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
set_row (051h) ; set row data col-5
set_col (00010000b) ; set col-5 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
set_row (08eh) ; set row data col-6
set_col (00100000b) ; set col-6 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
set_row (0h) ; set row data col-7
set_col (01000000b) ; set col-7 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
set_row (0h) ; set row data col-8
set_col (10000000b) ; set col-8 on
delay_x ; delay 200ms
clr_col ; clear col data reduct blur
ajmp main
;//***** delay ms min=1ms max=255ms *****//;
delay: mov dl_a,#230
delay1: nop
djnz dl_a,delay1
djnz dl_b,delay
ret
;//***** col shift data *****//;
col_shift_dat: mov b,#8
col_shift_dat1: rlc a
mov shift_dat,c
setb shift_clk
nop
clr shift_clk
djnz b,col_shift_dat1
setb col_lat
nop
clr col_lat
ret
;//***** row shift data *****//;
row_shift_dat: mov b,#8
row_shift_dat1: rlc a
mov shift_dat,c
setb shift_clk
nop
clr shift_clk
djnz b,row_shift_dat1
setb row_lat
nop
clr row_lat
ret
col_clear_dat: mov b,#8
col_clear_dat1: setb shift_dat
setb shift_clk
nop
clr shift_clk
djnz b,col_clear_dat1
setb col_lat
nop
clr col_lat
ret
end
ผมใช้การสแกนแบบ col ครับ มันประหยัด ram ดี
เริ่มแรกต้องทำความเข้าใจว่า row & col คืออะไร รู้แล้วไม่เป็นไร
เอาคนที่ไม่รู้ row คือ แถวในแนวนอน col คือ แถวในแนวตั้ง
การสแกนแบบ row คือ
1.ส่ง data col register ก็คือ ข้อมูลทาง row นั่นเอง
2.สั่ง row segment on
3.หน่วงเวลา ประมาณ 5 ms
4.เลื่อนข้อมุล data col register กลับไปทำ ข้อ 1
วนจนครบ 8 ครั้ง ก็เป็น 8 แถวพอดี
การสแกนแบบ col คือ
1.ส่ง data row register ก็คือ ข้อมูลทาง col นั่นเอง
2.สั่ง col segment on
3.หน่วงเวลา ประมาณ 5 ms
4.เลื่อนข้อมุล data row register กลับไปทำ ข้อ 1
วนจนครบ 8 ครั้ง ก็เป็น 8 แถวพอดี
4 ความคิดเห็น:
ขอบคุณมากสำหรับข้อมูลครับ ผมกำลังทำโปรเจกเรื่องนี้พอดี ถ้าไม่รบกวนเกินไป ผมอยากได้บทความไปทำรูปเล่มเกี่ยวกับการสแกน ครับ ขอบคุณครับ
ยินดีครับ....
The King Casino Online ᐈ Get 50% up to €/$100 + 50 Free Spins
Get 50% febcasino.com up to €/$100 + 50 Free Spins casinosites.one · Visit https://jancasino.com/review/merit-casino/ the official site · Log in to your Casino Account · If you do 메이피로출장마사지 not agree apr casino to the terms of the terms of the agreement,
แสดงความคิดเห็น