Thông báo

Collapse
No announcement yet.

mạch cộng 2 số 4 bit

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

  • mạch cộng 2 số 4 bit

    em đang làm đồ án vi điều khiển.mà sao thấy khó quá mong các hynh đệ giúp đở cho code.
    đồ án là:mạch cộng 2 số 4bit có ngỏ vào port1 và xuất ra led 7 đoạn.

  • #2
    Nguyên văn bởi ITnho Xem bài viết
    em đang làm đồ án vi điều khiển.mà sao thấy khó quá mong các hynh đệ giúp đở cho code.
    đồ án là:mạch cộng 2 số 4bit có ngỏ vào port1 và xuất ra led 7 đoạn.
    Chào bạn !

    Đây là code :

    Code:
    #include <REGX51.H>
    int a,b,c;
    void cong() interrupt 2	{
    	a = P1&15;	// 4 bit thap cua P1
    	b = P1>>4;	// 4 bit cao cua P1
    	c = a + b;
    	if(c < 10) P2  = c;					 // neu c < 10 -> ok
    		else P2 = c/10*16 + c%10;		 // neu c > 10 => phai chia ra de hien thi len 2 con led
    } 
    void main(){
    	IE = 0x81;		  // Cho phep ngat ngoai 1
    	P2 = 0;	
    	P1 = 0xFF;
    	while(1);	// khong lam gi, doi ngat xay ra
    }
    Mình sử dụng ngắt ngoài 1 để thực hiện phép tính, led nối vào P2
    Mình gửi kèm bạn sơ đồ mình đã mô phỏng. Bạn lưu ý là mình dùng proteus 7.4 SP3, nếu bản dùng bản cũ hơn thì sẽ không mở được đâu

    Have fun !!!
    Attached Files
    Last edited by pk178; 15-09-2009, 13:30.

    Comment


    • #3
      thank rất nhiều.nhung anh có thể viết bằng hợp ngử asm được không chứ em đang học ams chứ không phải c

      Comment


      • #4
        mà em xài 89c51 nha các pro

        Comment


        • #5
          ang học ngôn ngử asm nhưng mà cái em hỏi có trong cuốn 8051 của Tăng cường, chụi khó tìm nhe, có code mẩu.
          |

          Comment


          • #6
            Nguyên văn bởi ITnho Xem bài viết
            thank rất nhiều.nhung anh có thể viết bằng hợp ngử asm được không chứ em đang học ams chứ không phải c
            Còn mình thì đang học C chứ không phải asm . Mà mình hỏi khí không phải, có phải bạn học vi xử lý từ giữa trở ra không đấy

            Bạn đã bao giờ dùng Keil C chưa nhỉ? Chương trình trên mình viết trong Keil C đấy, bạn có thể dùng Keil C để chuyển mã C thành mã asm.

            Chúc bạn thành công !

            Comment


            • #7
              Nguyên văn bởi pk178 Xem bài viết
              Còn mình thì đang học C chứ không phải asm . Mà mình hỏi khí không phải, có phải bạn học vi xử lý từ giữa trở ra không đấy

              Bạn đã bao giờ dùng Keil C chưa nhỉ? Chương trình trên mình viết trong Keil C đấy, bạn có thể dùng Keil C để chuyển mã C thành mã asm.

              Chúc bạn thành công !
              làm gì có chuyện chuyển từ C sang ams được.chỉ chuỷen qua file hex rồi nạp xuống thôi

              Comment


              • #8
                Nguyên văn bởi ITnho Xem bài viết
                làm gì có chuyện chuyển từ C sang ams được.chỉ chuỷen qua file hex rồi nạp xuống thôi
                Chà chà !!! Kinh nghiệm dày dặn quá rồi còn gì.

                Comment


                • #9
                  Nguyên văn bởi ITnho Xem bài viết
                  làm gì có chuyện chuyển từ C sang ams được.chỉ chuỷen qua file hex rồi nạp xuống thôi
                  Đọc mấy dòng bạn post, tôi thấy hơi choáng... Hi vọng là bạn biết vì sao !

                  Để tôi hướng dẫn cụ thể cho bạn, nếu không bạn lại bảo tôi chỉ biết nói khoác.

                  Để xem được mã asm, bạn làm như sau : ấn Ctrl + F5 để vào phần Debug, sau đó bạn kích chuột vào nhãn View, chọn Disassembly window, nó sẽ hiển thị cụ thể cho bạn mã C và mã asm tương ứng. Tất nhiên, do đây là máy chuyển sang, nên phần mã sẽ không thể tối ưu được, ví dụ 1 vòng lặp delay 100 bước thì nó dịch luôn là 100 dòng NOP, nếu bạn ngại thì cứ để đấy, copy nguyên đoạn mã asm của nó, còn ko thì sửa lại 1 chút cho gọn. Thế thôi !

                  Nhân đây tôi cũng xin nói thêm với bạn 1 chút, bạn nên học cả C để lập trình, mỗi thứ nên biết 1 chút (xấu đều còn hơn tốt lỏi mà) còn vì sao thì trên diễn đàn cũng đã trao đổi rất nhiều. Thầy giáo tôi cũng đã nói : "lập trình trên asm cũng như là làm công nhân vậy, còn lập trình trên C thì giống như việc làm giám đốc, người ta nên làm công nhân trước rồi mới làm giám đốc thì sẽ tốt hơn"

                  Thân ái !

                  Comment


                  • #10
                    Mạch này sử dụng làm sao đây bro sao thứ tự cứ như là bị đảo lộn ấy
                    sao mã nhị phân sao sao ấy
                    VD 0001 + 0001 = 0010
                    mà sao nó ra kq khác vậy trời

                    Comment


                    • #11
                      Mùa này có nhiều đồ án khó nhỉ

                      Comment


                      • #12
                        thanks bạn nhiều, bây h mình muốn làm mạch này ra 1 test board đc ko
                        Nếu xài test board có nhập code như trên đc ko
                        mình gà nên ko biết, mình đang làm đồ án 1
                        THANKS

                        Comment


                        • #13
                          hì mình thấy file mô phỏng của bạn dùng SWitch để tạo mức logic hơi khó nhìn nên mình đã sửa lại dùng mức logic dễ nhìn hơn.và thêm phần reset :v có gì k phải mong bạn bỏ quamach cong 4 bit.zip
                          Last edited by papalazy01; 20-05-2014, 12:10.

                          Comment


                          • #14
                            a nào chuyển mạch qua led 7 đoạn anot hoặc catot chứ ra ngoài chợ nhật tảo mua ko led 4 chân mấy ơi
                            THANKS

                            Comment


                            • #15
                              E đã làm thử làm mạch này và chỉ sáng có 1 đèn thôi các bác ạ

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X