Thông báo

Collapse
No announcement yet.

Viết code cho 89c51 như thế nao

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

  • Viết code cho 89c51 như thế nao

    Hi các bác !@
    Em đang làm một trò chơi nhỏ :
    Một người chơi và một người dẫn chương trình ,ban đầu người chơi có 100 Đ
    hiển thị trên LED.
    Người DCT hỏi nvà nhấn "Bắt đầu" Người có 30 giây để nhấn "Trả lời" và trả lời"
    nếu đúng trong 10s đầu tiên cộng 30 Đ, 10s tiếp cộng 20 Đ , 10s sau cộng 10 Đ
    Nếu sai trừ 10 điểm .
    Em duu2ng Protues 6 mà Nó ko chạy .Rất mong nhận được sự chỉ giáo .!!!

  • #2
    Post lên đây đi, Phi sẽ giúp cho chuyện này, đơn giản thôi mà.

    Comment


    • #3
      Hi! các bác giúp mình với. BTcủa mình làm mạch đếm ngược của đèn giao thông yêu cầu như sau: P0.1 -> P0.6 nối a -> g của led 7 thanh (đơn vi), P2.7 -> P2.0 nối a -> g của led 7 thanh (h.chục). khi các tín hiêu xanh, vàng, đỏ đưa vào P1.0, P1.1,P1.2 mạch bắt đầu đếm

      Comment


      • #4
        Hi các bác !@
        Em đang làm một trò chơi nhỏ :
        Một người chơi và một người dẫn chương trình ,ban đầu người chơi có 100 Đ
        hiển thị trên LED.
        Người DCT hỏi nvà nhấn "Bắt đầu" Người có 30 giây để nhấn "Trả lời" và trả lời"
        nếu đúng trong 10s đầu tiên cộng 30 Đ, 10s tiếp cộng 20 Đ , 10s sau cộng 10 Đ
        Nếu sai trừ 10 điểm .
        Em duu2ng Protues 6 mà Nó ko chạy .Rất mong nhận được sự chỉ giáo
        Về cái này pác ko những phải ửng dụng giải thuật vdk tốt mà tính thời gian phải chuẩn nữa.tại sao pác ko dùng mạng vi tính để làm việc này nhĩ ?

        Hi! các bác giúp mình với. BTcủa mình làm mạch đếm ngược của đèn giao thông yêu cầu như sau: P0.1 -> P0.6 nối a -> g của led 7 thanh (đơn vi), P2.7 -> P2.0 nối a -> g của led 7 thanh (h.chục). khi các tín hiêu xanh, vàng, đỏ đưa vào P1.0, P1.1,P1.2 mạch bắt đầu đếm
        Cái này pác cũng phải sử dụng thành thạo bộ timer
        Tâm trí ta say nhưng lòng ta đâu có say
        Bởi trái tim tôi đã trót say người

        Comment


        • #5
          Cám ơn bạn đã trả lời! Nhưng bạn có thể hướng dẫn cụ thể hơn? mình mới tìm hiểu về VDK và sd Keil C. nếu dùng pp quét led + ULN2803 đệm dòng bài toán có đơn giản?

          Comment


          • #6
            Cả nhà đi đâu hết rồi! không ai giúp mình một tí?

            Comment


            • #7
              gui du lieu tu 89Cxx sang RS232

              em muon viet code cho chip bang ngon ngu C++ de gui du lieu qua RS232 ma kho qua em chua viet duoc. Mong cac cao nhan giup do gui code len cho em voi.
              em xin cam on...!

              Comment


              • #8
                @dk27: Bạn nên sử dụng Timer0 ở chế độ 8bit tự nạp, bằng cách này bạn có thể tính thời gian chính xác hơn. Giả sử có một người chơi, vậy có 2 nút nhấn, bạn có thể sử dụng ngắt ngoài để bắt nút nhấn cho đủ nhanh.
                Bạn hãy đưa schematic và code lên, chắc chắn mọi người sẽ giải quyết giúp bạn.

                @codien: Đèn giao thông thì cần 2 biến đếm thời gian: XanhDelay, VangDelay bạn cũng nên sử dụng Timer0 ở chế độ 8 bit tự nạp để tính thời gian. Ở đây Timer0 sẽ là xung gõ chuẩn để bạn thay đổi giá trị các biến đếm thời gian, dùng 2 biến đếm xem như đã có 2 bộ định thời.
                Tôi không hiểu tại sao lại phải có tín hiệu xanh, vàng, đỏ thì mới bắt đầu đếm. Vậy nếu ban đầu không có tín hiệu nào thì bạn không đếm -> không xuất tín hiệu vậy mạch sao chạy đc?
                Bạn là người điều khiển, việc xuất tín hiệu xang, vàng (đỏ là đảo của xanh và vàng) là do biến định thời, tại sao phải đợi tín hiệu bên ngoài?

                @tungngaytho: Trước tiên bạn phải kết nối phần cứng, trong diễn đàn tôi đã từng post bài về giao tiếp PC qua RS232 dùng ngôn ngữ C (viết bằng Keil). Bạn cố gắng tìm đọc. (Tên của đề tài là Cảm biến nhận biết màu dùng AT89C51)

                Chúc các bạn thành công!
                Một bông hồng cho những ai đang còn mẹ,
                Đang còn mẹ để lòng vui sướng hơn ..

                Comment


                • #9
                  bac PHI oi bac co the viet bang C khong tui xem bac viet bang ASM tui chang hieu gi co cach nao hoc ASM nhanh khong bac

                  Comment


                  • #10
                    Cảm ơn bạn HPECOM. Có thể do trình bày của minh làm cho bạn hiểu nhầm chăng. cụ thể bài đếm ngược của minh thế này :tín hiệu xanh vào P1.0 mạch đếm, tín hiệu vàng vào P1.2 mạch đếm,tín hiệu đỏ vào P1.3 mạch đếm. còn vấn đề biến đếm thời gian theo bạn đỏ là đảo của xanh và vàng chỉ đúng với các lọai đèn sử đúng relay thời gian. Quan sát thực tế ngày nay các đèn giao thông được đk bằng PLC hay VĐK thời gian làm việc như sau :

                    Theo quan sát cuả bản thân minh:
                    Tuyến1: ....--ĐX------XV--VĐ-------------ĐX------XV--VĐ
                    Tuyên2: ....--Đ-------------ĐX------XV--VĐ-------------Đ
                    theo sơ đồ trên có những thời điểm đều là đèn đỏ để giải tỏa giao lộ. cho nên thời gian đèn xanh + đèn vàng tuyến 1 < thời gian đèn đỏ tuyến 2 nên không thể đỏ là đảo của xanh và vàng.
                    khi tín hiệu đầu vào thay đổi (thời gian đèn thay đổi) mạch phải nhận biết và tự thay đổi số đếm theo tín hiệu đầu vào
                    Last edited by Codien; 18-10-2007, 11:52.

                    Comment


                    • #11
                      Chao ban HPECOM!
                      minh da thu viet code = Keil C cho vdk de truyen nhan du lieu qua RS232. Minh mo phong bang Protues nhung khi chay thi no ko theo y muon. no cu chay lung tung...chang hieu j ca??? minh ko biet sai do phan lap trinh hay mo phong nua...ban giup minh voi nhe.
                      day la doan code cua minh:
                      Code:
                      #include <AT892051.h>
                      char uart_data;
                      void serial_init()
                      {
                      // Khoi tao cho ngat RS232 
                      	SCON = 0x50;	  
                      	TMOD = 0x20;	 
                      	TH1  = 0xFD;      
                      	TR1 = 1; 	      
                      	EA  = 1; 	  
                      	ES=1;
                      	TI = 1;
                      }
                      
                      void putstr(char *s)
                      {
                      while (*s !=0x0)
                       {
                        SBUF=*s;
                        while(!TI)
                        TI=0;
                         s++;
                       }
                      
                      }
                      // Ham truyen du lieu len may tinh
                      void send(char temp) 
                      { 
                      	SBUF = temp;
                      	while (!TI);  //Co bao du lieu da truyen
                      		TI = 0;
                      }
                      
                      void serial_IT() interrupt 4
                      {
                      	if (RI) 
                      	{				               /* Khi nhan duoc du lieu */
                      	  uart_data = SBUF;			// Nhan du lieu do PC truyen xuong
                      	  RI = 0; 			           /* Xoa co RI (RI de xac dinh du lieu da duoc truyen tu PC xuong?) */
                      	  
                      	}
                      }
                      
                      main() 
                      {
                      serial_init();
                      for(;;)
                      // Send String to PC
                      putstr("character");
                      while(r_flag==0)
                      {
                      }
                      	send(uart_data);
                      	send(0x0D);
                      	send(0x0A);
                      
                      }
                      //___________________HET___________________
                      Con phan mo phong: gom: 1 Crystan,1 AT89C2051, 1 Mildford_2x20
                      chan TxD 89C2051 noi thang voi RxD cua MildFORD.
                      ban xem gup minh nhe.....
                      cam on ban.
                      Last edited by VNarmy; 21-10-2007, 23:10. Lý do: Đề nghị bạn dùng tag code

                      Comment


                      • #12
                        Chao HPECOM!
                        Hom truoc minh da tim vao de tai " cam bien nhan biet mau dung AT89C51"
                        nhung minh chua dang ky thanh vien o diendandientu nen minh ko the xem duoc. Ban co the post len trang nay cho minh duoc ko? hay gui mail cho minh: nguyenthanhtung_uct157@yahoo.com.
                        minh rat cam on!
                        chao ban.
                        chuc ban luon khoe...

                        Comment


                        • #13
                          Chào tungngaytho:

                          Đây là project điều khiển nhiệt độ lò giao tiếp máy tính, tuy nhiệt độ chưa thật sự ổn định nhưng nó có thể là một project tốt để bạn tham khảo về giao tiếp RS232.

                          Chúc bạn thành công!
                          Attached Files
                          Một bông hồng cho những ai đang còn mẹ,
                          Đang còn mẹ để lòng vui sướng hơn ..

                          Comment


                          • #14
                            cam on HPECOM nhe minh se ve tham khao.
                            Cam on ban rat nhieu...
                            Chuc ban SUC KHOE-HANH PHUC

                            Comment


                            • #15
                              Anh chị ơi, có ai giúp em về chương trình ROM Monitor cho SBC dùng 8051 với, em phải viết bằng ASM. Em viết không nổi :-(( Email của em là abc_def@who.com. Em cảm ơn trước nhé

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X