Thông báo

Collapse
No announcement yet.

Giúp đỡ về bài súc sắc

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

  • Giúp đỡ về bài súc sắc

    Mình muốn dùng PIC16F77 để điều khiển 3 con LED 7 đoạn. 3 led đc random từ 1-6 nhưng mà ko phải là bật công tắc là nó tự chạy, mà sẽ có 2 công tắc start và stop.
    -Mới đầu thì chương trình sẽ tạo ngẫu nhiên 3 số trên 3 con led.
    -Sau đó khi bấm vào nút start thì 3 led sẽ bắt đầu random đồng thời.
    -Sau đó khi bấm stop thì 1 led dừng và 2 led còn lại vẫn chạy. Nếu bấm stop nữa thì thêm 1 led dừng nữa. Còn nếu bấm lại nút start thì 1 led bị dừng trước đó chạy lại.
    -Dùng quét led ko thông qua xài bộ chuyển mã IC nha, vì thầy mình kêu ít led thì ko cần xài cho tốn. Có ai giúp mình cách làm bài này ko, có mô phỏng và code thì tốt quá, mình mới học nên còn nhiều cái ko rõ. Giúp mình với nha
    Last edited by vodich01; 26-01-2011, 22:11.

  • #2
    - Quét LED hay dùng IC giải mã thì cách làm cũng như nhau cả thôi,
    - Còn việc tạo số ngẫu nhiên nếu bạn viết bằng C thì đã có hàm hỗ trợ sẵn là "rand()" rồi tuy nhiên nó lại tạo ra số integer nhưng cũng không sao vì hoàn toàn có thể chuyển về số ngẫu nhiên có một chữ số như yêu cầu ở đề bài của bạn.

    P/S: Bạn muốn xây nhà thì phải đi từ móng lên, mỗi người giúp được bạn chỉ giúp được cục gạch cục đá, chứ không ai lại tặng bạn nguyên một ngôi nhà (có đề hàng chữ "Nhà tình nghĩa") cho bạn cả.
    Nhớ quá khứ buồn rơi nước mắt.
    Nhìn tương lai lạnh buốt sống lưng.
    Y!M: nhamdtk4.

    Comment


    • #3
      trước tiên mình mô phỏng 3 con LED và làm trước việc random 3 con 1 lúc thì gặp vấn đề là nó ko hiển thị ra đc đồng thời 3 con, chỉnh delay 1 tí thì chỉ có 2 con LED chập lại chạy, con kia nó cứ đơ đơ, nói chung vấn đề đầu tiên của mình là 3 con ko hiển thị random đc 1 lúc, giúp mình với.
      Mình post code và mô phỏng bằng Proteus lên rồi, xem hộ mình (ko biết cách up lên forum nên mình up lên mediafire)
      http://www.mediafire.com/download.php?6jkfcvyw1r6cikm

      Comment


      • #4
        Thứ nhất mình phát hiện code mình khai báo sai cái #bit.

        #bit LED1=portc.1
        #bit LED2=portc.2
        #bit LED3=portc.3

        nên đã sửa lại thành:

        #bit LED1=portc.0
        #bit LED2=portc.1
        #bit LED3=portc.2

        nhưng sau khi sửa lại thì cái con LED nó chạy còn điêu hơn, ko thấy chạy con led đầu. Một hồi chỉnh delay lên 1 tí thì 3 con led nhấp nháy liên tục.
        Mình suy nghĩ lâu thì đoán đoán là do cái rand(), vì ban đầu là làm 2 con LED chập lại với cùng loại code như vậy, wa 3 led thì chỉthêm cái tính biến k để hiển thị cho led thứ 3 (cũng là copy từ 2 thằng led trước). Và nó bắt đầu chạy loạn, mình không biết tại làm sao nữa. 2 cái bình thường, wa cái thứ 3 thì bị thế, cứ bị bí cái phần hiển thị đồng thời 3 con LED random mà mình vẫn chưa làm tiếp tục mấy cái nút bấm, mặc dù là hiện giờ mình cũng chưa biết làm sao để làm cái nút bấm nữa do chưa xong cái phần random . Ai giúp mình với

        Comment


        • #5
          Nguyên văn bởi vodich01 Xem bài viết
          Thứ nhất mình phát hiện code mình khai báo sai cái #bit.

          #bit LED1=portc.1
          #bit LED2=portc.2
          #bit LED3=portc.3

          nên đã sửa lại thành:

          #bit LED1=portc.0
          #bit LED2=portc.1
          #bit LED3=portc.2

          nhưng sau khi sửa lại thì cái con LED nó chạy còn điêu hơn, ko thấy chạy con led đầu. Một hồi chỉnh delay lên 1 tí thì 3 con led nhấp nháy liên tục.
          Mình suy nghĩ lâu thì đoán đoán là do cái rand(), vì ban đầu là làm 2 con LED chập lại với cùng loại code như vậy, wa 3 led thì chỉthêm cái tính biến k để hiển thị cho led thứ 3 (cũng là copy từ 2 thằng led trước). Và nó bắt đầu chạy loạn, mình không biết tại làm sao nữa. 2 cái bình thường, wa cái thứ 3 thì bị thế, cứ bị bí cái phần hiển thị đồng thời 3 con LED random mà mình vẫn chưa làm tiếp tục mấy cái nút bấm, mặc dù là hiện giờ mình cũng chưa biết làm sao để làm cái nút bấm nữa do chưa xong cái phần random . Ai giúp mình với
          Bạn không nên mô phỏng quét LED, nên làm phần cứng luôn rồi check code từ từ. Vì phần mềm mô không không thể nào quét LED với tốc độ mà bạn tính toán được. Nó cứ nhấp nhá liên tục. còn như bạn chỉnh delay cho 3 LED sáng bình thường trong mô phỏng thì khi chạy thực tế nó lại nhấp nhá tùm lum. thế nên bạn nên làm phần cứng đi( trước sau gì cũng phải làm)
          Nếu thật sự cần phải mô phỏng trước thì dùng màn hình LED chứ đừng ráp từng con rời!
          Đạo khả đạo phi thường đạo
          Danh khả danh phi thường danh

          Comment


          • #6
            Nguyên văn bởi nhiepphong1 Xem bài viết
            Bạn không nên mô phỏng quét LED, nên làm phần cứng luôn rồi check code từ từ. Vì phần mềm mô không không thể nào quét LED với tốc độ mà bạn tính toán được. Nó cứ nhấp nhá liên tục. còn như bạn chỉnh delay cho 3 LED sáng bình thường trong mô phỏng thì khi chạy thực tế nó lại nhấp nhá tùm lum. thế nên bạn nên làm phần cứng đi( trước sau gì cũng phải làm)
            Nếu thật sự cần phải mô phỏng trước thì dùng màn hình LED chứ đừng ráp từng con rời!
            Màn hình LED là cái chập 1 đống LED lại với nhau hả bạn. Nếu là vậy thì tại mình làm có 3 con nên kiếm không ra cái nào 3 con.
            Còn về xử lí nút bấm, mình không biết xử lí thế nào cả, có thể giúp mình được không. (Nếu có 1 code minh họa bấm nút đơn giản có mô phỏng thì càng tốt, mình mới học, thông cảm )

            Comment


            • #7
              Mình đã lắp mạch ngoài với các con led rời như cái Proteus vẽ ấy, thì nó chạy loạn lên . Còn nếu làm mô phỏng với LED chập lại thì lại chạy tốt, như vậy thì mình sai ở đâu, chỉ giúp mình với. Khác biệt giữa LED chập lại và LED rời như thế nào .
              Attached Files

              Comment


              • #8
                Đây là minh họa bên ngoài sau khi đã lắp vào chạy. Mà sao lúc lấy cái bảng mạch thì chỉ thấy cục thạch anh còn điện trở ko thấy ta
                Attached Files

                Comment


                • #9
                  haizz, cuối cùng cũng xong, mình bị lỗi code mà các cao thủ ko ai xem dùm rồi giúp.

                  Tiện thể cho mình hỏi cái hàm rand() có set srand() đi nữa thì lần sau bật power chạy lại nó hiện ra 1 dãy random giống nhau, chỉ khi mình bấm nút reset thì nó mới tự tạo ra 1 dãy random khác, vậy có cách nào tạo đc 1 dãy khác ngay lúc đầu chạy ko
                  Last edited by vodich01; 08-02-2011, 01:51.

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X