Tư vấn: 0979.466.469 / 0938.128.290

MENU

Bộ tạo số ngẫu nhiên sử dụng 8051

Báo giá đặt hàng nhập

Một bộ tạo số ngẫu nhiên sử dụng vi điều khiển 8051 hiển thị một số ngẫu nhiên từ 0 đến 99 được trình bày trong bài viết này. Mạch chính nó rất đơn giản và có thể không tìm thấy bất kỳ ứng dụng nào trong các dự án nhúng nghiêm túc và bài viết này chỉ là minh họa. Mạch này dựa trên vi điều khiển AT89S51, hai màn hình hiển thị LED bảy đoạn, hai transistor và một số linh kiện passsive.

Sơ đồ mạch

Bộ tạo số ngẫu nhiên sử dụng 8051 Bộ tạo số ngẫu nhiên sử dụng 8051 Danh sách các linh kiện Vi điều khiển (AT89S51) - 1 chiếc Nút nhấn - 2 chiếc Hiển thị bảy đoạn - 2 chiếc Transistor (2N2222) - 2 chiếc Resistor (100 ohm) - 10 chiếc Resistor (8.2k ohm) - 1 chiếc Resistor (10k ohm) - 1 chiếc Tụ (10uF/10V) - 2 chiếc Cách hoạt động Hai màn hình hiển thị LED bảy đoạn được kết hợp và các đường dữ liệu của chúng được kết nối với Port0 của vi điều khiển. Transistor Q1 và Q2 điều khiển các màn hình D1 và D2 tương ứng. Tín hiệu điều khiển cho các transistor này được lấy từ P1.1 và P1.2. Nút nhấn S1, tụ C1 và resistor R10 tạo thành mạch đặt lại sau khi nhấn. Resistor R9, tụ C2 và nút nhấn S2 sẽ cung cấp một tín hiệu ngắt phần cứng ở chân INTO (chân 12) khi nút S2 được nhấn. Ở đây, R9 và C2 cũng dùng để chống nhiễu.

Sau khi bật nguồn, màn hình sẽ hiển thị trống và khi nút nhấn S2 được nhấn, màn hình sẽ hiển thị một số ngẫu nhiên từ 0 đến 99. Để thử lại, bạn phải nhấn nút đặt lại sau đó nhấn nút S2. Nếu bạn chỉ cần một chữ số, hãy loại bỏ màn hình D2 và các linh kiện đi kèm. Mọi thứ còn lại không thay đổi.

Module điện tử 932*50

Program

ORG 000H
SJMP MAIN
ORG 003H // sets the starting address for the ISR
ACALL ISR // calls the ISR subroutine when S2 is pressed
RETI // return from interrrupt

MAIN:SETB IP.0 // this part sets the initial conditions
     SETB TCON.0
     SETB IE.0
     SETB IE.7
     MOV P0,#00000000B
     MOV P1,#00000000B
     MOV DPTR,#LUT // moves the starting address of LUT to DPTR

LABEL:MOV R6,#99D // this part generates the random number
      LOOP:MOV A,R6
      DJNZ R6,LOOP
      SJMP LABEL

ISR: MOV A,R6 // Subroutine ISR displays the current random number
     MOV B,#10D
     DIV AB
     SETB P1.2
     ACALL DISPLAY
     MOV P0,A
     ACALL DELAY
     MOV A,B
     CLR P1.2
     SETB P1.1
     ACALL DISPLAY
     MOV P0,A
     ACALL DELAY
     CLR P1.1
     SJMP ISR
     RET

DELAY: MOV R3,#02H // this subroutine creates 1mS delay for switching the displays
DEL1: MOV R2,#0FAH
DEL2: DJNZ R2,DEL2
      DJNZ R3,DEL1
      RET

DISPLAY: MOVC A,@A+DPTR // produces the digit drive pattern for the current digit in A
         RET

LUT: DB 3FH // Look up table
     DB 06H
     DB 5BH
     DB 4FH
     DB 66H
     DB 6DH
     DB 7DH
     DB 07H
     DB 7FH
     DB 6FH
     END

Về chương trình Phần đầu của chương trình là phần được đánh dấu là MAIN, thiết lập các điều kiện ban đầu và tham số ngắt. Phần tiếp theo là vòng lặp được đặt tên là LABEL, nạp giá trị 99D vào thanh ghi R6 sau đó giảm giá trị này đi 1 cho đến khi giá trị là 0, sau đó lặp lại quy trình. Đây là phần tạo số ngẫu nhiên. Mỗi khi R6 giảm giá trị, giá trị kết quả được chuyển vào bộ ghi A. Phần tiếp theo là chương trình dịch vụ ngắt được viết dưới dạng một chương trình con được đặt tên là ISR. Mỗi khi có một ngắt tại INT0 (khi nút nhấn S2 được nhấn), ISR được gọi.

ISR thực hiện các phép tính toán toán học cần thiết trên nội dung của A để tách ra hai chữ số và sau đó tiến hành hiển thị chúng trên màn hình. Chương trình con DELAY tạo ra một độ trễ khoảng 1ms để chuyển đổi màn hình. Chương trình con DISPLAY cộng giá trị hiện tại trong A với địa chỉ được lưu trữ trong DPTR (địa chỉ bắt đầu của bảng tra cứu) và chuyển nội dung mục tiêu vào A. Kết quả sẽ là mẫu điều khiển chữ số cho chữ số hiện tại trong A.

Gia công pcb 932*150
Sản phẩm nổi bật
Sale 0%
35000 /Cái
/ Cái

Code: 7201-001 Còn hàng

Lưu xem sau
Sale 0%
50000 /Cái
/ Cái

Code: 7201-023 Còn hàng

Lưu xem sau
Sale 0%
18000 /Cái
/ Cái

Code: 7201-019 Còn hàng

Lưu xem sau
Hỗ trợ liên kết
0979466469
0899909838
0938128290
0899909838
Khiếu nại: 0964238397
0979466469
0868565469
0868565469

Hotline: 0979 466 469

Loading
0979 466 469
Bạn cần linh kiện mẫu ? 7-11 ngày