Thông báo

Collapse
No announcement yet.

Giúp Chươnng Trình Hiển Thị Chữ A

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

  • Giúp Chươnng Trình Hiển Thị Chữ A

    chào các bác!
    em có một chương trình nhỏ này mong được các bác giúp đỡ. đó là chương trình cho hiển thị chữ "A" trên led matrrix 8*8.phần cứng em làm như thế này:
    - VDK atmega16
    - PORTC để xuất dữ liệu ra cột thông qua 74hc595
    - PORTB nối với 74hc154 để quét hàng
    sơ đồ:
    Click image for larger version

Name:	chu_A.JPG
Views:	4
Size:	125.8 KB
ID:	1404096

    còn đây là chương trình em viết ma van chưa được mong các bác giúp:
    code_chu_A:

    Code:
    #include <mega16.h>
    #include <delay.h>
    // dinh nghia cac chan cuar 595
    #define Data	PORTC.0
    #define Clk	PORTC.1
    #define Latch	PORTC.2
    // Dinh nghia chan don kenh quet Matran
    #define Rowth	PORTB 
    unsigned int Buff[8][1];
     char  const Font[5]=
    /*0 	A */    {248,36,34,36,248};
    
    void Delay(unsigned int i)
    {
    	while(--i){};
    }
    
    //Check bit5 cua mot bien
    unsigned int  CheckBit5(unsigned int x)
    {
    	return (x>>5);
    }
    
    
    // Gui du lieu ra 595. 
    void Send_1_595(unsigned int a1)
    {
    	unsigned char i;
    	unsigned int Temp;
    	
    	Clk=0;
    
    	Temp=a1;
    	for (i=0;i<=5;i++)
    	  {
    		if (CheckBit5(Temp)==1) Data=1;
    		else Data=0;
    		Temp<<=1;
    		Clk=1;
    		Clk=0;   
    		//delay_ms(10);
    	  }
              Latch=1;//day du lieu ra
    	  Latch=0;//suon len chot du lieu ra	
    }
    
    // chuong trinh con hien thi du lieu trong bo nho dem
    
    void Display(void)
    {
    	unsigned char i,j;
    
    	for (i=1;i<=60;i++)
    	  {
    	  	for (j=0;j<=7;j++)
    		  {
    		  	Send_1_595(Buff[j][0]);// Day du lieu ra
    			Rowth=0; // Tat toan bo  hien thi	
    			Delay(150);
    			Latch=1;// day du lieu ra
    			Latch=0; //suon len chot du lieu ra
    			Rowth=0;
    			Delay(100);
    			Rowth=0b1<<j;		
    			
    			Delay(1);	
    		  }		
     	  }
    }
    
    //////////////////////////////////////////////////////////////////////////////
    //main program
    //////////////////////////////////////////////////////////////////////////////
    void main(void)
    {	
    	
    	DDRC=0xFF;
    	PORTC=0xFF;
    	DDRB=0xff;
    	PORTB=0xff;
    	//Clk=0;
    	//Data=0;
    	//Latch=0;
    	while(1)
    	{
    	  unsigned char  Rowth,col;
    	    for(Rowth=0;Rowth<8;Rowth<<=1)
    	       for(col=0;col<8;col++)
    	       
    	          {  PORTC=Font[col];
    	             PORTC=1<<col;
    	             PORTB=Rowth++;
    	             delay_ms(1);
    	          }  
    
    	};
    
    }
    /////////////////////////////////////////////////////
    // end of main program
    /////////////////////////////////////////////////////
    Last edited by VNarmy; 28-03-2008, 20:22.

  • #2
    một vài góp ý với bạn nè:
    1.xài con 138 để điều khiển 8 hàng thay vì 154 dk 16 hàng
    2.xài spi luôn cho tiện
    Hôm nay phải hơn hôm qua và thua ngày mai!

    Comment


    • #3
      Nguyên văn bởi dinhthai Xem bài viết
      còn đây là chương trình em viết ma van chưa được mong các bác giúp:
      Chưa được? Chưa được ở đâu? Chưa được ntn? Bạn cứ quẳng một đống code lên thì
      AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
      Xem thêm tại Online Store ---> Click here
      Mob: 0982.083.106

      Comment


      • #4
        Nguyên văn bởi stone_fman Xem bài viết
        một vài góp ý với bạn nè:
        1.xài con 138 để điều khiển 8 hàng thay vì 154 dk 16 hàng
        2.xài spi luôn cho tiện
        Em cam ơn anh stone_fman!
        - ý của em là em muón xài con 154 để còn mở rộng về sau .
        - ý của anh là xài spi để quét à? em vừa mới tập tọe được chút ít nên chưa biết xài spi. anh đã có lòng thì giúp em luôn phần này với nhé.
        một lần nưa cảm ơn anh nhé.

        Comment


        • #5
          Nguyên văn bởi VNarmy Xem bài viết
          Chưa được? Chưa được ở đâu? Chưa được ntn? Bạn cứ quẳng một đống code lên thì
          cảm ơn anh đã quan tâm. anh nói đúng quá.theo như em thấy thì :
          - phần gửi dữ liệu ra 595 là tạm được
          - phần quét và cho hiển thị chữ A chắc là có vấn đề.
          em thử mãi mà vẫn không được. anh giúp em với, emcamr ơn anh nhiều.

          Comment


          • #6
            Tui cũng đang bắt đầu ti toe con ATmega16.

            Trong cái phần code, ở hàm main() ghi "unsigned char Rowth" mà phía trên lại khai báo "#define Rowth PORTB" như vậy code có chạy được không ? (tui về C lắm ^_^)

            Tui cũng mới làm xong cái mạch led 8x8 chạy chữ "I (trái tim) U", ko dùng 74138 và 74158, ko dùng lun trans, chạy được nhưng ... hi vọng ko hư led
            PORTA 0->7 : Điều khiển hàng
            PORTC 0->7 : Điều khiển côt
            Nhưng ko hiểu sao ... cái PORTC 3,4,5,6 ko chạy đành phải ... chuyển 4 chân điều khiển đó wa 4 chân PORTD 0->3 (ko bít chíp có hư 4 chân đó ko...Amen )

            Quảng cáo dùm cái mạch nạp AVR của anh Tường lun ^_^ mới mua mấy hum trước chạy ok

            Code:
            #include <mega16.h>
            #include <delay.h>
            
            int text[21]={0b01111110,0b00000000,0b00000000,0b01111110,
                         0b11111111,0b11111111,
                         0b11110011,0b11100001,0b11011110,0b10111110,0b01111101,0b10111110,0b11011110,0b11101101,0b11110011,
                         0b11111111,0b11111111,
                         0b10000000,0b00000000,0b01111111,0b10000000};/**/
                        0b10010110,0b00000000,0b01111111,0b01111111,0b10000000,0b11111111,0b01111111};/**/
                            
            int post[8] ={0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b00100000,0b01000000,0b10000000};
             
            void main(void)
            {                
                    int i;
                    int count;
                    DDRA=0xFF;
                    DDRC=0xFF;
                    DDRD=0xFF;                  
                    i=0;
                    count = 0;
            	while (1)
            	{           
            	        //1
            	        PORTC = post[0];
            	        PORTA = text[i];
            	        delay_ms(1);
            	        //2
            	        PORTC = post[1];
            	        PORTA = text[i+1];
            	        delay_ms(1);
            	        PORTC = 0x00;
            	          
            	        //3
            	        PORTD = post[0];
            	        PORTA = text[i+2];
            	        delay_ms(1);
            	        
            	        //4
            	        PORTD = post[1];
            	        PORTA = text[i+3]; 
            	        delay_ms(1);
            	        
            	        //5
            	        PORTD = post[2];
            	        PORTA = text[i+4];
            	        delay_ms(1);
            	        
            	        //6
            	        PORTD = post[3];
            	        PORTA = text[i+5];
            	        delay_ms(1);
            	        PORTD = 0x00;
            	        
            	        //7
            	        PORTC = post[6];
            	        PORTA = text[i+6];
            	        delay_ms(1);
            	        
            	        //8
            	        PORTC = post[7];
            	        PORTA = text[i+7];
            	        delay_ms(1);
            	        
            	        count++;
            	        if(count>7)
            	        {       
            	                count=0;
            	                i++;
            	        };
            	        if(i>13)
            	        {
            	                i=0;
            	        }
            	};
            }

            Do PORTC 3,4,5,6 ko xài được nên ko xài được hàm for, phải viết 8 mã cho 8 cái cột led.
            Attached Files
            Last edited by tusat; 31-03-2008, 00:01.

            Comment


            • #7
              Nguyên văn bởi dinhthai Xem bài viết
              - phần gửi dữ liệu ra 595 là tạm được
              - phần quét và cho hiển thị chữ A chắc là có vấn đề.
              em thử mãi mà vẫn không được. anh giúp em với, emcamr ơn anh nhiều.
              Trong code của bạn có khai báo hàm display mà trong main lại không sử dụng nhỉ?

              Comment


              • #8
                Nguyên văn bởi lamour Xem bài viết
                Trong code của bạn có khai báo hàm display mà trong main lại không sử dụng nhỉ?
                cảm ơn bạn!
                mình cũng đã làm theo bạn chỉ dẫn rồi mà vẫn không được. xin bạn chỉ giúp
                thanks!

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                • bqviet
                  Trả lời cho Đấu tắt điện cho máy tính bảng
                  bởi bqviet
                  Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                  06-12-2025, 17:17
                • nguyendinhvan
                  Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                  bởi nguyendinhvan
                  Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                  05-12-2025, 19:59
                • afrendly
                  Trả lời cho Đấu tắt điện cho máy tính bảng
                  bởi afrendly
                  Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                  04-12-2025, 01:27
                • nick22
                  Trả lời cho Máy điện châm ?
                  bởi nick22
                  Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                  01-12-2025, 13:23
                Đang tải...
                X