Trả lời mọi câu hỏi liên quan 8051

Thảo luận trong 'Họ 8051'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

  1. ledacdam

    ledacdam Kỹ sư

    Tham gia ngày:
    9/12/14
    Bài viết:
    211
    Đã được thích:
    150
    Điểm thành tích:
    43
    Giới tính:
    Nam
    Nghề nghiệp:
    LG Display
    Nơi ở:
    QUỲNH PHỤ - THÁI BÌNH
    Code còn nhiều lỗi khác nữa
     
    Kiên Xơ Mít thích bài này.
  2. Kiên Xơ Mít

    Kiên Xơ Mít Học sinh phổ thông

    Tham gia ngày:
    8/9/16
    Bài viết:
    3
    Đã được thích:
    1
    Điểm thành tích:
    3
    cảm ơn a đã giải thích các lỗi cho em :) nhưng những lỗi đó chắc do e copy lỗi nên ra còn ko thì phần mềm cũng có thể báo lỗi rõ ràng rồi, còn cái lỗi chính error near "void" thì e chịu cứng, ko hiểu gì cả, mong a giúp đỡ :(
     
  3. ledacdam

    ledacdam Kỹ sư

    Tham gia ngày:
    9/12/14
    Bài viết:
    211
    Đã được thích:
    150
    Điểm thành tích:
    43
    Giới tính:
    Nam
    Nghề nghiệp:
    LG Display
    Nơi ở:
    QUỲNH PHỤ - THÁI BÌNH
    Bạn sửa ntn nhé:
    #include <REGX51.H>
    int n=0;


    void delay(int time)
    {int i;
    for(i=0;i<time;i++)
    {;}
    }

    void solanbam()
    {
    if (P2_0==0) //de nut bam o cong p2.0//
    {delay(100);
    while(P2_0==0)
    {;}
    n++;
    if(n==7)
    {n=0;} }
    }

    void hienthi(int solan)
    { switch(solan)
    { case 0: {break;}
    case 1: P1_0=1; break;
    case 2: P1_1=1; break;
    case 3: P1_2=1; break;
    case 4: P1_3=1; break;
    case 5: P1_4=1; break;
    case 6: P1_5=1; break;
    }
    }

    void main()
    {

    while(1)
    {solanbam();
    hienthi(n); }
    }
     
    Kiên Xơ Mít thích bài này.
  4. ledacdam

    ledacdam Kỹ sư

    Tham gia ngày:
    9/12/14
    Bài viết:
    211
    Đã được thích:
    150
    Điểm thành tích:
    43
    Giới tính:
    Nam
    Nghề nghiệp:
    LG Display
    Nơi ở:
    QUỲNH PHỤ - THÁI BÌNH
    Lỗi đó xuất hiện khi bạn đánh thiếu dấu, thừa dấu hoặc viết sai chính tả
     
    Kiên Xơ Mít thích bài này.
  5. Kiên Xơ Mít

    Kiên Xơ Mít Học sinh phổ thông

    Tham gia ngày:
    8/9/16
    Bài viết:
    3
    Đã được thích:
    1
    Điểm thành tích:
    3
    á anh hay quá, hết lỗi rồi :x:x:x a mà không chỉ chắc e mò cả năm cũng ko biết :-??cảm ơn a nhiều lắm lắm! :-bd
     
    ledacdam thích bài này.
  6. trantuyen123

    trantuyen123 Học sinh phổ thông

    Tham gia ngày:
    17/11/16
    Bài viết:
    7
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Hên quá!.. e đang bí mấy tuần nay không biết hỏi ai... Hiện em đang làm bài tập lớn đo nhiệt độ LM35 sử dụng ADC 0804 và Vi điều khiển 8051 và ngôn ngữ lập trình Assembly.. hiển thị lên màn hình LCD_1602..em sử dụng kiểu truyền dữ liệu cho LCD là 4 bit.. hiện em đang vướng ở chỗ viết chữ có dấu hiển thị lên LCD.. và cái thứ 2 là em muốn đo được nhiệt độ từ -55*C tới 150*C.. mà hiện tại chỉ đo được từ 0-150*C thui.. bởi vì Vout của LM 35 khi đo nhiệt độ từ 0-> (-55)*C.. nó trả về mức điện áp âm. A chỉ em với.. em cám ơn nhiều hehe!!!
     
  7. ledacdam

    ledacdam Kỹ sư

    Tham gia ngày:
    9/12/14
    Bài viết:
    211
    Đã được thích:
    150
    Điểm thành tích:
    43
    Giới tính:
    Nam
    Nghề nghiệp:
    LG Display
    Nơi ở:
    QUỲNH PHỤ - THÁI BÌNH
    bbb.
    #include <REGX52.H>
    #include <INTRINS.H>

    #define lcd_data P2
    sbit lcd_rs = P2^0;
    sbit lcd_en = P2^1;
    // Khai bao ky tu
    unsigned char code data1[] = {31, 17, 21, 21, 21, 21, 17, 31 };
    unsigned char code data2[] = {31, 27, 19, 27, 27, 27, 17, 31 };
    unsigned char code data3[] = {31, 17, 29, 29, 17, 23, 17, 31 };
    unsigned char code data4[] = {31, 17, 29, 17, 29, 29, 17, 31 };
    unsigned char code data5[] = {31, 21, 21, 21, 17, 29, 29, 31 };
    unsigned char code data6[] = {31, 17, 23, 17, 29, 29, 17, 31 };
    unsigned char code data7[] = {31, 17, 23, 17, 21, 21, 17, 31 };
    unsigned char code data8[] = {31, 17, 29, 29, 29, 29, 29, 31 };

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void delay(unsigned int t){
    unsigned int i;
    for(i=0;i<t;i++);
    }

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void lcd_enable()
    {
    lcd_en = 0;
    delay(1);
    lcd_en = 1;
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void lcd_command(unsigned char lenh)
    {
    lcd_rs = 0;
    lcd_data = (lcd_data & 0x0f)|(((lenh>>4) & 0x0F)<<4);
    lcd_enable();
    lcd_data = (lcd_data & 0x0f)|((lenh & 0x0F)<<4);
    lcd_enable();
    delay(1);
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void LCD_Init()
    {
    lcd_en = 1;
    lcd_rs = 0;
    lcd_command(0x33);
    lcd_command(0x32);
    lcd_command(0x28);
    lcd_command(0x0C);
    lcd_command(0x06);
    lcd_command(0x01);
    delay(25);
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void LCD_Gotoxy(unsigned char x, unsigned char y){
    unsigned char address;
    if(y == 0) address=(0x80+x);
    else if(y == 1) address=(0xc0+x);
    delay(10);
    lcd_command(address);
    delay(5);
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void LCD_PutChar(unsigned char ascii)
    {
    lcd_rs = 1;
    lcd_data = (lcd_data & 0x0f)|(((ascii>>4) & 0x0F)<<4);
    lcd_enable();
    lcd_data = (lcd_data & 0x0f)|((ascii & 0x0F)<<4);
    lcd_enable();
    delay(1);
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void LCD_Puts(unsigned char *lcdstring)
    {
    while (*lcdstring)
    {
    LCD_PutChar(*lcdstring++);
    }
    }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void Dam(unsigned char addr, unsigned char *noi_dung,unsigned char x,unsigned char y)
    {
    unsigned int i=0;
    lcd_command(addr);
    while(i<8)
    {
    LCD_PutChar(noi_dung);
    i++;
    }
    LCD_Gotoxy(x,y);
    LCD_PutChar((addr-64)/8);
    }
    //~~~~~~~~~~~~~~ Ham chinh ~~~~~~~~~~~~~~~~~~~~~~//
    void main(){
    LCD_Init();
    delay(10);
    while(1)
    {
    Dam( 64,data1,0,1);
    Dam( 72,data2,1,1);
    Dam( 80,data3,2,1);
    Dam( 88,data4,3,1);
    Dam( 96,data5,4,1);
    Dam(104,data6,5,1);
    Dam(112,data7,6,1);
    Dam(120,data8,7,1);
    LCD_Gotoxy(0,0);
    LCD_Puts("Ky tu dac biet");
    }
    }
     
    trantuyen123 thích bài này.
  8. trantuyen123

    trantuyen123 Học sinh phổ thông

    Tham gia ngày:
    17/11/16
    Bài viết:
    7
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    HAY QUÁ.. A có Code viết bằng ngôn ngữ assembly không anh
     
  9. ledacdam

    ledacdam Kỹ sư

    Tham gia ngày:
    9/12/14
    Bài viết:
    211
    Đã được thích:
    150
    Điểm thành tích:
    43
    Giới tính:
    Nam
    Nghề nghiệp:
    LG Display
    Nơi ở:
    QUỲNH PHỤ - THÁI BÌNH
    Không.Lâu ngày không dùng ASM nên quên rồi
     
  10. Viet Quyet

    Viet Quyet Học sinh phổ thông

    Tham gia ngày:
    3/11/16
    Bài viết:
    6
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    mọi người cho mình hỏi là mình đang muốn dùng 89C51 để đọc tín hiệu từ cảm biến oxy thì phải làm như thế nào nhỉ.mình không biêt gì hết
     

Chia sẻ trang này