Thông báo

Collapse
No announcement yet.

đồ án Môn Học

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

  • đồ án Môn Học

    chào các bạn !
    mình và hai đứa bạn đang chuẩn bị làm đồ án môn học về vi xử lý có sử dụng 89c51, nhưng 3 đứa chưa tìm ra được đề tài nào phù hợp.Nếu bạn nào làm đồ án rồi hay thường làm các mạch vi xử lý có sử dụng 89c51 thì xin góp ý kiến cho tụi mình...cám ơn các bạn rất nhiều !

  • #2
    dùng LCD làm gì cho tốn kém mà ít có tính ứng dụng thực tế,bạn làm đồng hồ lịch vạn niên đi gồm có:
    + đồng hồ thời gian thực sử dụng RTC cho dễ,dùng DS1307 cho rẻ
    + hiển thị led bảy đoạn (rẻ + đẹp)
    + đo và hiển thị nhiệt độ với ADC + LM35
    mình nghĩ đề tài này nhiều tài liệu nghiên cứu lại gần như bao quát được hết các chức năng của 89c51(89s52) có lẽ nếu thêm phần truyền thông nên máy tính thì đủ hết nhưng phần này bỏ đi thì hơn,tham quá rồi không kip hoàn thành.
    sale of Gobal Automation Solution Company Limited

    Comment


    • #3
      Em mới học Pic, không hiểu lắm về các timer. Mong các Anh chuyển giup đoạn code này sang cho PIC, Em đã chuyển được 1 phần, nhưng đoạn sau thì tit. Cảm ơn các Anh.
      #include<reg2051.h>
      #include<string.h>
      #include<stdio.h>
      #include<ctype.h>
      #include<absacc.h>
      #include <math.h>
      #include<intrins.h>
      #include<stdlib.h>
      //***Khai bao bien****
      sbit Clock=P1^0;
      sbit STcp =P1^1;
      sbit Data =P1^2;

      sbit SelGre1=P1^3;
      sbit SelGre2=P1^4;
      sbit SelRed1=P1^5;
      sbit SelRed2=P1^6;


      sbit R=P3^2;
      sbit Y=P3^3;
      sbit G=P3^4;
      //*************
      unsigned char Code_7S[10]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF 6};//={0xDE,0x50,0xEC,0xF8,0x72,0xBA,0xBE,0xD0,0xFE,0xF A};
      unsigned char LED_BUF[2];

      unsigned char tic=0,tic2=0;
      Sig_in,Num_Err=0;

      char G_inc=0,G_dec=0,
      R_inc=0,R_dec=0;

      bit Flag_1s;
      //**************************************
      //**************************************
      void wait (unsigned int input){
      while (input--){;}
      }
      void Disp_led(char input){
      char i;
      if(input<0)input=0;
      if(input<100){
      LED_BUF[0]=Code_7S[input/10];
      LED_BUF[1]=Code_7S[input%10];
      }
      STcp=0;
      Clock=0;
      for(i=0;i<=7;i++){
      if((LED_BUF[0]&0x80)==0)Data=0;
      else Data=1;
      Clock=1;
      LED_BUF[0]=LED_BUF[0]<<1;
      Clock=0;
      }
      for(i=0;i<=7;i++){
      if((LED_BUF[1]&0x80)==0)Data=0;
      else Data=1;
      Clock=1;
      LED_BUF[1]=LED_BUF[1]<<1;
      Clock=0;
      }
      STcp=1;
      }
      void Init_time(void){
      while(G);
      TR0=1;
      while(!G)if(Flag_1s){Flag_1s=0;G_inc++;}
      TR0=0;TH0=0xD8;TL0=0xF0;tic=0;
      if(G_inc>0){G_dec=G_inc;G_inc=0;}
      while(R);
      TR0=1;
      while(!R)if(Flag_1s){Flag_1s=0;R_inc++;}
      TR0=0;TH0=0xD8;TL0=0xF0;tic=0;
      if(R_inc>0){R_dec=R_inc;R_inc=0;}
      }

      void main(void){
      SelGre1=1;SelGre2=1;
      SelRed1=1;SelRed2=1;
      wait(5000);
      Flag_1s=0;
      //---Init timer0--
      TMOD=0x11;//khoi tao cho Timer0 o che do timer 16 bits
      TR0=0;TH0=0xD8;TL0=0xF0;tic=0;
      ET0=1;//cho phep ngat Timer0
      //---Init timer1--
      EA=1;//Cho phep ngat toan cuc
      Init_time();
      //***********
      while(1){
      while(G);
      TR0=1;Disp_led(G_dec);SelGre1=0;SelGre2=0;SelRed1= 1;SelRed2=1;
      while(!G)if(Flag_1s){Flag_1s=0;G_inc++;G_dec--;Disp_led(G_dec);}
      TR0=0;TH0=0xD8;TL0=0xF0;tic=0;
      if(G_inc>0){G_dec=G_inc;G_inc=0;}
      SelGre1=1;SelGre2=1;
      SelRed1=1;SelRed2=1;
      while(R);
      TR0=1;Disp_led(R_dec);SelGre1=1;SelGre2=1;SelRed1= 0;SelRed2=0;
      while(!R)if(Flag_1s){Flag_1s=0;R_inc++;R_dec--;Disp_led(R_dec);}
      TR0=0;TH0=0xD8;TL0=0xF0;tic=0;
      if(R_inc>0){R_dec=R_inc;R_inc=0;}
      }
      }
      //----------------------------------------------------------------------------------------------------------
      void INTTimer0_10ms(void) interrupt 1{
      TR0=0;TH0=0xD8;TL0=0xF0;TR0=1;
      tic++;
      if(tic>=100){
      Flag_1s=1;
      tic=0;
      }
      }


      Và đây là đoạn Em sửa:
      #include <18F4431.h>
      #include <math.h>
      #fuses HS,NOWDT,NOPROTECT,NOLVP
      #use delay(clock=20000000)
      //***Khai bao bien****
      #define Clock PIN_B0
      #define STcp PIN_B1
      #define Data PIN_B2

      #define SelGre1 PIN_B3
      #define SelGre2 PIN_B4

      #define SelRed1 PIN_B5
      #define SelRed2 PIN_B6


      #define R PIN_B7
      #define Y PIN_D0
      #define G PIN_D1
      //*************
      unsigned char Code_7S[10]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF 6};//={0xDE,0x50,0xEC,0xF8,0x72,0xBA,0xBE,0xD0,0xFE,0xF A};
      unsigned char LED_BUF[2];

      unsigned char tic=0,tic2=0,
      Sig_in,Num_Err=0;

      char G_inc=0,G_dec=0,
      R_inc=0,R_dec=0,Flag_1s,TMOD,count;


      //**************************************
      //**************************************

      void Disp_led(char input){
      char i;
      if(input<0)input=0;
      if(input<100){
      LED_BUF[0]=Code_7S[input/10];
      LED_BUF[1]=Code_7S[input%10];
      }
      output_low(STcp);
      output_low (Clock);
      for(i=0;i<=7;i++){
      if((LED_BUF[0]&0x80)==0)output_low(Data);
      else output_high(Data);
      output_high (Clock);
      LED_BUF[0]=LED_BUF[0]<<1;
      output_low (Clock);
      }
      for(i=0;i<=7;i++){
      if((LED_BUF[1]&0x80)==0)output_low (Data);
      else output_high (Data);
      output_high (Clock);
      LED_BUF[1]=LED_BUF[1]<<1;
      output_low(Clock);
      }
      output_high (STcp);
      }
      ....
      Không viết được nữa, hiii..Các Ah giúp Em nhé.

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      • Andrea14
        Vấn đề về tốc độ quay
        bởi Andrea14
        Chào mọi người,

        Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
        hôm nay, 12:42
      • 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
      Đang tải...
      X