Thông báo

Collapse
No announcement yet.

Nhận 1 số tự nhiên 3 chữ số bất kỳ hiển thị led 7 đoạn??

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

  • Nhận 1 số tự nhiên 3 chữ số bất kỳ hiển thị led 7 đoạn??

    Code:
    #include <REGX51.H>
    sbit A1 = P1^0;
    sbit A2 = P1^1;
    sbit A3 = P1^2;
    char str[3];
    unsigned char i=0,tram,chuc,donvi;
    int x;
    code unsigned char dataled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
    void delay(int time)
    {int n;
    for(n=0;n<time;n++)
    {
    ;
    }
    }
    
    
    void hienthi(unsigned char num)
    {A1 = 1;
    P0  = dataled[num/100];
    delay(50);
    A1 = 0;
    P0 = 0xff;
    
    A2 = 1;
    P0 = dataled[num/10%10];
    delay(50);
    A2 = 0;
    P0 = 0xff;
    
    A3 = 1;
    P0 = dataled[num%10];
    delay(50);
    A2 = 0;
    P0 = 0xff;
    }
    void Setup_isr()
    {
    SCON = 0x52; 	  /* Che do 1: 8-bit UART, cho phep truyen   */
    TMOD = 0x20;	  /* timer 1 che do 2: 8-Bit tu dong nap lai.          */
    TH1 = 0xfd ;	  /* toc do 9600 baud                */
    TL1 = 0xfd ;
    TI = 0;			  /* co ngat nha^n.=0*/
    RI=0;			  /* co ngat' truye^n =0*/
    TR1 = 1;			 /* timer 1 run                           */
    ES   =1;			 /* cho phep ngat noi tiep */
    }
    //===========================
    void nhan(void) interrupt 4	  //Chuong trinh con dung ngat noi tiep
    {
    	char ch;
    	if(RI)
    	{
    		   RI=0;       	  
               ch=SBUF;
    		   str[i]=ch;
    		   i++;
    		   if(i==3)
    		   {
    		   donvi = str[0]-48;
    		   chuc = str[1]-48;
    		   tram = str[2]-48;
    		   x= tram*100+chuc*10+donvi;
    		   str[3]=0;
    		   i=0;}}}
     void main()
     {
     Setup_isr();
     EA=1;
     while(1)
     { 
     hienthi(x);
     }
     }
    Trên đây là code e viết, các bác chỉ giúp e nó sai ở đâu mà hiển thị ko đúng vs ạ. e xin cám ơn
    Nguyễn Huy Biên - 01649 802 694
    gmail :

  • #2
    cái này không ai giúp e ạ??
    Nguyễn Huy Biên - 01649 802 694
    gmail :

    Comment


    • #3
      theo mình thì bạn là phần nhận các số từ giao diện rùi truyền mã xuống cho chíp ứng với mỗi mã là 1 số các này có thể code hơi dài nhưng mình nghĩ là có thể

      Comment


      • #4
        Nguyên văn bởi dtcn_112 Xem bài viết
        theo mình thì bạn là phần nhận các số từ giao diện rùi truyền mã xuống cho chíp ứng với mỗi mã là 1 số các này có thể code hơi dài nhưng mình nghĩ là có thể
        thanks bạn. Nhưng nếu mỗi mã ứng với 1 số thì giả sử mình gửi từ 0- 1 000 000 thì být làm sao được.
        ở đây mình cho dữ liệu nhận được vào buffer sau đó lại tách để hiển thị, nhưng ko hiểu làm sao mà nó hiển thị sai hết cả
        Nguyễn Huy Biên - 01649 802 694
        gmail :

        Comment


        • #5
          A=123;
          led1=A%10; //ket qua led1=3(chia lay du),tra bang ma led 7 doan,voi dia chi led1
          A=A/10;
          led2=A%10;//ket qua led2=2,tra bang ma
          A=A/10;
          led3=A%10;//ket qua led3=1
          ban tu tao ra vong lap voi so led 7 doan dang hien thi chinh la so vong lap.ok.
          , , ,

          Comment


          • #6
            Nguyên văn bởi rptdnmqs Xem bài viết
            A=123;
            led1=A%10; //ket qua led1=3(chia lay du),tra bang ma led 7 doan,voi dia chi led1
            A=A/10;
            led2=A%10;//ket qua led2=2,tra bang ma
            A=A/10;
            led3=A%10;//ket qua led3=1
            ban tu tao ra vong lap voi so led 7 doan dang hien thi chinh la so vong lap.ok.
            oh. thanks bạn. nhưng ở đây mình đang mắc ở chỗ tách dư liệu nhận được từ cổng UART ấy, dữ liệu mình nhận được toàn sai thôi
            Nguyễn Huy Biên - 01649 802 694
            gmail :

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            • bqviet
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi bqviet
              Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
              06-12-2025, 17:17
            • nguyendinhvan
              Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
              bởi nguyendinhvan
              Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
              05-12-2025, 19:59
            • afrendly
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi afrendly
              Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
              04-12-2025, 01:27
            • nick22
              Trả lời cho Máy điện châm ?
              bởi nick22
              Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
              01-12-2025, 13:23
            Đang tải...
            X