Thông báo

Collapse
No announcement yet.

Tìm hiểu bảng quang báo

Collapse
This topic is closed.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #76
    tớ cũng đã từng làm quang báo 16x64 ( dùng 2 led 8x8 ghép chồng lên và kéo dài ra 8 led 8x8 nữa ) điều khiển đơn giản bằng AT89c51 giao tiếp PC thông qua giao diện viết băng Delphi, truyền kí tự không giới hạn. nhưng mà có một khuyết điểm là kèm theo cai PC hơi quá nặng ... kí. cũng đã từng dùng Eeprom nhớ nối tiếp nhưng mà dung lượng nhớ giới hạn quá.... nếu dùng ROM, RAM thì mạch cồng kềnh quá lại tốn tiền nhiều, thiết kế mạch củng rắc rối....
    bác nào có cao kiền ??????

    Comment


    • #77
      Bac nguyenvt lam giao tiep voi may tinh roi a bac co the tong quat lai cach lam cho bon em hoc hoi chut
      Dung la mach cua em bi noi do chuong trinh khi gui du lieu ra hang thi cot van con dien nhung trong thoi gian rat ngan nen chu bong sang mo,tuc la khi quyet cot thi ta phai gui du lieu hang ra sau con cot thi phai quyet truoc em nghi nhu vay dung ko cac bac
      Nghi la nhu vay nhung khi viet chuong trinh thi kho qua da bac nao lam matrix voi thanh ghi dich dung 74164 chua cho mot doan code lam vi du cho bon em sang mat ra
      chu ko thi met nam roi viet bang asm thi cang tot, em moi hoc vdk ko biet cac bac viet truong trinh de tao xung cho con 74164 nhu the nao ,em thi cu setb p3.0 roi clr p3.0 de tao ra xung nhung nghi mai van chua nghi ra cach viet de het cai bong do duoc cac bac hay bo chut thoi gian ra giup do nhe
      Cac bac thong cam em ko quyen go tieng viet
      lan sau em se dua cai mach mo phong bang proteus nen de cac bac xem
      |

      Comment


      • #78
        chao cac bac day la chuong trinh va mach cua em cac bac hay xem ho em xem no co sai cho nao ko ma em thu du cach no van bi bong chu ve phia truoc

        hang equ p2
        org 0000h

        nhan:
        mov dptr,#machu
        mov r2,#10
        main1: setb p3.1
        mov r1,#0
        mov hang,#0ffh
        main2:
        mov a,r1
        movc a,@a+dptr
        mov hang,a
        setb p3.0
        call delay

        clr p3.0
        clr p3.1
        inc r1
        mov hang,#0ffh

        cjne r1,#8,main2
        djnz r2,main1

        jmp nhan

        delay: mov r5,#1
        de: mov r6,#250
        djnz r6,$
        djnz r5,de
        ret

        machu:db 0ffh,0ffh,083h,0f5h,0f6h,0f5h,083h,0ffh
        end
        Last edited by tuan11; 18-03-2006, 15:41.
        |

        Comment


        • #79
          em ko dua duoc cai hinh anh nen duoc cac bac a
          |

          Comment


          • #80
            chao bac linhnc307 em doc cai chuong trinh bac viet cho quang bao roi rat hay nhung em van ko hieu cach bac tinh ham de dua ky tu tu ascii vao ram nhu te nao cai lenh subb a,#32 va mov b,#5,mul a,b la the nao vay bac emngu qua doc mai ma ko the hieu duoc mong bac va anh em chi giup
            |

            Comment


            • #81
              box nay ngung hoat dong roi sao rat mong duoc bac linh va anh em giup do giai thich dum em voi cach bac truy xuat de lay du lieu tu bang ky tu la the nao vay
              ; Chuogn trinh quang bao hien thi ban tin len bang LED
              ; MCU = AT89S52
              ; ICs = 74154 (decoder/demux 4-of-16)
              ; Software: READ51s
              ; Desinger: linhnc308@yahoo.com
              ; BK design - DT8K47. DHBKHN
              #include <sfr52.inc>

              ; Flag bit area in RAM 20h
              flag_bit equ 1

              index_l equ 21h
              index_h equ 22h ;con tro chi so cua ham doc ky tu
              offset_l equ 23h ;con tro cua ham tra bang ma ASCII
              offset_h equ 24h
              number_char_l equ 25h
              number_char_h equ 26h
              ;read_ok equ 26h

              org 0
              ljmp main

              org 0030h
              main:
              ; dinh nghia cac bien
              mov r0,#20h
              mov a,0ffh
              clr_ram_loop:
              mov @r0,a ; clear memory 40..127(internal Ram)
              inc r0
              cjne r0,#128,clr_ram_loop
              mov r4,#0

              acall so_ky_tu
              main_pro:
              clr a
              mov r0,a
              mov index_l,#0
              mov index_h,#0
              clr flag_bit
              get_char:
              acall doc_ky_tu
              end_get_char:
              check_ascii:
              clr c
              subb a,#32
              jnc check_ok
              clr a
              check_ok:
              mov b,#5
              mul ab
              mov offset_l,a
              mov offset_h,b

              copy_2_ram:
              mov r1,#127
              mov r0,#126
              shift_ram:
              mov a,@r0
              mov @r1,a
              dec r1
              dec r0
              cjne r1,#111,shift_ram
              ;acall display
              cjne r4,#5,copy_code_ascii

              next_char:
              mov 111,#0ffh ; tao diem ngan cac giau cac chu
              mov r4,#0
              setb flag_bit ; Bat co Flag =1 cho biet co mot tu da duoc copy
              inc index_l
              mov a,#00h
              cjne a,index_l,no_inc_counter_h
              inc index_h
              no_inc_counter_h:
              acall doc_ky_tu

              check_ascii2:
              clr c
              subb a,#32
              jnc check_ok
              clr a
              check_ok2:
              mov b,#5
              mul ab
              mov offset_l,a
              mov offset_h,b
              ljmp disp
              ; Start copy text to ram
              copy_code_ascii:
              mov dptr,#ascii_code
              mov a,offset_l
              add a,dpl
              jnc no_inc_dph
              inc dph
              no_inc_dph:
              mov dpl,a
              mov a,offset_h
              add a,dph
              mov dph,a
              mov a,r4 ; Doc ma LMD thu i(1..5) cua ky tu
              movc a,@a+dptr
              mov 111,a ; LED-column on the right side
              inc r4
              disp:
              acall display
              jnb flag_bit,jump_point
              clr flag_bit
              mov a,number_char_l
              cjne a,index_l,jump_point
              mov a,number_char_h
              cjne a,index_h,jump_point
              ljmp main
              jump_point:
              ljmp copy_2_ram



              ;**************Cac chuong trinh con**************
              display:
              mov r1,#127
              mov r5,#2 ; Bien quy dinh toc do chu chay, ket hop cung voi
              ini_disp: ; thoi gian cua ham Delay
              mov a,r1
              mov r0,a
              mov r3,#0
              loop:
              mov a,@r0
              mov p1,a
              mov p3,r3
              acall delay
              dec r0
              inc r3
              cjne r3,#16,loop
              djnz r5,ini_disp
              ret
              ;************************************************
              so_ky_tu:
              mov dptr,#number_char
              clr a
              movc a,@a+dptr
              mov number_char_h,a
              mov a,#1
              movc a,@a+dptr
              mov number_char_l,a
              ret

              doc_ky_tu:
              mov dptr,#my_text
              mov a,dpl
              add a,index_l
              jnc ko_tang_dph
              inc dph
              ko_tang_dph:
              mov dpl,a
              mov a,dph
              add a,index_h
              mov dph,a
              movc a,@a+dptr
              ret

              ;************************************
              ;HAM TAO THOI GIAN TRE KHI QUET COT
              DELAY: MOV R7,#2
              DL3: MOV R6,#250
              DL2: NOP ; 1 MC
              NOP ; 1 MC
              DJNZ R6,DL2 ; 2 MC TOTAL=(1+1+2)*250uS = 1000uS = 1mS
              DJNZ R7,DL3 ; 2 MC TOTAL=2*1mS + 2MC ~ 2mS
              RET
              ;***********************************
              DELAY2: MOV R7,#4
              DJNZ R7,$
              RET

              ;**********************************
              number_char: ; Dinh nghia so chu toi da. so 16bit tuc = 65000 tu
              db 01h,40h
              ;**********************************
              my_text: ; toi da la 65000 tu nhung neu thay doi code thi co the dung het ROM thi thoi
              DB " Dien tu8-K47 Khoa Dien Tu Vien Thong Truong Dai Hoc Bach Khoa" ;64 ky tu dau tien
              DB " Ha Noi. Bo mon Thiet ke mach Logic.Giang Vien Nguyen Nam Quan" ;64 ky tu tiep theo
              db " De tai: Mach Quang bao ung dung Vi dieu khien ho 8051.(AT89S5" ;64
              db "2) Sinh vien Thiet ke: Nguyen Chi Linh. Email:linhnc308@yahoo." ;64
              db "com Time is 5:05 Ngay 21 thang 10 nam 2005. 1_2,3:4'5>6<7 8 9 0" ;64 ky tu
              ; la 35 chu cai trong 1 lan hien thi(giua cac hu co mot khoang trang)
              ;**********************************
              ;**********************************
              my_text2:
              DB " "
              ;**********************************
              ;BANG MA HOA KY TU
              ;**********************************
              ascii_code:
              DB FFH,FFH,FFH,FFH,FFH;SPACE 0
              DB FFH,FFH,A0H,FFH,FFH;! 1
              DB FFH,FFH,F8H,F4H,FFH;' 2
              DB EBH,80H,EBH,80H,EBH;# 3
              DB DBh,D5H,80H,D5H,EDH;$ 4
              |

              Comment


              • #82
                Vì bạn viết không dấu khó đọc quá, nhìn vào ai cũng thấy nản. Đọc khó hiểu hơn tiếng Anh nữa. Cái Unikey người ta biếu không sao không lấy về mà dùng.
                Một bông hồng cho những ai đang còn mẹ,
                Đang còn mẹ để lòng vui sướng hơn ..

                Comment


                • #83
                  Nguyên văn bởi tuan11
                  chao bac linhnc307 em doc cai chuong trinh bac viet cho quang bao roi rat hay nhung em van ko hieu cach bac tinh ham de dua ky tu tu ascii vao ram nhu te nao cai lenh subb a,#32 va mov b,#5,mul a,b la the nao vay bac emngu qua doc mai ma ko the hieu duoc mong bac va anh em chi giup
                  Ban hay de y toi ma ascii cua ky tu: space=32, !=33,... cu nhu the. con x5 do chinh la khoang cach giua cac chu dc luu o trong Rom OK!
                  toi noi vay ko biet co dung ko ban Linhlc
                  ko biet bac su ly ra sao khi bang cua bac la 16 hang. Khi do khoang cach cac font chu ko deu nhau nhu font chu 8 hang(gia su chu "i" va chu "w" 1thang ma font ngan va 1 thang dai).lam the nao nhi?

                  Comment


                  • #84
                    CÁc bác này, dùng c1815 để cấp dòng thì có ổn không nhỉ? Nếu so với a1015 thì thế nào ?
                    |

                    Comment


                    • #85
                      Nguyên văn bởi tarzan
                      CÁc bác này, dùng c1815 để cấp dòng thì có ổn không nhỉ? Nếu so với a1015 thì thế nào ?
                      Nếu bạn cần kéo dòng xuống GND thì nên chọn transistor npn hoặc mosfet kênh N, nếu bạn muốn kéo dòng lên dương nguồn thì chọn transistor pnp hoặc mosfet kênh P.

                      Comment


                      • #86
                        đây là chuogn trinh quang bao dau tay cua toi.Moi nguoi cho y kien nhe

                        Comment


                        • #87
                          tìm hiểu bảng quang báo

                          các bác cho tiểu đệ thỉnh giáo cao chiêu với. tiểu đệ muốn làm 1 bảng quang báo mà dòng chữ hiểu thị có thể thay đổi được bằng bàn phím vi tính thì phải làm sao?

                          Comment


                          • #88
                            cái này dễ rùi mà ,chí cần truyền từng kí tự trong dòng chữ xuống rồi nạp vào bộ đệm rồi hiển thị là ok tuốt
                            void RecieveSerial() interrupt 4
                            {
                            if (RI) // if receive interrupt
                            {
                            text[index]=SBUF;
                            checkgiaotiep=1;
                            control=SBUF;
                            if (control=='0') speed++;
                            if (control=='1') speed--;
                            if (control=='2') speed=0;
                            if (speed==0) speed=0;
                            }
                            RI = 0;
                            index++;
                            }
                            void hienthivanban()
                            {
                            unsigned char i;
                            for (i=0;i<=index;i++)
                            {
                            loaddata(text[i]);
                            dichchuphai(0,100,15);
                            }

                            }//

                            void loaddata(unsigned char ascii)
                            {
                            if (ascii=='A') { ch[0]=0xF0;ch[1]=0xEB;ch[2]=0xDB;ch[3]=0xEB;ch[4]=0xF0;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // A
                            if (ascii=='B') { ch[0]=0x80;ch[1]=0xB6;ch[2]=0xB6;ch[3]=0xC9;ch[4]=0xFF;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} //
                            if (ascii=='C') { ch[0]=0xE3;ch[1]=0xDD;ch[2]=0xBE;ch[3]=0xBE;ch[4]=0xBE;ch[5]=0xBE;ch[6]=0xFF;ch[7]=0xFF;} //
                            if (ascii=='D') { ch[4]=0xE3;ch[3]=0xDD;ch[2]=0xBE;ch[1]=0xBE;ch[0]=0x80;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='E') { ch[4]=0x94;ch[3]=0xB6;ch[2]=0xB6;ch[1]=0xB6;ch[0]=0x80;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='F') { ch[4]=0xB7;ch[3]=0xB7;ch[2]=0xB7;ch[1]=0xB7;ch[0]=0x80;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='G') { ch[4]=0xB0;ch[3]=0xB6;ch[2]=0xB6;ch[1]=0xDD;ch[0]=0xE3;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='H') { ch[0]=0x80;ch[1]=0xF7;ch[2]=0xF7;ch[3]=0xF7;ch[4]=0xF7;ch[5]=0x80;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='I') { ch[4]=0xBE;ch[3]=0xBE;ch[2]=0x80;ch[1]=0xBE;ch[0]=0xBE;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='K') { ch[3]=0xBE;ch[2]=0xDD;ch[1]=0xEB;ch[0]=0x80;ch[4]=0xFF;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='L') { ch[4]=0xFE;ch[3]=0xFE;ch[2]=0xFE;ch[1]=0xFE;ch[0]=0x80;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='M') { ch[4]=0x80;ch[3]=0xDF;ch[2]=0xEF;ch[1]=0xF7;ch[0]=0xEF;ch[5]=0xDF;ch[6]=0x80;ch[7]=0xFF;} // D
                            if (ascii=='N') { ch[6]=0x80;ch[5]=0xFD;ch[4]=0xFB;ch[3]=0xF7;ch[2]=0xEF;ch[1]=0xDF;ch[0]=0x80;ch[7]=0xFF;} // D
                            if (ascii=='O') { ch[4]=0xC1;ch[3]=0xBE;ch[2]=0xBE;ch[1]=0xBE;ch[0]=0xC1;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='P') { ch[4]=0xC1;ch[3]=0xB7;ch[2]=0xB7;ch[1]=0xB7;ch[0]=0x80;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='Q') { ch[5]=0xFE;ch[4]=0xC1;ch[3]=0xBE;ch[2]=0xBE;ch[1]=0xBE;ch[0]=0xC1;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='R') { ch[4]=0xCF;ch[3]=0xB6;ch[2]=0xB5;ch[1]=0xB3;ch[0]=0x80;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='S') { ch[4]=0xD9;ch[3]=0xB6;ch[2]=0xB6;ch[1]=0xB6;ch[0]=0xCE;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='T') { ch[4]=0xBF;ch[3]=0xBF;ch[2]=0x80;ch[1]=0xBF;ch[0]=0xBF;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='U') { ch[4]=0x81;ch[3]=0xFE;ch[2]=0xFE;ch[1]=0xFE;ch[0]=0x81;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            if (ascii=='V') { ch[6]=0x87;ch[5]=0xFB;ch[4]=0xFD;ch[3]=0xFE;ch[2]=0xFD;ch[1]=0xFB;ch[0]=0x87;ch[7]=0xFF;} // D
                            if (ascii=='X') { ch[6]=0xBE;ch[5]=0xDD;ch[4]=0xEB;ch[3]=0xF7;ch[2]=0xEB;ch[1]=0xDD;ch[0]=0xBE;ch[7]=0xFF;} // D
                            if (ascii=='Y') { ch[6]=0xBF;ch[5]=0xDF;ch[4]=0xEF;ch[3]=0xF0;ch[2]=0xEF;ch[1]=0xDF;ch[0]=0xBF;ch[7]=0xFF;} // D
                            if (ascii=='Z') { ch[4]=0xEE;ch[3]=0xE7;ch[2]=0xEA;ch[1]=0xEC;ch[0]=0xEE;ch[5]=0xFF;ch[6]=0xFF;ch[7]=0xFF;} // D
                            SHARE KHO PHIM LỚN

                            Comment


                            • #89
                              Nguyên văn bởi vanquang_qn
                              đây là chuogn trinh quang bao dau tay cua toi.Moi nguoi cho y kien nhe
                              Nếu đổ font từ máy tính mà so sánh mã với "y" và nhận từng Byte như vậy thì chắc sẽ có lúc "hiểu nhầm" ( Vì Font đã được phân tích thành từng điểm rồi nên có thể nó có giá trị bất kỳ không lường trước được:00--255.

                              Vừa rồi mình cũng cho cắt thử và bị "hiểu nhằm", tuy nhiên mình cũng thấy bạn đặt trước "160" để nhận, cái này hợp lý, mình cũng dùng cách này và nguyên 1 mảng.

                              Theo mình, cách xuất của bạn nên viết gọn lại( vì bạn phải dùng 8 lầ dịch rời rạc, nên thấy hơi dài.( nếu bổ sung cở 18, 20 kiểu hiển thị nữa thì dài nữa.

                              Tạm thời cái của bạn chỉ hiển thị- chưa xử lý kiểu hiển thị.
                              Mình cũng mới xử lý được khoảng 20 kiểu, vẽ hình trên PC nhưng đã hết 9k code(asm) rồi.

                              Comment


                              • #90
                                Nguyên văn bởi CHIBANG
                                Bác đừng đi vào ngõ cụt như vậy.
                                Dùng font 8 bit ấy. Thì â---> 1 ký tự thôi. Ngay cả cac chữ như í,ì, ă,ẵ cũng 1 ký tự...
                                Vẫn xử lý được cho loại 16bit như Vntime, chứ không nhất thiết chỉ có loại font 8bit( dễ hơn một tí).

                                Comment

                                Về tác giả

                                Collapse

                                voanhkiem Tìm hiểu thêm về voanhkiem

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X