Thông báo

Collapse
No announcement yet.

Nhờ sửa lỗi code

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

  • Nhờ sửa lỗi code

    Đây là code chương trình hiển thị kí tự nhập từ bàn phím ma trận 4x4 lên TEXT LCD 16x2, mình nạp vào mạch thì LCD chỉ hiển ra chữ "Hãy nhấn phím" còn nhấn phím thì không thấy gì, ai biết nhờ xem lỗi gì. Thanks nhiều:

    #include <REGX51.H>
    #include <string.h>


    sbit H1=P2^0;
    sbit H2=P2^1;
    sbit H3=P2^2;
    sbit H4=P2^3;
    sbit C1=P2^4;
    sbit C2=P2^5;
    sbit C3=P2^6;
    sbit C4=P2^7;

    /*===========khai bao bien toan cuc============*/
    sfr LCDdata = 0x90; // cong P1, 8 bit du lieu.
    sbit BF = 0x97; // co ban, bit DB7.
    sbit RS = P3^0; // chon thanh ghi
    sbit RW = P3^1; // doc/ghi
    sbit EN = P3^2; //cho phep chot du lieu
    /*===========cac chuong trinh con cua LCD==========*/
    /*--------------kiem tra su san sang cua LCD------------------------*/
    void wait(void)
    {
    RS=0; //chon thanh ghi lenh
    RW=1; //doc tu LCD
    LCDdata=0xff; //gia tri 0xff
    while(BF) //kiem tra co ban
    {
    EN=0; //dua xung cao xuong thap de chot.
    EN=1; //dua chan cho phep len cao
    }
    }
    /*------------------------thiet lap lenh cho LCD--------------------------*/
    void LCDcontrol(unsigned char x)
    {
    RS=0;//chon thanh ghi lenh
    RW=0;//ghi len LCD.
    LCDdata=x ;// gia tri x
    EN=1;//cho phep muc cao
    EN=0;//xung cao xuong thap
    wait();//doi LCD san sang.
    }
    /*------------------------------Khoi tao LCD-------------------------*/
    void LCDinit(void)
    {
    LCDcontrol(0x38);//2 dong va ma tran 5x7
    LCDcontrol(0x0e);//bat man hinh, bat con tro
    LCDcontrol(0x01);//xoa man hinh
    }
    /*-------------------------thiet lap du lieu cho LCD-----------------*/
    void LCDwrite(unsigned char c)
    {
    RS=1;//ghi du lieu
    RW=0;//ghi du lieu len LCD
    LCDdata=c;//gia tri C
    EN=1;//cho phep muc cao
    EN=0;//xung cao xuong thap
    wait();//cho
    }
    void LCDwrites(unsigned char *s)
    {
    unsigned char data lens,count;
    lens=strlen(s);
    for(count=0;count<lens;count++){
    LCDwrite(*(s+count));
    }
    }
    /*=====================chuong trinh tre================*/
    void delay(long time)
    {
    while(time--);
    }



    /***************************Ham quet phim************************/

    void quetphim()
    { unsigned char phimnhan;

    if(H1==0) //neu la C1
    {
    C1=1;
    C2=1;
    C3=1;
    C4=1;
    H1=0;
    if(!C1) phimnhan=0;
    if(!C2) phimnhan=1;
    if(!C3) phimnhan=2;
    if(!C4) phimnhan='A';

    }
    else if(H2==0) //neu la C2
    {
    C1=1;
    C2=1;
    C3=1;
    C4=1;
    H2=0;
    if(!C1) phimnhan=4;
    if(!C2) phimnhan=5;
    if(!C3) phimnhan=6;
    if(!C4) phimnhan='B';

    }
    if(H3==0)
    {
    C1=1;
    C2=1;
    C3=1;
    C4=1;
    H3=0;
    if(!C1) phimnhan=7;
    if(!C2) phimnhan=8;
    if(!C3) phimnhan=9;
    if(!C4) phimnhan='C';

    }
    if(H4==0)
    {
    C1=1;
    C2=1;
    C3=1;
    C4=1;
    H4=0;
    if(!C1) phimnhan='*';
    if(!C2) phimnhan=0;
    if(!C3) phimnhan='#';
    if(!C4) phimnhan='D';

    }
    }
    }
    }

    void viewphim(unsigned char phimnhan)
    {
    if(phimnhan<10){
    LCDwrite(phimnhan+48);
    }
    if(phimnhan='A'){
    LCDwrite(65);
    }
    if(phimnhan='B'){
    LCDwrite(66);
    }
    if(phimnhan='C'){
    LCDwrite(67);
    }
    if(phimnhan='D'){
    LCDwrite(68);
    }
    if(phimnhan='*'){
    LCDwrite(42);
    }
    if(phimnhan='#'){
    LCDwrite(35);

    void main(void)
    {
    unsigned char phimnhan=0;
    LCDinit();
    LCDwrites("Hay Nhan Phim");
    LCDcontrol(0xC0);
    while(1){
    phimnhan=Phim();
    if(phimnhan){
    LCDcontrol(0x01);
    LCDwrites("Hay Nhan Phim");
    LCDcontrol(0xC0);
    viewphim(phimnhan);
    }
    }
    }

  • #2
    Bác nào giúp sửa đoạn code quét phím với ! Thanks !

    Comment


    • #3
      bạn đọc bài viết này của mình : ma tran phim 4 nhan 4
      đúng cái bạn viết luôn .

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      • mèomướp
        Trả lời cho Sửa bộ nguồn DC 60V 45A
        bởi mèomướp
        Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
        Hôm qua, 13:11
      • tuyennhan
        Trả lời cho Sửa bộ nguồn DC 60V 45A
        bởi tuyennhan
        Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
        Hôm qua, 09:25
      • tuyennhan
        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
        bởi tuyennhan
        Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
        Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
        Hôm qua, 09:10
      • Ng.Phuong.5
        Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
        bởi Ng.Phuong.5
        Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
        Mấy con...
        09-01-2025, 19:44
      • viettinh
        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
        bởi viettinh
        Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
        Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
        09-01-2025, 18:12
      • nguyendinhvan
        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
        bởi nguyendinhvan
        Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
        Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
        Cách đơn giản...
        09-01-2025, 00:04
      • mèomướp
        Trả lời cho Sửa bộ nguồn DC 60V 45A
        bởi mèomướp
        Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
        08-01-2025, 19:02
      • tuyennhan
        Trả lời cho Sửa bộ nguồn DC 60V 45A
        bởi tuyennhan
        Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
        08-01-2025, 15:43
      • tuyennhan
        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
        bởi tuyennhan
        Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
        08-01-2025, 15:28
      • mèomướp
        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
        bởi mèomướp
        Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
        08-01-2025, 11:44
      Đang tải...
      X