Thông báo

Collapse
No announcement yet.

Giao Diện Quang Báo

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

  • Mr_se7en
    replied
    Nguyên văn bởi dangdung Xem bài viết
    đúng rồi
    chỉ những đoạn text có chiều dài nhỏ hơn hoặc bằng chiều dài bảng thì mới có hiệu ứng
    còn dài hơn thì nó chỉ chạy ngang qua thôi
    Chào anh dangdung:
    Em đã đọc qua mục Giao diện quang báo của anh thấy rất thú vị và bổ ích.Em cũng đang làm 1 bảng Led 16*64 mà đang bí phần mạch Điều Khiển, em thấy mạch của anh đầy đủ và rõ ràng. Không biết là ở công ty anh có bán board mạch in ( mạch ĐK thôi) không vậy?Em có thể mua mạch in về rồi tự đi mua linh kiện ráp. Thực sự là sinh viên nên cũng rât khó để mua sản phẩm thương mại của anh cho nên em mới hỏi mạch in thôi. Mong anh giúp đỡ.

    Leave a comment:


  • dangdung
    replied
    Nguyên văn bởi dtqnel Xem bài viết
    cái chương trrinhf quang báo này của bạn chạy nhiều hiệu ứng thật đấy!!
    Nhưng hình như ko chạy liên tục 1 đoạn text dài đúng ko?
    đúng rồi
    chỉ những đoạn text có chiều dài nhỏ hơn hoặc bằng chiều dài bảng thì mới có hiệu ứng
    còn dài hơn thì nó chỉ chạy ngang qua thôi

    Leave a comment:


  • dtqnel
    replied
    cái chương trrinhf quang báo này của bạn chạy nhiều hiệu ứng thật đấy!!
    Nhưng hình như ko chạy liên tục 1 đoạn text dài đúng ko?

    Leave a comment:


  • dangdung
    replied
    Nguyên văn bởi rongconn2t Xem bài viết
    không phải là ánh xạ của nó.em muốn hỏi cái unsigned char nDataPS2
    trong hàm Converkeyboard(unsigned char nDataPS2) có ý nghĩa gì?
    giả sử em viết
    x= converkeyboard(????); //dau ???? em cho vào trong đó phải thay = gì?
    Code:
    Code:
    #include <MEGA8515.h>
    
    #define phim_rong       0xff
    #define p_DataPS2       PIND.4
    unsigned char   m_CurselPS2;   
    unsigned char   m_DataPS2; 
    bit	m_break;
    bit         m_thuong_hoa;
    
    
    unsigned char unshifted[48][2]= {
    0x1c,'a',
    0x32,'b',
    0x21,'c',
    0x23,'d',
    0x24,'e',
    0x2b,'f',
    0x34,'g',
    0x33,'h',
    0x43,'i',
    0x3b,'j',
    0x42,'k',
    0x4b,'l',
    0x3a,'m',
    0x31,'n',
    0x44,'o',
    0x4d,'p',
    0x15,'q',
    0x2d,'r',
    0x1b,'s',
    0x2c,'t',
    0x3c,'u',
    0x2a,'v',
    0x1d,'w',
    0x22,'x',
    0x35,'y',
    0x1a,'z',
    0x45,'0',
    0x16,'1',
    0x1e,'2',
    0x26,'3',
    0x25,'4',
    0x2e,'5',
    0x36,'6',
    0x3d,'7',
    0x3e,'8',
    0x46,'9',
    0x0e,'`',
    0x4e,'-',
    0x55,'=',
    0x5d,'\\',
    0x54,'[',
    0x5b,']',
    0x4c,';',
    0x52,'\'',
    0x41,',',
    0x49,'.', 
    0x4a,'/', 
    0,0
    };
    // Shifted characters
    unsigned char shifted[48][2]= {
    0x1c,'A',
    0x32,'B',
    0x21,'C',
    0x23,'D',
    0x24,'E',
    0x2b,'F',
    0x34,'G',
    0x33,'H',
    0x43,'I',
    0x3b,'J',
    0x42,'K',
    0x4b,'L',
    0x3a,'M',
    0x31,'N',
    0x44,'O',
    0x4d,'P',
    0x15,'Q',
    0x2d,'R',
    0x1b,'S',
    0x2c,'T',
    0x3c,'U',
    0x2a,'V',
    0x1d,'W',
    0x22,'X',
    0x35,'Y',
    0x1a,'Z',
    0x45,')',
    0x16,'!',
    0x1e,'@',
    0x26,'#',
    0x25,'$',
    0x2e,'%',
    0x36,'^',
    0x3d,'&',
    0x3e,'*',
    0x46,'(',
    0x0e,'~',
    0x4e,'_',
    0x55,'+',
    0x5d,'|',
    0x54,'{',
    0x5b,'}',
    0x4c,':',
    0x52,'"',
    0x41,'<',
    0x49,'>', 
    0x4a,'?', 
    0,0
    };
    
    //*********************************************************************
    //---------------------------------------------------------------------
    //*********************************************************************
    unsigned char Converkeyboard(unsigned char nDataPS2)
    {
         unsigned char i; 
        if(nDataPS2 == 0xf0)		//ma bao nha phim
        { 
            m_break = 1;
            return phim_rong;
        }     
        if(m_break)			//xu ly ma nha phim
        {
           if(nDataPS2 == 0x12 || nDataPS2 == 0x59)//neu la ma Shift
           {
              m_thuong_hoa = 0;
           }
           m_break = 0;
           return phim_rong;
        } 
       else
       {
           if(nDataPS2 == 0x12 || nDataPS2 == 0x59)//nhan phim Shift
          {
             m_thuong_hoa = 1;
             return phim_rong; 
           }       
            if(nDataPS2 == 0x29) return ' ';  
            if(!m_thuong_hoa)
           {
               for(i = 0; unshifted[i][0]!=nDataPS2 && unshifted[i][0]; i++); 
                if (unshifted[i][0] == nDataPS2) return unshifted[i][1];
           }
           else
           {
             for(i = 0; unshifted[i][0]!=nDataPS2 && shifted[i][0]; i++); 
              if (unshifted[i][0] == nDataPS2) return shifted[i][1];  
           }
            
           return phim_rong; 
       }      
    } 
    
    //*********************************************************************
    //---------------------------------------------------------------------
    //*********************************************************************
    interrupt [EXT_INT0]//su kien ngat ngoai 0
    void CK_PS2(void)//ham xu ly ngat ngoai 0
    {
         
         m_CurselPS2++;   
         if(m_CurselPS2==1)  //bit START
         {
            if(p_DataPS2)m_CurselPS2=0;  //text START
         }
         else 
         if(m_CurselPS2>1&&m_CurselPS2<10)
         {
            m_DataPS2 = (m_DataPS2 >> 1);                //quay trai m_DataPS2 (m_DataPS2.7 = 0)  
            if(p_DataPS2) m_DataPS2 = m_DataPS2 | 0x80;  // Store a ’1’
         }
         else 
         if(m_CurselPS2>10)  //bit STOP
         {
            if(p_DataPS2)
            {
             	// makytu = Converkeyboard(m_DataPS2);
    	// tuy ban xu ly ma ky tu                 
            }
            m_CurselPS2=0;
         }                                  //bo qua Parity  
    } 
    
    void main(void)
    {
    //========================================================================
    //KHOI TAO NGAT NHGOAI 0,1
      MCUCR = 0x02;   	        //NGAT NGOAI 0 CANH XUONG
      GICR = 0x40;			// INT0.6 =[1] CHO PHEP NGAT NGOAI 0;
     m_CurselPS2=0;
    DDRD = 0x00;
    PORTD =0xff;
      while(1);
    }


    unsigned char nDataPS2 là biến nDataPS2 kiểu unsigned char
    hàm Converkeyboard(unsigned char nDataPS2)
    là khi nhận được 1 byte của bàn phím
    if(m_CurselPS2>10) //bit STOP
    {//đủ 8 bít
    if(p_DataPS2)// nếu không phải là mã nhả phím
    {
    // makytu = Converkeyboard(m_DataPS2);
    // tuy ban xu ly ma ky tu
    }
    }

    lúc này m_DataPS2 chính là data mã phím bạn nhấn
    sau đó dùng hàm Converkeyboard để chuyển về ký tự
    ví dụ bạn nhấn phím "A"
    thì sẽ thu được m_DataPS2 = 0x1c
    Converkeyboard( 0x1c) = 'a' hoặc 'A' tùy thuộc vào có nhấn Shift m_thuong_hoa

    chúc bạn thành công

    Leave a comment:


  • rongconn2t
    replied
    Nguyên văn bởi dangdung Xem bài viết
    "đối số" bạn muốn hởi ánh xạ của nó?
    bạn xem bảng khai báo unsigned char unshifted[48][2]
    unsigned char shifted[48][2]
    không phải là ánh xạ của nó.em muốn hỏi cái unsigned char nDataPS2
    trong hàm Converkeyboard(unsigned char nDataPS2) có ý nghĩa gì?
    giả sử em viết
    x= converkeyboard(????); //dau ???? em cho vào trong đó phải thay = gì?

    Leave a comment:


  • dangdung
    replied
    Nguyên văn bởi rongconn2t Xem bài viết
    bác dũng cho em hỏi tí.chương trinh giao tiếp VDK của bác với keyboard sử dụng cho 8535.giờ em dùng ATmega 16 liệu có đưa chương trình đó vào được khôg?
    cách giao tiếp với phần cứng như thế nào vậy.chỉ thấy bác ghi là sử dụng ngắt nhưng không biết nối vào đâu.bàn phím máy tính có tất cả 4 chân,trong đó có 2 dây nguồn+1 dây clk, + 1 dây data.các dây này được nối thế nào với VDK?có phải sử dụng IC đệm không?
    trên thấy bác dùng hàm Converkeyboard(unsigned char nDataPS2) để chuyển về mã ký tự. tức là khi chuyển xong thì giá trị của Converkeyboard(unsigned char nDataPS2) chính = giá trị của phím trong bảng mã SACII phải không?vậy giá trị đối số của hàm là gì thế unsigned char nDataPS2

    cảm ơn bác trước
    dây data nối vào PD.4
    dây CK nối vào PD.3
    nối trực tiếp với VDK

    khi chuyển xong thì giá trị của Converkeyboard(unsigned char nDataPS2) chính = giá trị của phím trong bảng mã SACII

    "đối số" bạn muốn hởi ánh xạ của nó?
    bạn xem bảng khai báo unsigned char unshifted[48][2]
    unsigned char shifted[48][2]

    ATmega 16 bạn chi cần nối chân như vậy
    và khai báo ngắt ngoài 0 cạnh xuống

    chức bạn thành công

    Leave a comment:


  • rongconn2t
    replied
    bác dũng cho em hỏi tí.chương trinh giao tiếp VDK của bác với keyboard sử dụng cho 8535.giờ em dùng ATmega 16 liệu có đưa chương trình đó vào được khôg?
    cách giao tiếp với phần cứng như thế nào vậy.chỉ thấy bác ghi là sử dụng ngắt nhưng không biết nối vào đâu.bàn phím máy tính có tất cả 4 chân,trong đó có 2 dây nguồn+1 dây clk, + 1 dây data.các dây này được nối thế nào với VDK?có phải sử dụng IC đệm không?
    trên thấy bác dùng hàm Converkeyboard(unsigned char nDataPS2) để chuyển về mã ký tự. tức là khi chuyển xong thì giá trị của Converkeyboard(unsigned char nDataPS2) chính = giá trị của phím trong bảng mã SACII phải không?vậy giá trị đối số của hàm là gì thế unsigned char nDataPS2

    cảm ơn bác trước

    Leave a comment:


  • dangdung
    replied
    Nguyên văn bởi rongconn2t Xem bài viết
    em tưởng họ nhà 61 với 62 khác nhau chứ,cả về cách sử dụng lẫn vị trí chân.
    liệu mang em 61 về nhà thằng 62 ở ,nó có chịu không thế bác
    bạn xem sơ đồ vị trí chân có giống nhau không
    rồi gắn vô
    61 hay 62 cũng là RAM cả mà

    Leave a comment:


  • rongconn2t
    replied
    Nguyên văn bởi hai_abc Xem bài viết
    Thì bác dùng Ram 62256 đi, bây giờ toàn họ 62 thôi!
    em tưởng họ nhà 61 với 62 khác nhau chứ,cả về cách sử dụng lẫn vị trí chân.
    liệu mang em 61 về nhà thằng 62 ở ,nó có chịu không thế bác

    Leave a comment:


  • thinhbk50
    replied
    Nguyên văn bởi dangdung Xem bài viết
    nếu vậy hãy điện cho mình, mình mua rồi gửi qua bưu điện cho
    rất cảm ơn bạn ,mình mua được rồi

    Leave a comment:


  • phuongmd
    replied
    61512 đây

    Tôi còn 4 con UM61512, hôm trước làm thừa.
    Nếu bạn cần thì để lại cho bạn.
    Giá 65k/1em.
    Không mua của mình thì bạn có thể ra 269 Đội cấn mua con gì đấy không nhớ rõ tên (hình như là KM681000) (hỏi SRAM em gì xinh xinh là biết) nhưng loại này là 1024Mbit ~ 128KB. Lại cũng thừa 1 chân 2 (A16) nhưng giá 90K (Nói nhà này nhập con 64K về bán cho anh em Hà nội mãi mà họ chưa nhập).
    0983603646.
    Đã xong.
    Last edited by phuongmd; 28-03-2009, 08:59.

    Leave a comment:


  • dangdung
    replied
    Nguyên văn bởi thinhbk50 Xem bài viết
    mình ở Hà Nội , ra chợ Hòa bình hỏii mấy quán nhưng mà không có 61512 ,, nếu bây giờ mà ghép 2 con 62256 thì lại phải vẽ lại mạch in , mà mình thì chỉ vẽ được mạch 1 lớp đơn giản thui . bạn cố gắng gúp mình với nhé nếu được thì sen vào email cho mình nhé : thinhnguyen006@yahoo.com
    mình rất cảm ơn
    nếu vậy hãy điện cho mình, mình mua rồi gửi qua bưu điện cho

    Leave a comment:


  • thinhbk50
    replied
    mình ở Hà Nội , ra chợ Hòa bình hỏii mấy quán nhưng mà không có 61512 ,, nếu bây giờ mà ghép 2 con 62256 thì lại phải vẽ lại mạch in , mà mình thì chỉ vẽ được mạch 1 lớp đơn giản thui . bạn cố gắng gúp mình với nhé nếu được thì sen vào email cho mình nhé : thinhnguyen006@yahoo.com
    mình rất cảm ơn

    Leave a comment:


  • dangdung
    replied
    không biết có ai tạo được FONT và LOGO nào chưa up lên cho mọi người tham khảo với

    Leave a comment:


  • xuanhaold
    replied
    minh dang làm đồ án môn học mạch quang báo giao tiếp máy tính nhưng nhỏ hơn cái ban làm .minh đang kẹt o chương trình giao tiếp .nhờ các bạn giúp đở

    Leave a comment:

Về tác giả

Collapse

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

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

Collapse

Đang tải...
X