Thông báo

Collapse
No announcement yet.

Mong các bác giúp em sửa cái code này

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

  • Mong các bác giúp em sửa cái code này

    Em làm đề tài đo nhiệt độ có cái code này dùng keil c dịch nó báo lỗi sửa mãi không được đây là code của em.các bác xem rồi sửa giùm em với
    #include"imt_reg51.h"
    #include"intrins.h"
    #include"delay.h"
    #include"port_init.h"
    #include"lcd.h"



    void main()
    {
    unsigned char value_T;
    port_init();
    LCD_ON_OFF = LCD_ON;
    lcd_init();
    while(1)
    {
    //TEMPERATURE SENSOR
    lcd_gotoxy(0,0);
    lcd_printf("T: C");
    lcd_cmd_wr(0x84);
    lcd_data_wr(0xdf);
    ADC_CH0=0;
    ADC_CH1=0;
    ADC_CH2=0;
    ADC_ALE=0;
    ADC_SOC=0;
    ADC_OE=0;
    value_T=hex_dec(start_conv());
    T=hex_dec(value_T+0x02);
    lcd_cmd_wr(0x82);
    lcd_print(T);

    }







    void port_init(void)
    {
    P0 = 0xFF; // Port0 initialized as input port
    P1 = 0xFF; // Port1 initialized as input port
    P2 = 0xFF; // Port2 initialized as input port
    P3 = 0xFF; // Port3 initialized as input port
    }





    void lcd_init(void)
    {
    uchar i;
    uchar lcd_initseq[4] =
    {
    MODE6, // Interface datalength=8, display lines=2, character font=5*7 dots.
    DISP_ON_CU_OFF, // Display ON and Cursor OFF
    CLR_DISP // Write space code to all DDRAM, set AC to 0 and set for Cursor Increment mode.
    };
    delay_msec(5);
    for(i = 0;i < 4;i++)
    {
    lcd_cmd_wr(lcd_initseq[i]); // LCD command write module
    }
    }

    void lcd_cmd_wr(uchar lcd_cmd)
    {
    wait_lcd(); // wait until lcd is busy
    DATA_BUS = lcd_cmd; // place lcd command value on the data bus
    LCD_RS = LCD_CMD_REG; // Select command register for storing command value
    LCD_RW = LCD_WRITE; // select write operation mode to write comand value into command register
    ADD_BUS = LCD_ADD; // enable lcd to read command value available on data bus and store into command register
    delay_msec(1);
    ADD_BUS = DISABLE; // disable all peripherl device
    }


    void lcd_data_wr(uchar lcd_data)
    {
    wait_lcd(); // wait until lcd is busy
    DATA_BUS = lcd_data; // place data value on data bus which is to be written into lcd.
    LCD_RS = LCD_DATA_REG; // select lcd data register to store data value
    LCD_RW = LCD_WRITE; // select write operation mode for writing data value into lcd data register
    ADD_BUS = LCD_ADD; // enable lcd to read data value available on the data bus
    delay_msec(1);
    ADD_BUS = DISABLE; //disable all peripheral devices
    }


    bit lcd_gotoxy(unsigned char x, unsigned char y)
    {
    unsigned char xy;
    bit flag = 0;
    y = (y == 0)?(0x80)y == 1)?(0XC0)0X00)); // Assign LCD column Address to y coordinate
    x = ((x >= 0)||(x <= 15))?x:0x00; // Assign LCD Row Address to X coordinate
    xy = x + y; // XY coordinate Address
    if(xy)
    {
    lcd_cmd_wr(xy); // If Valid Address Move cursor to LCD xy coordinate
    flag = 1;
    }
    return(flag);
    }



    void wait_lcd()
    {
    LCD_BF = 1; // set D7 data line as input line to read busy flag
    DATA_BUS = INPUT_PORT;
    LCD_RS = LCD_CMD_REG; //select lcd command register to read busy flag
    LCD_RW = LCD_READ; // select read operation to read busy flag from lcd
    ADD_BUS = LCD_ADD; // enable lcd to read busy flag
    delay_msec(1);
    while(LCD_BF) // check continuously until lcd is busy
    {
    }
    ADD_BUS = DISABLE; // disble all peripheral device including lcd.
    }




    unsigned char start_conv()
    {
    unsigned char C;
    P0=0xff;
    P2=0xff;
    ADC_ALE=1; //ADC_ALE//
    delay_msec(1);
    ADC_SOC=1; //ADC_SOC//
    delay_msec(1);
    ADC_ALE=0; //ADC_ALE//
    delay_msec(1);
    ADC_SOC=0; //ADC_SOC
    delay_msec(1);
    while(ADC_EOC==0);
    ADC_OE=1; //ADC_OE
    P0=0x22;
    C=P2;
    delay_msec(1);
    ADC_OE=0;
    P0=0xff; //ADC_OE

    return(C);
    }


    unsigned char hex_dec(unsigned char D)
    {
    unsigned char LB,HB,temp,count,AX;
    temp=D;
    temp=_crol_((0xf0&temp),4);
    for(HB=0x00,count=0x00;count<temp;count++)
    {
    HB=HB+0x16;
    AX=AC;
    if(AX==1)
    {
    HB=HB+0X06;
    }
    if((HB&0X0F)>0X09&&(HB&0XF0)>0X90)
    {
    HB=HB+0X66;
    }
    else if((HB&0X0F)>0X09)
    {
    HB=HB+0X06;

    }
    else if((HB&0XF0)>0X90)
    {
    HB=HB+0X60;
    }
    else
    {
    HB=HB;
    }
    }
    LB=D&0x0F;
    HB=HB+LB;
    cảm ơn các bác
    AX=AC;
    if(AX==1)
    {
    HB=HB+0X06;
    }
    if((HB&0X0F)>0X09&&(HB&0XF0)>0X90)
    {
    HB=HB+0X66;
    }
    else if((HB&0X0F)>0X09)
    {
    HB=HB+0X06;
    }
    else if((HB&0XF0)>0X90)
    {
    HB=HB+0X60;
    }
    else
    {
    HB=HB;
    }
    return(HB);
    }

  • #2
    tui có thấy Keil C báo lỗi j đâu , lỗi j thì u copy , up lên đây thì mới biết mà chữa đc chứ

    Comment


    • #3
      Cái biến T trong hàm main chưa khai báo kìa.
      , , ,

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      • tuyennhan
        Trả lời cho Tiếng Anh cho người Việt
        bởi tuyennhan
        Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
        Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
        23-02-2025, 07:44
      • vi van pham
        Trả lời cho Tiếng Anh cho người Việt
        bởi vi van pham
        Cám ơn những lời chúc tốt đẹp của em.

        Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

        Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
        23-02-2025, 02:00
      • nhathung1101
        Trả lời cho Tiếng Anh cho người Việt
        bởi nhathung1101
        Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

        Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

        Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
        22-02-2025, 22:18
      • dinhthuong80
        Trả lời cho Tiếng Anh cho người Việt
        bởi dinhthuong80
        Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

        Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
        22-02-2025, 14:51
      • dinhthuong80
        Trả lời cho Tiếng Anh cho người Việt
        bởi dinhthuong80
        Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

        Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
        22-02-2025, 14:39
      • dinhthuong80
        Trả lời cho Tiếng Anh cho người Việt
        bởi dinhthuong80
        Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

        Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
        22-02-2025, 14:28
      • bqviet
        Trả lời cho Tiếng Anh cho người Việt
        bởi bqviet
        Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
        21-02-2025, 20:26
      • mèomướp
        Trả lời cho Tiếng Anh cho người Việt
        bởi mèomướp
        Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
        21-02-2025, 12:32
      • vi van pham
        Trả lời cho Tiếng Anh cho người Việt
        bởi vi van pham
        Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

        Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
        20-02-2025, 21:31
      • bqviet
        Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
        bởi bqviet
        Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
        20-02-2025, 17:22
      Đang tải...
      X