Thông báo

Collapse
No announcement yet.

1 vấn đề liên quan đến quang báo

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • 1 vấn đề liên quan đến quang báo

    chào mấy bác,chẳng là em đag làm 1 cái mạch quang báo dùng 89c51 và 74hc595 để quét cột,nhưng mãi mà vẫn bị lỗi phần hiển thị,mấy bác xem giùm em với.
    đây là sơ đồ mạch của em,em nối chung 2 chân clock của 595,dùng 595 để dịch và quét cột,dữ liệu hàng xuất ra Port1



    bị lỗi thế này,cái cột dliệu đầu tiên nó lại hiện ra cuối cùng


    mấy bác giúp em với,em thử nhiều cách rồi mà vẫn chưa xác định đc là do cái gì
    giải pháp tình thế của em là em chèn thêm 1 byte 0xFFh vào đầu bảng dl thì mới hiện đúng đc nhưng mà như thế thì...
    đây là code của em :

    Code:
     DULIEU		BIT	P2.0	;bien du lieu dau vao cho 595	
              CLK		BIT	P2.1	;bien tao clock cho 595
       org 0000h
    start:	mov a,#00h
    		mov p1,#0ffh
    		mov dptr,#DL
    		mov r3,#15  ; so vong lap 
    loop:
            setb DULIEU; dua du lieu vao 595
            mov r2,#0
    lap:	mov p1,#0ffh
    		setb CLK ; tao xung clock vao 595
            clr DULIEU
            clr CLK
            mov a,r2
            movc a,@a+dptr
            mov p1,a
         	mov 7fh,#100  ; cho thoi gian ngan
            djnz 7fh,$
            inc r2
    	    cjne r2,#32,lap ; so cot led matran
            djnz r3,loop
            ljmp start
     ;=====================================================    
    DL:
    db 01h,0DFh,0DFh,0DFh,01h,0FFh		;chu H
    db 01h,6Dh,6Dh,7Dh,7Dh,0FFh		;chu E
    db 01h,7Fh,7Fh,7Fh,7Fh,0FFh			;chu L
    db 01h,7Fh,7Fh,7Fh,7Fh,0FFh			;chu L
    db 083h,7Dh,7Dh,7Dh,083h,0FFh		;chu O
    db 0FFh,0FFh
    END
    link của sơ đồ mạch,code http://www.mediafire.com/?9p3m9x2jvle4341
    mấy bác giúp em với nhé,gần đến hạn nộp báo cáo rồi mà còn vướng cái chỗ này khó chịu quá

  • #2
    Mình cũng đã làm về matrix nhưng là viết với C++.Còn về ASM mình mù tịt ah!
    Anh em nào biết ASM giúp bạn một chút.

    :

    Comment


    • #3
      Xin chào! Khi đọc đoạn code của bạn thì mình nghĩ bạn nên chỉnh sửa một chút. Cụ thể:
      loop:
      setb DULIEU; dua du lieu vao 595
      mov r2,#0
      lap: mov p1,#0ffh
      setb CLK ; tao xung clock vao 595
      clr DULIEU
      clr CLK

      chuyển thành
      loop:
      mov r2,#0
      setb DULIEU; dua du lieu vao 595
      clr CLK
      setb CLK
      lap: mov p1,#0ffh
      clr DULIEU
      clr CLK
      setb CLK ; tao xung clock vao 595


      bạn thử xem đã được chưa.

      Comment


      • #4
        bạn làm matrix bằng C rồi thì cho mình hỏi chút ở cái code này :

        unsigned char code Bmp002[]=
        {
        /*------------------------------------------------------------------------------
        ; If font display distortion, please check Fonts format of setup.
        ; Source file / text : Líp ®iÖn tö K2
        ; Width x Height (pixels) :243X16
        ; Font Format/Size : Monochrome LCD Fonts ,Horizontal scan ,Big endian order/496Byte
        ; Font make date : 10/11/2009 7:32:20 AM
        ------------------------------------------------------------------------------*/

        0xF3,0x10,0x1F,//Width pixels,Height pixels,Width bytes
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80, 0x00,0x00,0x01,0x00,0x00,0x00,
        0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x01,0x80,0x00, 0x00,0x1F,0x3C,0x38,0x00,0x00,
        0x00,0x01,0x00,0x3F,0x9F,0x1F,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0xF8,0x03,0x00,0x00,0x00, 0x7F,0xBC,0x28,0x00,0x00,0x02,
        0x02,0x18,0x1F,0x08,0x63,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0xF8,0x04,0x38,0x00,0x00,0x0F, 0x3C,0x64,0x00,0x00,0x06,0x04,
        0x38,0x1F,0x10,0x7B,0xE0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0xF8,0x00,0x38,0x00,0x00,0x4F,0x00, 0x00,0x00,0x00,0x0E,0x00,0x3C,
        0x1F,0x30,0x7B,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xF8,0x07,0xF3,0xEE,0x01,0xFF,0x7C,0x7C, 0x7D,0xC0,0x3F,0xFF,0xF0,0x1F,
        0x78,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0xF8,0x0E,0x79,0xFF,0x01,0xEF,0x3C,0xEE,0x3F, 0xE0,0x1E,0x3D,0xE0,0x1F,0xF8,
        0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0xF8,0x1E,0x79,0xEF,0x83,0xEF,0x3D,0xEF,0x3D,0xE0, 0x1E,0x3D,0xE0,0x1F,0x7C,0x0E,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xF8,
        0x5E,0x79,0xEF,0x83,0xEF,0x3D,0xFF,0x3D,0xE0,0x1E, 0x3D,0xE0,0x1F,0x7E,0x10,0x20,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF8,0x5E,
        0x79,0xEF,0x03,0xEF,0x3D,0xE0,0x3D,0xE0,0x1E,0xBD, 0xE0,0x1F,0x3E,0x2F,0xE0,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xF8,0xCE,0x71,
        0xEF,0x01,0xEF,0x3C,0xE1,0x3D,0xE0,0x1E,0xBD,0xE0, 0x1F,0x1F,0x7F,0xE0,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0xFF,0xC7,0xE1,0xFE,
        0x00,0xFF,0xFE,0x76,0x7D,0xF0,0x1F,0x3F,0xF0,0x3F, 0xBF,0xFF,0x80,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xE0,0x00,
        0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0xE0,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0xE0,0x00,0x00,0x00,
        0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0xF0,0x00,0x00,0x00,0x38,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
        };
        mình không biết lấy nó ở đâu ra cả
        mong bạn chỉ giúp m

        Comment


        • #5
          @enter88 : đc rồi bác ạ cảm ơn bác nhiều lắm
          chỗ này là nó bị lỗi j thế bác,theo em nghĩ thì thế này,595 là mức clock tích cực là sườn dương,em đã nối chung 2 chân 11,12 và cho chân OE(output enable) nối đất như vậy thì cứ mỗi lần chuyển CLK từ 0>1 thì dliệu từ chân vdk sẽ xuất ra Q0 của 595 chứ.vậy thì lúc mới khởi động lên,clk và chân dl đều bằng 1,vậy thì đáng ra đoạn code sau đây phải chạy đúng chứ nhỉ,vậy mà mog bác chỉ giáo thêm cho em với
          Code:
          start:	
          		mov a,#00h
          		mov p1,#0ffh
          		mov dptr,#DL
          		mov r3,#16  ; so vong lap 
          loop:
                          mov r2,#0
          		setb DULIEU; dua du lieu vao 595  
          
          lap:		clr CLK
          		setb CLK ; tao xung clock vao 595
          		clr DULIEU
                     mov     a,r2
                     movc   a,@a+dptr
                     mov     p1,a
          	   	
          		mov 7fh,#100  ; cho thoi gian ngan
                          djnz 7fh,$
          		mov p1,#0ffh
                  inc r2
          	cjne r2,#32,lap ; so cot led matran
                  djnz r3,loop
                  ljmp start

          Comment


          • #6
            Mình chỉ có 1 số nhận xét thế này:
            - Tại sao lại phải dùng nhiều ULN2803 thế? => tốn tiền, tốn diện tích mạch => lại tốn tiền ( nên dùng 1 em ULN ở data hoặc tiết kiệm hơn thì dùng bọn PNP như Ạ đệm dòng càng tiết kiệm diện tích mạch cũng như kinh phí)
            - Sao ko luồn mấy em 595 xuống dưới các em led => tiết kiệm diện tích => tiết kiệm dây cáp => tiết kiệm tiền và thời gian thi công.
            - 595 để quét bạn chỉ quét 1 bit thui đúng ko? ( thấy mắc chân 11 vào chân 12 nên đoán mò ) theo mình dù quét 1 bít vẫn nên để 2 châno vào 2 pin khác nhau của MCU. sau này muốn chuyển qua quét hàng hay cột đều tiện được chỉ cần sửa code
            - Cuối cùng tặng bạn 1 mạch 8051 viết code bằng C cực ngắn gọn cực dễ hiểu và hiệu quả ( cái này của anh Quyền, mình ko học 8051 nên ko bít )
            Chú ý bài này quét 2 data ( 2 hàng chạy 2 chữ khác nhau )

            Code:
            #include <REGX52.H>
            #include <string.h>
            
            //******************BANG MA ASCII on LED matrix font 5x7 ****************
            
            unsigned char code    font[97][6]={
            0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE    0
            0xFF,0xFF,0xA0,0xFF,0xFF,0xFF,//!        1
            0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//'    2
            0xEB,0x80,0xEB,0x80,0xEB,0xFF,//#    3
            0xDB,0xD5,0x80,0xD5,0xED,0xFF,//$    4
            0xD8,0xEA,0x94,0xAB,0x8D,0xFF,//%    5
            0xC9,0xB6,0xA9,0xDF,0xAF,0xFF,//&    6
            0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//'    7
            0xFF,0xE3,0xDD,0xBE,0xFF,0xFF,//(    8
            0xFF,0xBE,0xDD,0xE3,0xFF,0xFF,//)    9
            0xD5,0xE3,0x80,0xE3,0xD5,0xFF,//*    10
            0xF7,0xF7,0xC1,0xF7,0xF7,0xFF,//+    11
            0xFF,0xA7,0xC7,0xFF,0xFF,0xFF,//,    12
            0xF7,0xF7,0xF7,0xF7,0xF7,0xFF,//-    13
            0xFF,0x9F,0x9F,0xFF,0xFF,0xFF,//x    14
            0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,// /   15
            0xC1,0xAE,0xB6,0xBA,0xC1,0xFF,//0    16      
            0xFF,0xBD,0x80,0xBF,0xFF,0xFF,//1    17
            0x8D,0xB6,0xB6,0xB6,0xB9,0xFF,//2    18
            0xDD,0xBE,0xB6,0xB6,0xC9,0xFF,//3    19
            0xE7,0xEB,0xED,0x80,0xEF,0xFF,//4    20
            0xD8,0xBA,0xBA,0xBA,0xC6,0xFF,//5    21
            0xC3,0xB5,0xB6,0xB6,0xCF,0xFF,//6    22
            0xFE,0x8E,0xF6,0xFA,0xFC,0xFF,//7    23
            0xC9,0xB6,0xB6,0xB6,0xC9,0xFF,//8    24
            0xF9,0xB6,0xB6,0xD6,0xE1,0xFF,//9    25
            0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,//:    26
            0xFF,0xA4,0xC4,0xFF,0xFF,0xFF,////   27
            0xF7,0xEB,0xDD,0xBE,0xFF,0xFF,//<    28
            0xEB,0xEB,0xEB,0xEB,0xEB,0xFF,//=    29
            0xFF,0xBE,0xDD,0xEB,0xF7,0xFF,//>    30
            0xFD,0xFE,0xAE,0xF6,0xF9,0xFF,//?    31
            0xCD,0xB6,0x8E,0xBE,0xC1,0xFF,//@    32
            0x83,0xF5,0xF6,0xF5,0x83,0xFF,//A    33
            0xBE,0x80,0xB6,0xB6,0xC9,0xFF,//B    34
            0xC1,0xBE,0xBE,0xBE,0xDD,0xFF,//C    35
            0xBE,0x80,0xBE,0xBE,0xC1,0xFF,//D    36
            0x80,0xB6,0xB6,0xB6,0xBE,0xFF,//E    37
            0x80,0xF6,0xF6,0xFE,0xFE,0xFF,//F    38
            0xC1,0xBE,0xB6,0xB6,0xC5,0xFF,//G    39
            0x80,0xF7,0xF7,0xF7,0x80,0xFF,//H   40
            0xFF,0xBE,0x80,0xBE,0xFF,0xFF,//I   41
            0xDF,0xBF,0xBE,0xC0,0xFE,0xFF,//J   42
            0x80,0xF7,0xEB,0xDD,0xBE,0xFF,//K    43
            0x80,0xBF,0xBF,0xBF,0xFF,0xFF,//L    44
            0x80,0xFD,0xF3,0xFD,0x80,0xFF,//M    45
            0x80,0xFD,0xFB,0xF7,0x80,0xFF,//N    46
            0xC1,0xBE,0xBE,0xBE,0xC1,0xFF,//O    47
            0x80,0xF6,0xF6,0xF6,0xF9,0xFF,//P    48
            0xC1,0xBE,0xAE,0xDE,0xA1,0xFF,//Q    49
            0x80,0xF6,0xE6,0xD6,0xB9,0xFF,//R    50
            0xD9,0xB6,0xB6,0xB6,0xCD,0xFF,//S    51 
            0xFE,0xFE,0x80,0xFE,0xFE,0xFF,//T    52
            0xC0,0xBF,0xBF,0xBF,0xC0,0xFF,//U    53
            0xE0,0xDF,0xBF,0xDF,0xE0,0xFF,//V    54
            0xC0,0xBF,0xCF,0xBF,0xC0,0xFF,//W    55
            0x9C,0xEB,0xF7,0xEB,0x9C,0xFF,//X    56
            0xFC,0xFB,0x87,0xFB,0xFC,0xFF,//Y    57
            0x9E,0xAE,0xB6,0xBA,0xBC,0xFF,//Z    58
            0xFF,0x80,0xBE,0xBE,0xFF,0xFF,//[    59
            0xFD,0xFB,0xF7,0xEF,0xDF,0xFF,//\    60
            0xFF,0xBE,0xBE,0x80,0xFF,0xFF,//]    61
            0xFB,0xFD,0xFE,0xFD,0xFB,0xFF,//^    92
            0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,//_    63
            0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//'    64
            0xDF,0xAB,0xAB,0xAB,0xC7,0xFF,//a    65
            0x80,0xC7,0xBB,0xBB,0xC7,0xFF,//b   66
            0xFF,0xC7,0xBB,0xBB,0xBB,0xFF,//c   67
            0xC7,0xBB,0xBB,0xC7,0x80,0xFF,//d   68
            0xC7,0xAB,0xAB,0xAB,0xF7,0xFF,//e    69
            0xF7,0x81,0xF6,0xF6,0xFD,0xFF,//f   70
            0xF7,0xAB,0xAB,0xAB,0xC3,0xFF,//g    71
            0x80,0xF7,0xFB,0xFB,0x87,0xFF,//h    72
            0xFF,0xBB,0x82,0xBF,0xFF,0xFF,//i    73
            0xDF,0xBF,0xBB,0xC2,0xFF,0xFF,//j    74
            0xFF,0x80,0xEF,0xD7,0xBB,0xFF,//k    75
            0xFF,0xBE,0x80,0xBF,0xFF,0xFF,//l    76
            0x83,0xFB,0x87,0xFB,0x87,0xFF,//m    77
            0x83,0xF7,0xFB,0xFB,0x87,0xFF,//n    78
            0xC7,0xBB,0xBB,0xBB,0xC7,0xFF,//o    79
            0x83,0xEB,0xEB,0xEB,0xF7,0xFF,//p    80
            0xF7,0xEB,0xEB,0xEB,0x83,0xFF,//q    81
            0x83,0xF7,0xFB,0xFB,0xF7,0xFF,//r    82
            0xB7,0xAB,0xAB,0xAB,0xDB,0xFF,//s    83
            0xFF,0xFB,0xC0,0xBB,0xBB,0xFF,//t    84
            0xC3,0xBF,0xBF,0xDF,0x83,0xFF,//u    85
            0xE3,0xDF,0xBF,0xDF,0xE3,0xFF,//v    86
            0xC3,0xBF,0xCF,0xBF,0xC3,0xFF,//w    87
            0xBB,0xD7,0xEF,0xD7,0xBB,0xFF,//x    88
            0xF3,0xAF,0xAF,0xAF,0xC3,0xFF,//y    89
            0xBB,0x9B,0xAB,0xB3,0xBB,0xFF,//z    90
            0xFB,0xE1,0xE0,0xE1,0xFB,0xFF,//^    62
            0xE3,0xE3,0xC1,0xE3,0xF7,0xFF,//->   93
            0xF7,0xE3,0xC1,0xE3,0xE3,0xFF,//<-   94
            0xEF,0xC3,0x83,0xC3,0xEF,0xFF,//     95
            0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//BLANK CHAR 96
            
            
            };
            
            
            sbit SDA = P2^0;
            sbit SCL = P2^1;
            sbit STR = P2^2;
            sbit SDA2 = P2^3;
            sbit SCL2 = P2^4;
            sbit STR2 = P2^5;
            sfr DataPort = 0x90;
            sfr Dataport2= 0xB0;
            //-------------------------------------------
            //-------------------------------------------
            
            unsigned char *String_input ="Hom nay la thu 2 ngay 11 thang 4 nam 2011";
            unsigned char 		  *Hello="Hello, I'm Hien. Have a nice day.hehehehe";
            unsigned int Pos=0,lengh_STR;										   
            unsigned char Tic=0;
            #define   With_of_font   6   
            wait(unsigned int N){while(N--);}
            void main (){
               unsigned char Temp_code;
                unsigned int j;
               TMOD=0x01;
               TR0=1;   
               ET0=1;
               lengh_STR = strlen(String_input)*6;
               EA=1;
                while(1){ 
                  SDA=1;  
            	  SDA2=1;    
                  for(j=Pos;j<32+Pos;j++)
                  {
                     Temp_code=font[   String_input[(j%lengh_STR)/With_of_font] -32][j%With_of_font];
                     DataPort=0xFF;         
                     SCL=1;
                     SCL=0;
                     STR=1;
                     STR=0;         
                     DataPort = Temp_code;
                     SDA=0;      
                     wait(30);    
            
            		 Temp_code=font[   Hello[(j%lengh_STR)/With_of_font] -32][j%With_of_font];
                     P3=0xFF;         
                     SCL2=1;
                     SCL2=0;
                     STR2=1;
                     STR2=0;         
                     P3= Temp_code;
                     SDA2=0;      
                     wait(30);  
                  }                  
               }
            }
            
            void INT_Timer0()interrupt 1{
               Tic++;
               if(Tic==5){
                  Tic=0;
                  Pos++;
                  if(Pos>=lengh_STR)Pos=0;   
               }
            }
            Web:
            ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
            -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

            Comment


            • #7
              cảm ơn anh,hì hì,tại em làm mạch cũng chưa nhiều nên k có kinh nghiệm,đúng là cái mạch của em dây dợ tùm lum hà
              mong lần sau sẽ có tiến bộ hơn
              nhưng anh có thể giải thích giùm em thắc mắc ở trên không,giải quyết vấn đề trước mắt trước đã

              Comment


              • #8
                Hi mình ko bít về ASM ko thì mình đã giúp rùi . Mình chỉ học C thui!
                Rất tiếc vì ko giúp đc bạn.
                Thân!
                Web:
                ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
                -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

                Comment


                • #9
                  dẫu sao vẫn cảm ơn bác,có bác nào biết thì giải thích giùm em với nhé

                  Comment


                  • #10
                    co ban nao dung 595 quét theo hàng hiển thị chữ lên xuống chưa thì gửi cho mình nhé mình mới làm được quét theo cột thôi cái theo hàng khó quá!hic

                    Comment


                    • #11
                      để làm chữ hiện trên xuống hay bay trên xuống thì cách dễ nhất là bạn lập 1 bảng mã địa chỉ hàng nghĩa là với matrix 8 hàng thì bạn lập 8 ảnh mỗi ảnh là 8byte cách này rất tiện lợi các hiệu ứng bay lên bay xuống hay chữ hiện trên xuống hay dưới lên, xoay chữ, zoom chữ v... đều dùng chung 1 chương trình con quét hiện thị chỉ khác nhau ở chọn bảng mã địa chỉ hàng nhưng cách này thì hơi tốn bộ nhớ ( với 8 hàng cũng ko tốn bao nhiêu ), còn ko thì dùng các thuật toán lồng vào nhau cách này tốn ít bộ nhớ nhưng phải xử lý nhiều.

                      Comment


                      • #12
                        $include(reg51.inc)
                        dulieu bit p3.1
                        clock bit p3.0
                        chot bit p3.2
                        dulieu1 bit p2.1
                        clock1 bit p2.0
                        chot1 bit p2.2
                        org 00h
                        kd: Mov r0,#0
                        lap3: Mov r1,#1
                        lap2: Mov r2,#0
                        lcall send595
                        setb dulieu1
                        lap1: Mov r3,#8
                        lcall chuyenden
                        lap: Clr c
                        rlc a
                        mov dulieu,c
                        setb clock
                        clr clock
                        djnz r3,lap
                        setb chot
                        clr chot
                        lcall send595
                        acall tre
                        mov p3,#0ffh
                        inc r2
                        cjne r2,#16,lap1
                        djnz r1,lap2
                        inc r0
                        cjne r0,#16,lap3
                        setb chot
                        clr chot
                        jmp kd
                        chuyenden:
                        Mov a,r2
                        mov dptr,#bangma
                        movc a,@a+dptr
                        ret
                        send595: Setb clock1
                        clr clock1
                        setb chot1
                        clr chot1
                        clr dulieu1
                        ret

                        bangma:
                        Db 0ffh,0ffh,0fch,07h,0fbh,0bfh,0f7h
                        db 0bfh,0efh,0bfh,0f7h,0bfh,0fbh,0bfh
                        db 0fch,07h


                        tre:
                        Mov r7,#1
                        kt1: Mov r6,#2
                        kt2: Mov r5,#250
                        kt3: Djnz r5,kt3
                        djnz r6,kt2
                        djnz r7,kt1
                        ret
                        end

                        Comment


                        • #13
                          minh co lam mot hien thi chu A tren ma tran 16hang va 16cot nhung khong duoc do la chuong trinh cua minh minh khong biet dung hay khong nua? rat mong nhan dc su giup do cua ban!thank

                          Comment


                          • #14
                            minh dung 2 con 595 day du lieu ra 16cot va 2 con 595 dung de quet hang

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            Đang tải...
                            X