« Home « Kết quả tìm kiếm

bài 1 cấu trúc vi điều khiển(vi điều khiển ứng dụng)


Tóm tắt Xem thử

- Sơ lược về vi xử lý: Trong những thập niên cuối thế kỉ XX, từ sự ra đời của công nghệ bán dẫn, kĩ thuậtđiện tử đã có sự phát triển vượt bậc.
- Đột phá ở chỗ: "Đó là một kết cấu logic mà có thể thay đổi chức năng của nóbằng chương trình ngoài chứ không phát triển theo hướng tạo một cấu trúc phần cứngchỉ thực hiện theo một số chức năng nhất định như trước đây"(trích từ dòng 17 đến 19,trang 3, 'Kĩ thuật VI XỬ LÝ và lập trình ASSEMBLY cho hệ vi xử lý', tác giả Đỗ XuânTiến, nhà xuất bản Khoa học và kĩ thuật).
- Nhờvậy vi xử lý có sự mềm dẻo hóa trong các chức năng của mình.
- Ngày nay vi xử lý có tốcđộ tính toán rất cao và khả năng xử lý rất lớn.
- Vi xử lý có các khối chức năng cần thiết để lấy dữ liệu, xử lý dữ liệu và xuất dữ liệura ngoài sau khi đã xử lý.
- Và chức năng chính của Vi xử lý chính là xử lý dữ liệu, chẳnghạn như cộng, trừ, nhân, chia, so sánh.v.v.
- Vi xử lý không có khả năng giao tiếp trựctiếp với các thiết bị ngoại vi, nó chỉ có khả năng nhận và xử lý dữ liệu mà thôi.
- Để vi xử lý hoạt động cần có chương trình kèm theo, các chương trình này điềukhiển các mạch logic và từ đó vi xử lý xử lý các dữ liệu cần thiết theo yêu cầu.
- Chươngtrình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnh được lưu trữ trong bộ nhớ,công việc thực hành lệnh bao gồm: nhận lệnh từ bộ nhớ, giải mã lệnh và thực hiện lệnhsau khi đã giải mã.
- Để thực hiện các công việc với các thiết bị cuối cùng, chẳng hạn điều khiển động cơ,hiển thị kí tự trên màn hình.
- đòi hỏi phải kết hợp vi xử lý với các mạch điện giao tiếpvới bên ngoài được gọi là các thiết bị I/O (nhập/xuất) hay còn gọi là các thiết bị ngoại vi.Bản thân các vi xử lý khi đứng một mình không có nhiều hiệu quả sử dụng, nhưng khi làmột phần của một máy tính, thì hiệu quả ứng dụng của Vi xử lý là rất lớn.
- Vi xử lý kếthợp với các thiết bị khác được sử trong các hệ thống lớn, phức tạp đòi hỏi phải xử lý mộtlượng lớn các phép tính phức tạp, có tốc độ nhanh.
- 1.1.2.Từ Vi xử lý đến Vi điều khiển Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán,xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả đốivới các bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toánkhông đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cần cân nhắc.
- Bởi vì hệthống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếpphức tạp như nhau.
- Các khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thựchiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối nàycùng liên kết với vi xử lý thì mới thực hiện được công việc.
- Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ và một sốmạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi làMicrocontroller-Vi điều khiển.
- Vi điều khiển có khả năng tương tự như khả năng của vixử lý, nhưng cấu trúc phần cứng dành cho người dùng đơn giản hơn nhiều.
- Vi điều khiểnra đời mang lại sự tiện lợi đối với người dùng, họ không cần nắm vững một khối lượngkiến thức quá lớn như người dùng vi xử lý, kết cấu mạch điện dành cho người dùng cũngtrở nên đơn giản hơn nhiều và có khả năng giao tiếp trực tiếp với các thiết bị bên ngoài.Vi điều khiển tuy được xây dựng với phần cứng dành cho người sử dụng đơn giản hơn,nhưng thay vào lợi điểm này là khả năng xử lý bị giới hạn (tốc độ xử lý chậm hơn và khảnăng tính toán ít hơn, dung lượng chương trình bị giới hạn).
- Thay vào đó, Vi điều khiểncó giá thành rẻ hơn nhiều so với vi xử lý, việc sử dụng đơn giản, do đó nó được ứng dụngrộng rãi vào nhiều ứng dụng có chức năng đơn giản, không đòi hỏi tính toán phức tạp.
- Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot cóchức năng đơn giản, trong máy giặt, ôtô v.v.
- Năm 1976 Intel giới thiệu bộ vi điều khiển (microcontroller) 8748, một chip tương tựnhư các bộ vi xử lý và là chip đầu tiên trong họ MCS-48.
- Độ phức tạp, kích thước và khảnăng của Vi điều khiển tăng thêm một bậc quan trọng vào năm 1980 khi intel tung ra chip8051, bộ Vi điều khiển đầu tiên của họ MCS-51 và là chuẩn công nghệ cho nhiều họ Viđiều khiển được sản xuất sau này.
- Sau đó rất nhiều họ Vi điều khiển của nhiều nhà chếtạo khác nhau lần lượt được đưa ra thị trường với tính năng được cải tiến ngày càngmạnh.
- 1.1.3.HỌ MSC-51 Hiện nay có rất nhiều họ Vi điều khiển trên thị trường với nhiều ứng dụng khácnhau, trong đó họ Vi điều khiển họ MCS-51 được sử dụng rất rộng rãi trên thế giới và ởViệt nam.
- 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.
- Tiếp theo sau đó là sự ra đời của chip 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, thayvà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ủahọ 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 Namhiệ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ềukhiể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ành89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tự như nhau.
- Vi điều khiểnAtmel 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ợihơn cho người dùng.
- Bảng 1 Dung lượng RAM Dung lượng ROM Chế độ nạp 89C51 128 byte 4 Kbyte song song 89C52 128 byte 8 Kbyte song song 89C53 128 byte 12 Kbyte song song 89C55 128 byte 20 Kbyte song 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òngVi đ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ạpchươ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 RAM Dung lượng ROM Chế độ nạp 89S51 128 byte 4 Kbyte nối tiếp 89S52 128 byte 8 Kbyte nối tiếp 89S53 128 byte 12 Kbyte nối tiếp 89S55 128 byte 20 Kbyte nố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áctậ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ốicao 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ư 98Sxxtrong 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ốitiếp.
- Trên thị trường hiện nay có rất nhiều loại sách hướng dẫn về Vi điều khiển với nhiềuloại khác nhau như 8051, 89C51, 89S8252, 89S52 v.v.
- Chương trình phần mềm dành cho các Viđiều khiển này là như nhau, vì vậy bạn có thể tham khảo thêm về Vi điều khiển ở cácsách này.
- Các phần thực hành trên phần cứng thực tế, chúng tôi sẽ cùng các bạn thực hành vớiVi điều khiển 89S52 (Mã đầy đủ:AT89S52.
- AT là viết tắt của nhà sản xuất ATMEL) vì : Các Vi điều khiển 89Sxx được cải tiến từ dòng 89Cxx Chương trình viết dành cho 89Cxx đều chạy được với 89Sxx 89Sxx rẻ hơn 89Cxx 89Sxx có chế độ nạp nối tiếp với mạch nạp đơn giản có khả năng nạp ngay trên bomạch mà không cần tháo chip vi điều khiển sang mạch khác để nạp chương trình vànhiều tính năng cải tiến khác.
- 1.1.4.CÁC LOẠI VI ĐIỀU KHIỂN KHÁC Vi điều khiển AVR Vi điều khiển PIC Vi điều khiển MCUs của Philips Các loại vi điều khiển chuyên dụng của các hãng sản xuất khác: Các loại vi điềukhiển này được sử dụng chuyên dụng theo chức năng cần điều khiển.
- II.SƠ LƯỢC PHẦN CỨNG VI ĐIỀU KHIỂN-GIAO TIẾP BÊN NGOÀI Các thành viên của họ MCS-51 (Atmel) có các đặc điểm chung như sau: Có 4/8/12/20 Kbyte bộ nhớ FLASH ROM bên trong để lưu chương trình.
- Nhờ vậyVi điều khiển có khả năng nạp xoá chương trình bằng điện đến 10000 lần.
- 128 Byte RAM nội 4 Port xuất/nhập 8 bit Từ 2 đến 3 bộ định thời 16-bit Có khả năng giao tiếp truyền dữ liệu nối tiếp Có thể mở rộng không gian nhớ chương trình ngoài 64KByte (bộ nhớ ROM ngoại):khi chương trình do người lập trình viết ra có dung lượng lớn hơn dung lượng bộ nhớROM nội, để lưu được chương trình này cần bộ nhớ ROM lớn hơn, cách giải quyết là kếtnối Vi điều khiển với bộ nhớ ROM từ bên ngoài (hay còn gọi là ROM ngoại).
- Dunglượng bộ nhớ ROM ngoại lớn nhất mà Vi điều khiển có thể kết nối là 64KByte Có thể mở rộng không gian nhớ dữ liệu ngoài 64KByte (bộ nhớ RAM ngoại) Bộ xử lí bit (thao tác trên các bit riêng rẽ) 210 bit có thể truy xuất đến từng bit 1.2.KHẢO SÁT SƠ ĐỒ CHÂN Mặc dù các thành viên của họ MSC-51 có nhiều kiểu đóng vỏ khác nhau, chẳng hạnnhư hai hàng chân DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông QFP (Quad FlatPakage) và dạng chíp không có chân đỡ LLC (Leadless Chip Carrier) và đều có 40 châncho các chức năng khác nhau như vào ra I/0, đọc , ghi , địa chỉ, dữ liệu và ngắt.
- Tuynhiên, vì hầu hết các nhà phát triển chính dụng chíp đóng vỏ 40 chân với hai hàng chânDIP, nên chúng ta cùng khảo sát Vi điều khiển với 40 chân dạng DIP.
- Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển Nguồn điện cấp là +5V±0.5.
- Chân GND:Chân số 20 nối GND(hay nối Mass).Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản làsử dụng IC ổn áp 7805.
- Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0.
- 8 chân này (hoặc Port 0)còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.
- 1.2.5.Port 2 (P2) Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng: Chức năng xuất/nhập Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có dunglượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận, byte cao doP2 này đảm nhận.
- 1.2.6.Port 3 (P3) Port 3 gồm 8 chân (từ chân 10 đến 17): Chức năng xuất/nhập Với mỗi chân có một chức năng riêng thứ hai như trong bảng sau Bit Tên Chức năng P3.0 RxD Ngõ vào nhận dữ liệu nối tiếp P3.1 TxD Ngõ xuất dữ liệu nối tiếp P3.2 INT0 Ngõ vào ngắt cứng thứ 0 P3.3 INT1 Ngõ vào ngắt cứng thứ 1 P3.4 T0 Ngõ vào của Timer/Counter thứ 0 P3.5 T1 Ngõ vào của Timer/Counter thứ 1 P3.6 WR Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài P3.7 RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài P1.0 T2 Ngõ vào của Timer/Counter thứ 2 P1.1 T2X Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2 1.2.7.
- Chân cho phép bộ nhớ chương trình PSEN PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài.
- Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực (logic 1) (Không cần kết nối chân này khi không sử dụng đến) 1.2.10.
- Chân ALE (chân cho phép chốt địa chỉ-chân 30) Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừacó chức năng là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đườngdữ liệu và địa chỉ.
- Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp cácđường địa chỉ và các đường dữ liệu khi kết nối chúng với IC chốt.
- Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điều khiển,như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho các phần kháccủa hệ thống.
- Ghi chú: khi không sử dụng có thể bỏ trống chân này 1.2.11.
- Chân EA Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROMngoại.
- Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớnội Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớngoại 1.3.KẾT NỐI PHẦN CỨNG 1.3.1.Kết nối trên hai chân XTAL1 và XTAL2.
- Mạch dao động được đưa vào hai chân này thông thường được kết nối với dao độngthạch anh như sau: Ghi chú: C1,C2= 30pF±10pF (thường được sử dụng với C1,C2 là tụ 33pF) dùng ổn định dao động cho thạch anh.Hình 1.2.2 Hoặc có thể cấp tín hiệu xung clock lấy từ một mạch tạo dao động nào đó và đưa vàoVi điều khiển theo cách sau:NC: để trống, chân XTAL2 để trốngHình Chu kì máy Gọi fzat là tần số dao động của thạch anh.
- Chu kì máy là khoảng thời gian cần thiết được qui định để Vi điều khiển thực hiệnhoàn thành một lệnh cơ bản.
- Tck = 12.Toc Với: Tck là chu kì máy Toc là chu kì của nguồn xung dao động cấp cho Vi điều khiển Như vậy: Với: Tck là chu kì máy foc là tần số dao động cấp cho Vi điều khiển.
- Ví dụ: Ta kết nối Vi điều khiển với thạch anh có tần số fzat là 12MHz, thì chu kì máy Tck s =1µs Chính vì lí do thạch anh có tần số fzat là 12MHz tạo ra chu kì máy là 1µs, thuận lợicho việc tính toán thời gian khi lập trình do đó thạch anh có tần số fzat là 12MHz thườngđược sử dụng trong thực tế.
- Kết nối chân RESET-chân 9 Việc kết nối chân RESET đảm bảo hệ thống bắt đầu làm việc khi Vi điều khiển đượccấp điện, hoặc đang hoạt động mà hệ thống bị lỗi cần tác động cho Vi điều khiển hoạtđộng trở lại, hoặc do người sử dụng muốn quay về trạng thái hoạt động ban đầu.
- Vì vậychân RESET được kết nối như sau:Với Vi điều khiển sử dụng thạch anh có tần số fzat = 12MHz sử dụng C=10µF vàR=10KΩ.Hình .
- P1,P3 dòng xuất ra khoảng 1mA đến 5mA) vì vậy dòng xuất này khôngđủ để có thể làm led sáng Tuy nhiên khi các Port xuất tín hiệu ở mức logic 0 dòng điện cho phép đi qua lớnhơn rất nhiều: Chân Vi điều khiển khi ở mức 0: Dòng lớn nhất qua P0 : -25mA Dòng lớn nhất qua P1,P2,P3 : -15mA Do đó khi kết nối với led hoặc các thiết bị khác Vi điều khiển sẽ gặp trở ngại là nếutác động làm led sáng khi Vi điều khiển xuất ở mức 1, lúc này dòng và áp ra không đủ đểled có thể sáng rõ (led đỏ sáng ở điện áp 1.6V-2.2V và dòng trong khoảng 10mA).
- Khắcphục bằng cách sau: a.Cho led sáng khi Vi điều khiển ở mức 0:Px.x thay cho các chân xuất của các Port.
- Cho led sáng khi Vi điều khiển xuất ở mức 1: Như đã trình bày vì ngõ ra Vi điều khiển khi xuất ở mức 1 không đủ để cho led sáng,để led sáng được cần đặt thêm một điện trở kéo lên nguồn VCC(gọi là điện trở treo).
- Khi Px.x ở mức 1 (+5V),dòng điện không chạy qua chân Vi điều khiển để về massđược, có sự lệch áp giữa hai chân led, dòng điện trong trường hợp này qua led về Massdo đó led sáng.
- Hình 1.2.7 CẤU TRÚC BÊN TRONG CỦA VI ĐIỀU KHIỂN 1.4.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ươngtrì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 ROMcủ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.
- 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ủngloạ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 địachỉ 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ùngnày.
- Ví dụ: AT89S52 có 8KByte bộ nhớ ROM nội, địa chỉ lớn nhất là 1FFFH, nếuchươ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ơn1FFFH 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.
- 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ớ".
- Cấu trúc bộ nhớ RAM bên trong Vi điều khiểnđịa địachỉ Địa chỉ bit chỉ Địa chỉ bit Kí hiệubyte byte7F FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B Vùng RAM bình thường E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC302F 7F 7E 7D 7C 7B 7A 79 78 D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW2E D 6F 6E 6D 6C 6B 6A 69 68 B8.
- BC BB BA B9 B8 IP2C B 5F 5E 5D 5C 5B 5A 59 58 B0 B7 B6 B5 B4 B3 B2 B1 B0 P32A F 4E 4D 4C 4B 4A 49 48 A8 AF AC AB AA A9 A8 IE F 3E 3D 3C 3B 3A 39 38 A0 A7 A6 A5 A4 A3 A2 A1 A0 P F 2E 2D 2C 2B 2A 29 28 99 SBUF SCON23 1F 1E 1D 1C 1B 1A P121 0F 0E 0D 0C 0B 0A D TH11F18 Bank 3 8C TH0 8B TL117 Bank 2 8A TL010 89 TMOD0F 88 8F 8E 8D 8C 8B 8A 89 88 TCON Bank 108 87 PCON07 Bank thanh ghi 0 Mặc định được gán từ R0-R7 83 DPH 82 DPL00 81 SP P0 Bảng này chỉ hiện thị đúng khi xem bằng Interner Explorer 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ớicác thanh ghi từ R0 đến R7, để thay đổi việc truy xuất các thanh ghi trên các bank thanhghi, người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghi trạng thái PSWbằ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ácthanh 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ìnhthường khác.
- Ví dụ: nguời dùng có thể truy xuất đến thanh ghi R7 bằng ô nhớ 07H.
- 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ácbit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số Hex.
- Trong đó có 128bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH, các bit nhớ còn lại chứa trongnhó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ànhcho các bit nhớ hoặc các ô nhớ này.
- lệnh này thiết lập giá trị cho ô nhớ có địa chỉ là05H JB 05H,nhan01.
- 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 truyxuất theo từng byte.
- 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ó địachỉ của các thanh ghi này nằm trong khoảng 80H đến FFH.
- Các thanh ghi đặc biệt nàynà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ấtvà 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, P3tươ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ầnlà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ủaphép tính.
- Thanh ghi A có độ dài 8 bits, có địa chỉ là E0H.
- 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 rathanh 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ảmtự độ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ácnhóm dữ liệu liên tục.Giá trị mặc định của SP là 07H.
- Con trỏ dữ liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển được tạo thànhtừ 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ệuDPTR thường được sử dụng khi truy xuất dữ liệu từ bộ nhớ ROM hoặc bộ nhớ từ bênngoài.
- 1.5.11.Thanh ghi trạng thái chương trình PSW (địa chỉ byte D0H) ĐỊA BIT CHỈ KÍ HIỆU CHỨC NĂNG BITPSW.7 D7H C hoặc Cờ nhớ CyPSW.6 D6H AC Cờ nhớ phụPSW.5 D5H F0 Cờ 0 hay cờ ZeroPSW.4 D4H RS1 Bit lựa chọn dãy thanh ghiPSW.3 D3H RS0 Bit lựa chọn dãy thanh ghiPSW.2 D2H 0V Cờ tràn với phép tính liên quan đến số nhị phân có dấuPSW.1 D1H - Chưa được thiết kế để sử dụngPSW.0 D0H P 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ờ 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=0và RS2=0 Bank thank ghi được RS1 RS2 sử dụng 0 0 Bank 0 0 1 Bank 1 1 0 Bank 2 1 1 Bank 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.
- Cờ chẵn lẻ được dùng để xử lí dữ liệu trước khitruyề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ạnchế 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

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt