Thông báo

Collapse
No announcement yet.

[Help] Mạch đếm sản phẩm

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

  • [Help] Mạch đếm sản phẩm

    mình đang làm bài tập về mạch đếm sản phẩm sử dụng led hồng ngoại hiển thị kết quả lên LCD, bên cạnh đó còn kích rờle cho băng chuyền hoạt động. Không biết mình code như này có sai chỗ nào hay không mà khi cấp nguồn LCD sáng mà không thấy có tín hiệu gì.

    PHP Code:
    #include <REGX52.H>
    #include <stdio.h>
    #define bat 1;
    #define tat 0;
    #define LCD_RW     P1_1
    #define LCD_RS     P1_0
    #define LCD_EN     P1_2
    sbit Led P2^0;
    sbit START P2^2;
    unsigned char nghin ,tram,chuc,donvi;
    char x
    long int a;
           
          
    void delay(unsigned long int t)
    {
        
    unsigned long int i;
        for(
    i=0;i<t;i++);
            
    }
        
    void ghi_lenh (unsigned char lcd_lenh)//ghi lenh ra lcd
            
    {

                
                   
    LCD_RS=0;
                
    LCD_RW=0;
                
                
    LCD_EN=1;
                
    P0=lcd_lenh;
                
    LCD_EN=0;
                
    delay(300);
                

            }
       
    void ghi_dulieu (unsigned char lcd_dulieu)
               {

               
            
    LCD_RS=1;
            
    LCD_RW=0;
        
            
    LCD_EN=1;
            
    P0=lcd_dulieu;
            
    LCD_EN=0;
            
    delay(300);
                        
            }

    //dich chuoi 
      
    void write_string(char *s)
      {
              while(*
    s)                                
            {
                    
    ghi_dulieu(*s);
                
                    
    s++;
               
        
                
            }
      }
      
    // khoi tao LCD
          
    void khoitao_lcd(void)
        {
            
                
    ghi_lenh (0x02);
                
    ghi_lenh (0x38);
                
    ghi_lenh (0x06);
                
    ghi_lenh (0x0c);
               
        }
            
    void ngatngoai(voidinterrupt 0
            
    {
                
    a++;
                
    nghin=a/1000;
                
    tram=(a%1000)/100;
                
    chuc=((a%1000)%100)/10;
                
    donvi=((a%1000)%100)%10;
                if(
    a>9999)    a=0;
            }
              
                    
    void hienthi(void)
                    {
                    
               
    ghi_lenh(0x03);
               
    ghi_lenh(0x80);
               
    ghi_dulieu(nghin 0x30);
               
    ghi_dulieu(tram 0x30);
               
    ghi_dulieu(chuc 0x30);
               
    ghi_dulieu(donvi 0x30);
                
                
                            
                    }
                
     
    // Ham chinh
        
    void main(void)
    {
    while(
    1)

       
    Led tat;    
       if(
    START==0){
              
    Led=bat;      
         
    delay(50);
        
    khoitao_lcd();
        
    a=0;
        
    IE=0x81;
        
    IT0=1;
           
    ghi_lenh(0xc0);
        
    write_string("san pham");
        while(
    1)
        {           
           
    hienthi();                                                                                                                           
        }
        }

    }

    Mình dùng KielC để viết và sử dụng vdk AT89S52. Mong ae tận tình chỉ giúp!!!!

  • #2
    đây là mạch nguyên lý
    [pdf]https://app.box.com/s/o969mapzlakpzklkw9cl
    [eagle]https://app.box.com/s/7urfhipbys37r0nh1pwo

    Comment


    • #3
      không có bạn nào giúp được ạ?????
      Last edited by stork192; 28-11-2013, 15:55.

      Comment


      • #4
        không biết bỏ con biến trở ra rồi nối tắt dây lại có hư LCD không mấy bác?

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X