Chủ Nhật, 25 tháng 10, 2015

Cấu trúc bên trong Vi điều khiển 8051

Cấu trúc bên trong Vi điều khiển 8051

Bộ NHỚ CHƯƠNG TRÌNH- BỘ NHỚ ROM

       Bộ nhớ ROM dùng để lưu chương trình do người viết chương trình viết ra. Chương trình là tập hợp các câu lệnh thể hiện các thuật toán để giải quyết các công việc cụ thể, chương trình do người thiết kế viết trên máy vi tính, sau đó được đưa vào lưu trong ROM của vi điều khiển, khi hoạt động, vi điều khiển truy xuất từng câu lệnh trong ROM để thực hiện chương trình. ROM còn dùng để chứa số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình (do các mạch điện riêng biệt thực hiện).

 

    Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng tùy vào chủng loại cần dùng, chẳng hạn đối với 89S52 là 8KByte, với 89S53 là 12KByte.
    Bộ nhớ bên trong Vi điều khiển 89Sxx là bộ nhớ Flash ROM cho phép xóa bộ nhớ ROM bằng điện và nạp vào chương trình mới cũng bằng điện và có thể nạp xóa nhiều lần
     Bộ nhớ ROM được định địa chỉ theo từng Byte, các byte được đánh địa chỉ theo số hex-số thập lục phân, bắt đầu từ địa chỉ 0000H, khi viết chương trình cần chú ý đến địa chỉ lớn nhất trên ROM,   chương trình được lưu sẽ bị mất khi địa chỉ lưu vượt qua vùng này. Ví dụ: AT89S52 có 8KByte bộ nhớ ROM nội, địa chỉ lớn nhất là 1FFFH, nếu chương trình viết ra có dung lượng lớn hơn 8KByte các byte trong các địa chỉ lớn hơn 1FFFH sẽ bị mất.
   Ngoài ra Vi điều khiển còn có khả năng mở rộng bộ nhớ ROM với việc giao tiếp với bộ nhớ ROM bên ngoài lên đến 64KByte(địa chỉ từ 0000H đến FFFFH).
    1.5.BỘ NHỚ DỮ LIỆU- BỘ NHỚ RAM
    Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.
     RAM nội trong Vi điều khiển được tổ chức như sau: 
  • Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lục phân (số Hex) 
  • Các bank thanh ghi có địa chỉ 00H đến 1FH 
  • 210 vị trí được định địa chỉ bit 
  • các vị trí RAM bình thường 
  • Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH.
Các byte RAM 8 bit của vi điều khiển được gọi là "ô nhớ", nếu các ô nhớ có chức năng đặc biệt thường được gọi là "thanh ghi", nếu là bit thì được gọi là "bit nhớ".
 ô nhớ RAM trên vi điều khiển
      1.5.1. Các bank thanh ghi
       Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trong mỗi bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặc định trong bank 1. Có 4 bank thanh ghi và tại mỗi thời điểm chỉ có một bank thanh ghi được truy xuất với các thanh ghi từ R0 đến R7, để thay đổi việc truy xuất các thanh ghi trên các bank thanh ghi, người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghi trạng thái PSW bằng các câu lệnh trong chương trình. 
       Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ ít hơn và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAM khác, ngoài ra các thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì lí do này các dữ liệu sử dụng thường thường được người viết chương trình đưa vào lưu trong các thanh ghi này.
       Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh ghi như với các ô nhớ bình thường khác. Ví dụ: nguời dùng có thể truy xuất đến thanh ghi R7 bằng ô nhớ 07H.
     1.5.2. Vùng RAM truy xuất từng bit
      Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đến từng bit, các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số Hex. Trong đó có 128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH, các bit nhớ còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt.
      Mặc dù các bit nhớ và ô nhớ (byte) cùng được định bằng số Hex, tuy nhiên chúng sẽ được nhận dạng là địa chỉ bit hay địa chỉ byte thông qua các câu lệnh tương ứng dành cho các bit nhớ hoặc các ô nhớ này.
           Ví dụ:
           mov     05H,#10111111B     ;>>> lệnh này thiết lập giá trị cho ô nhớ có địa chỉ là 05H
           JB        05H,nhan01              ;>>> lệnh này liên quan đến trạng thái của bit nhớ có địa chỉ 05H
      1.5.3. Vùng RAM bình thường
     Vùng RAM này có địa chỉ byte từ 30H đến 7FH, dùng để lưu trữ dữ liệu, được truy xuất theo từng byte.
      1.5.4. Các thanh ghi có chức năng đặc biệt
      Các thanh ghi này được định địa chỉ byte, một số được định thêm địa chỉ bit, có địa chỉ của các thanh ghi này nằm trong khoảng 80H đến FFH. Các thanh ghi đặc biệt này này được dùng để xác lập trạng thái hoạt động cần thiết cho Vi điều khiển.

     TÌM HIỂU MỘT SỐ Ô NHỚ CÓ CHỨC NĂNG ĐẶC BIỆT

      1.5.6.Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H:
      Đây là các thanh ghi kiểm tra và điều khiển mức logic của các Port, có thể truy xuất và xác lập các thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt là P0, P1, P2, P3 tương ứng với các Port xuất. Chẳng hạn để tất cả các chân của Port 0 lên mức logic 1, cần làm cho các bit của  thanh ghi có địa chỉ 80H lên mức 1.
     1.5.7.thanh ghi A
      Thanh ghi A là thanh ghi quan trọng, dùng để lưu trữ các toán hạng và kết quả của phép tính.
      Thanh ghi A có độ dài 8 bits, có địa chỉ là E0H.
     1.5.8. thanh ghi B
      Thanh ghi B ở địa chỉ F0H, được dùng với thanh ghi A để thực hiện các phép toán số học. Khi thực hiện lệnh chia với thanh ghi A, số dư được lưu trữ ở thanh ghi B. Ngoài ra thanh ghi B còn được dùng như một thanh ghi đệm có nhiều chức năng.
     1.5.9.Con trỏ ngăn xếp SP: địa chỉ 81H
         Con trỏ ngăn xếp SP là một thanh ghi có địa chỉ 81H, giá trị của nó được tăng,giảm tự động  khi thực hiện các lệnh PUSH, CALL,POP con trỏ SP dùng quản lí và xử lí các nhóm dữ liệu liên tục.Giá trị mặc định của SP là 07H.
 
     1.5.10. Con trỏ dữ liệu DPTR.
      Con trỏ dữ liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển 8051 được tạo thành từ hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa chỉ byte 83H). Hai thanh ghi DPL và DPT có thể truy xuất độc lập bởi người sử dụng. Con trỏ dữ liệu DPTR thường được sử dụng khi truy xuất dữ liệu từ bộ nhớ ROM hoặc bộ nhớ từ bên ngoài.
      1.5.11.Thanh ghi trạng thái chương trình PSW (địa chỉ byte D0H)

BITĐỊA CHỈ BITKÍ HIỆUCHỨC NĂNG
PSW.7D7HC hoặc Cy Cờ nhớ
PSW.6D6HAC Cờ nhớ phụ
PSW.5D5HF0 Cờ 0 hay cờ Zero
PSW.4D4HRS1 Bit lựa chọn dãy thanh ghi
PSW.3D3HRS0 Bit lựa chọn dãy thanh ghi
PSW.2D2H0V Cờ tràn với phép tính liên quan đến số nhị phân có dấu
PSW.1D1H- Chưa được thiết kế để sử dụng
PSW.0D0HP Cờ chẵn lẻ
      Chức năng từng bit trong thanh trạng thái PSW
       Cờ nhớ C:
Cờ được sử dụng trong các lệnh toán học:
     C=1 nếu phép toán cộng xảy ra tràn hoặc phép trừ có mượn
     C=0 nếu phép toán cộng không tràn hoặc phép trừ không có mượn.
      Cờ nhớ phụ AC:
    Cờ AC được dùng trong các phép toán cộng hai số BCD.
Khi cộng số BCD:
     Nếu kết quả 4 bit lớn hơn 09H thì AC=1
     Nếu kết quả 4 bit dưới 09H thì AC=0.
      Cờ 0 hay cờ nhớ Z:
     Cờ Z = 0 khi thanh ghi A có giá trị khác 0
     Cờ Z =1 khi A thanh ghi A có giá trị là 0
      Các bit chọn bank thanh ghi: 
     Hai bit RS1 và RS2 dùng để xác lập bank thanh ghi được sử dụng, mặc định RS1=0 và RS2=0

RS1RS2Bank thank ghi được sử dụng
00Bank 0
01Bank 1
10Bank 2
11Bank 3
      Cờ tràn OV
     Được sử dụng trong các phép toán cộng có dấu, với các phép toán cộng không dấu cờ tràn OV được bỏ qua, không cần quan tâm đến OV. Nếu:
     Phép cộng hai số có dấu lớn hơn +127 thì OV=1
     Hoặc phép trừ hai số có dấu nhỏ hơn -127 thì OV=1
     Các trường hợp còn lại OV=0
      Cờ chẵn lẻ 
      Cờ chẵn lẻ P tự động được đặt bằng 1 hoặc 0 sao cho tổng số bit mang giá trị 1 trên thanh ghi A với cờ P luôn là một số chẵn. Cờ chẵn lẻ được dùng để xử lí dữ liệu trước khi truyền đi theo kiểu nối tiếp hoặc xử lí dữ liệu trước khi nhận vào theo kiểu nối tiếp (hạn chế lỗi phát sinh trong quá trình truyền).
 Các thanh ghi khác sẽ được đề cập trong các bài sau



Thứ Sáu, 23 tháng 10, 2015

KIT 89S52 V3 ​

KIT 89S52 V3 

Video giới thiệu KIT 89S52 V3:
Hình ảnh bộ KIT
[​IMG]
Hình 1: Tổng quan về KIT
[​IMG]
Hình 2: Các chức năng của KIT
I.Các bài viết trên diễn đàn:
Bài 1: Giới thiệu KIT DIY AT89S52 V3

Bài 2: GPIO với 8051
[​IMG]
Bài 3:Màn hình led 7 thanh
[​IMG]


Bài 4: Giao tiếp với LCD 16x2
[​IMG] 

Bài 5: Giao tiếp với LCD 128x64
[​IMG]

[​IMG]


[​IMG]
[​IMG]
Bài 9: Ngắt ngoài

Bài 10: Giao tiếp với DS18B20
[​IMG]

Bài 11: Giao tiếp với EEPROM 24C08
[​IMG]



Bài 12: Giao tiếp với chip ADC 0832


Bài 13: Giao tiếp với IC thời gian thực DS1302
[​IMG]
1 Bộ Kit hoàn chỉnh để học tập 8051

Nguồn : banlinhkien.vn 
II. Sơ đồ nguyên lý + Code Test Tổng Hợp
Download bên dưới.

Các file đính kèm:

Thứ Năm, 22 tháng 10, 2015

Cơ bản về họ vi điều khiển 8051 và MSC-51

 Cơ bản về họ vi điều khiển 8051 và MSC-51 

Vi điều khiển 8051 được xem là huyền thoại của các chip vi điều khiển vì 8051 đạt đến độ hoàn chỉnh cần thiết và là mẫu hình tiêu biểu cho nhiều chip vi điều khiển được phát triển sau này. Chính vì vậy các tài liệu hướng dẫn thường sử dụng 8051, vì rằng các nền tảng của 8051 là cốt lõi căn bản nhất để tìm hiểu vi điều khiển.
Vào năm 1980 Intel công bố chíp 8051 (80C51), bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51. Nó bao gồm 4KB ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16 bit. Tiếp theo sau đó là sự ra đời của chip 8052, 8053, 8055 với nhiều tính năng được cải tiến. 
Hiện nay Intel không còn cung cấp các loại Vi điều khiển họ MCS-51 nữa, thay vào đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siemens, Matra&Dallas, Semiconductors được cấp phép làm nhà cung cấp thứ hai cho các chip của họ MSC-51. Chip Vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt Nam hiện nay là Vi điều khiển của hãng Atmel với nhiều chủng loại vi điều khiển khác nhau.
Hãng Atmel có các chip Vi điều khiển có tính năng tương tự như chip Vi điều khiển MCS-51 của Intel, các mã số chip được thay đổi chút ít khi được Atmel sản xuất. Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tự như nhau. Tương tự 8051,8053,8055 có mã số tương đương ở Atmel là 89C51, 89C53, 89C55. Vi điều khiển Atmel sau này ngày càng được cải tiến và được bổ sung thêm nhiều chức năng tiện lợi hơn cho người dùng.
          Bảng 1
Dung lượng RAMDung lượng ROMChế độ nạp
89C51128 byte4 Kbytesong song
89C52128 byte8 Kbytesong song
89C53128 byte12 Kbytesong song
89C55128 byte20 Kbytesong song
   
             Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêm khả năng nạp chương trình theo chế độ nối tiếp rất đơn giản và tiện lợi cho người sử dụng.
    Bảng 2
Dung lượng RAMDung lượng ROMChế độ nạp
89S51128 byte4 Kbytenối tiếp
89S52128 byte8 Kbytenối tiếp
89S53128 byte12 Kbytenối tiếp
89S55128 byte20 Kbytenối tiếp
       Tất cả các Vi điều khiển trên đều có đặc tính cơ bản giống nhau về phần mềm (các tập lệnh lập trình như nhau), còn phần cứng được bổ sung với chip có mã số ở hai số cuối cao hơn, các Vi điều khiển sau này có nhiều tính năng vượt trội hơn Vi điều khiển thế hệ trước. Các Vi điều khiển 89Cxx như trong bảng 1 có cấu tạoROM và RAM như 98Sxx trong bảng 2, tuy nhiên 98Sxx được bổ sung một số tính năng và có thêm chế độ nạp nối tiếp.




GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52

 
 A .GIỚI THIỆU VVI ĐIỀU KHIỂN 89S52 
1. Tổng quan về 89S52
 AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất. Các sản phẩm AT89S52 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và cáctoán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuấtdữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của nhữnglệnh số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mởrộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt chophép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển. AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc cóthể xóa và lậtnh nhanh (EPROM), 128 Byte RAM32 đườnI/O, 3TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếpbán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.Các đặc điểm của chip AT89S52 được tóm tắt như sau:
8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá
Tần số hoạt động từ: 0Hz đến 24 MHz
3 mức khóa bộ nhớ lập trình
3 bộ Timer/counter 16 Bit
128 Byte RAM nội.
4 Port xuất /nhập I/O 8 bit.
Giao tiếp nối tiếp.
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoại.
4
µ
s cho hoạt động nhân hoặc chia
 
Sơ đồ khối của AT89S52

 

Thứ Năm, 15 tháng 10, 2015

Làm mạch led trái tim bằng IC 89S52

Làm mạch led trái tim bằng IC 89S52
Như các bạn đã biết các công dụng của ic 89s52 là gi rồi
Hôm nay mình xin xướng dẫn các bạn làm mach led trai tim bằng ic 89s52 
Bước thứ nhất:
Làm mạch in cùng với  mach led trai tim pbc
ic 89s52
Sau đó các bạn rửa mạch:
ic 89s52

và cuối cùng các bạn tự tay hàn linh kiện, ic 89s52 vào pcb. sau đây là video mình đã hướng dẫn làm một các chi tiết:



Thứ Hai, 12 tháng 10, 2015