LĨNH VỰC NGHIÊN CỨU CƠ BẢN THIẾTKẾKITPHÁTTRIỂNCHOHỌVIĐIỀUKHIỂN8051 Đặng Hoài Bắc, Đinh Sỹ Quang, Đỗ Mạnh Hà Khoa Khoa Kỹ Thuật Điện tử 1 Tóm tắt: Để việc học tập, nghiên cứu, thiếtkế ứng dụng vi xử lý nói chung, các họviđiềukhiển nói riêng đạt hiệu quả yêu cầu nhiều thiết bị hỗ trợ. Trong đó KITpháttriển là một thiết bị hữu hiệu hỗ trợ rất tốt cho mục đích trên. Bài báo này trình bày t ổng quan nhất về vấn đề thiếtkếKITpháttriểncho họ viđiềukhiển 8051- một họviđiềukhiển đang được sử dụng rất rộng rãi trong thực tế. 1. Đặt vấn đề Họ viđiềukhiển8051 hiện đang được sử dụng rất phổ biến, chúng xuất hiện trong nhiều ứng dụng như điề u khiển, đo lường, điện thoại Hơn thế nữa, chúng còn xuất hiện nhiều trong các hệ nhúng SoC, rất pháttriển hiện nay. Việc nghiên cứu học tập kỹ thuật vi xử lý nói chung, các họviđiềukhiển nói riêng, trong đó điển hình là họ8051 là rất cần thiếtcho sinh viên công nghệ thông tin cũng như sinh viên điện tử – viễn thông. Để có thể học tập, nghiên cứu, thiếtkế t ốt về các họviđiềukhiển rất cần các thiết bị thí nghiệm thực hành cũng như các công cụ trợ giúp thiếtkế hệ viđiều khiển. Trong thực tế có rất nhiều các thiết bị thí nghiệm, các công cụ hỗ trợ thiếtkếvi xử lý khá chuyên nghiệm như hệ phát triển, hệ kiểm tra logic, máy nạp ROM, các bộ phần mềm dịch chéo trong đó hệ pháttriển đóng vai trò quan trọng nhất. Song việc trang bị các thiết bị chuyên dụng trên đòi hỏi lượng kinh phí lớn, khó có thể trang bị đại trà, trong khi đó khả năng hiện nay chúng ta có thể thiếtkế các thiết bị như vậy với giá thành sản phẩm rẻ. Khoa kỹ thuật điện tử đã thiếtkế thành công KITpháttriển trợ giúp cho việc học tập, nghiên cứu cũng như thiếtkế họ viđiềukhiển 8051. Trong bài báo này chúng tôi sẽ giới thiệu tổng quan về thiếtkếKITpháttriển này. 2. Sơ đồ khối toàn hệ thống KITpháttriển Với mục đích chính là hỗ trợ sinh viên thí nghiệm thực hành môn Kỹ thuật vi xử lý và hỗ trợ thiếtkế ứng dụng vi xử lý, KITpháttriển cần được thiếtkế đa dạng gồm nhiều modul ứng dụng sử dụ ng được phần lớn khả năng và tài nguyên của họ viđiềukhiển8051 và phải có cấu trúc mở cho phép hỗ trợ sinh viên pháttriển thêm các thiếtkế ứng dụng riêng. Cấu trúc bộ KITpháttriển bao gồm nhiều module ứng dụng đa dạng : + Modul điềukhiển chính (Ký hiêụ: CPU). + Modul điềukhiển LED 7 đoạn (Ký hiêụ: LED) + Modul điềukhiển bàn phím (Ký hiêụ: KEY PAD). + Modul điềukhiển động cơ bước (STEP MOTOR). + Modul điềukhiển ADC (Ký hiêụ: ADC). + Modul điềukhiển DAC (Ký hiêụ: DAC). + Modul điềukhiển giao tiếp đường dây điện thoại (Ký hiêụ: Line Interface). Hạt nhân trung tâm của bộ KIT là 89AT51 và phần mềm đi kèm cho phép sinh viên có thể tự do pháttriển ý tưởng lập trình, và download chạy thử chương trình một cách thuận tiện. Chương trình được nạp vào RAM vì thế sinh viên có thể thực hiện chỉnh sửa, download thường xuyên rất thuận tiện. Các bài thí nghiệm đi kèm theo chỉ là một ứng dụng nhỏ của mỗi MODUL. Chúng có ý nghĩa như là bài mẫu hướng dẫn cho sinh viên cách lập trình các ứng dụng cho mỗi MODUL. Việc thực hiện viết các chương trình ứng dụng cụ thể cho mỗi MODUL là hoàn toàn tuỳ thuộc vào năng lực và khả năng sáng tạo của sinh viên. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HỘI NGHỊ KHOA HỌC LẦN THƯ VI LĨNH VỰC NGHIÊN CỨU CƠ BẢN Modul Modul KEY PAD Modul ADC LED PC CON_A RS232 CPU RS232 CON_B Mạch trung tâm của Bộ KIT thí nghiệm là khối mạch chính CPU, được giao tiếp với máy PC thông qua RS232. Khối CPU này được thiếtkế độc lập và kết nối với các modul ứng dụng thông qua các connector (CON_A – theo kiểu BUS, và CON_B theo kiểu trực tiếp quan cổng P1 của 8951. Máy PC được cài phần mềm READ51 và chương trình giao tiếp giữa máy tính và khối mạch chính đã được nạp sẵn trong bộ nhớ ROM của vi mạch 8051. Trong khối mạch chính này còn có bộ nhớ RAM cho phép nạp ch ương trình vào từ máy tính trong khi thí nghiệm. Hoặc các chương trình thiếtkế ứng dụng riêng được thiếtkế và chạy thử trước khi nạp vào 8951 trong thực tế. 3. Giới thiệu về phần mềm READ51 READ51 là phần mềm pháttriển tích hợp IDE cho phép điềukhiển toàn bộ KIT bao gồm bộ soạn thảo và biên dịch chương trình C hay Assembler viết chovi mạch 8951, chương trình nạp, gỡ rối và chương trình mô phỏng hỗ trợ cho việc lập trình. Chương trình sử dụng cho bộ thí nghiệm này là READS51 version 4.20 của hãng Rigel. Workspace : Chỉ ra project đang được thực hiện (Chương trình cho phép nhiều project được mở ra đồng thời (tên project đang được thực hiện được đánh dấu màu đỏ). Output Window: Hiển thị ra kết quả trong quá trình thực hiện chương trình, như kết quả của quá trình dịch, nạp chương trình, kết quả tìm kiếm Edit Window: Cửa sổ soạn th ảo các file chương trình nguồn trong project. SFR Watch Window: Cửa sổ cho phép quan sát địa chỉ, nội dung của các thanh ghi trong 8951 trong quá trình gỡ rối (chạy Debug). TTY Window: Cửa sổ thực hiện thao tác giữa PC và khối mạch thí nghiệm. Memory Watch Window : Chỉ ra giá trị của các ô nhớ trong bộ nhớ RAM trong khi chạy Debug. Toàn bộ giao diện chính của READ51 như sau: Modul Line Interface Modul STEP MOTOR Modul DAC 8951 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HỘI NGHỊ KHOA HỌC LẦN THƯ VI LĨNH VỰC NGHIÊN CỨU CƠ BẢN Các lệnh điềukhiển 1 2 3 4 5 6 Để đảm bảo chắc chắn rằng chương trình xác lập được thông tin với khối mạch thí nghiệm, dùng chuột kích hoạt vào cửa sổ TTY Window và đánh lệnh “H” sẽ nhận được những đáp ứng từ chương trình điều khiển. READS51 sử dụng những lệch đơn bằng một chữ cái để thực hiện các hàm cơ bản. Việc thi ết lập cấu hình cổng, dữ liệu, cũng như kiểm tra bộ nhớ có thể thực hiện thông qua chương trình điều khiển. Hầu hết các lệnh đơn này có các tham số kèm theo là địa chỉ dạng 4 chữ số Hex, hay 2 byte dữ liệu dạng số Hex. Để biết các lệnh này có thể đánh lệnh H thì kết quả sẽ đưa ra danh sách các lệnh như sau: B xxxx Thiết lập vị trí dừng chương trình (break point) tại đia chỉ xxxx. C xxxx-xxxx Hiển thị nội dung bộ nhớ mã chương trình. D xx-xx Hiển thị nội dung RAM số liệu bên trong. D xx=nn Thay đổi nội dung ô nhớ của RAM số liệu bên trong. D xx-xx=nn Điền nội dung khoảng một khối bộ nhớ trong RAM trong. G xxxx Bắt đầu thực hiện lệnh tại địa chỉ xxxx. H Lệnh hiển thị nội dung trợ giúp. K Loạ i bỏ điểm break point. L Nạp file hex vào trong bộ nhớ. P x Hiển thị số liệu trên cổng x. R Hiển thị nội dụng của các thanh ghi. S Hiển thị địa chỉ của các thanh ghi có chức năng đặc biệt. S xx-xx Hiển thị nội dung của các thanh ghi chức năng đặc biệt. S xx-nn Thay đổi nội dung của thanh ghi chức năng đặc biệt. S xx-xx=nn Điền dữ liệu vào các thanh ghi chức năng đặ c biệt. X xxxx-xxxx Hiện thị nội dung của vùng nhớ trong bộ nhớ ngoài. X xxxx=nn Thay đổi nội dung của ô nhớ. X xxxx-xxxx=nn Điền dữ liệu vào vùng nhớ trong bộ nhớ ngoài. (x-là chữ số dạng Hex {0 9,A F}) Nạp và chạy chương trình Assembly Để nạp và chạy một file thực hiện theo các bước sau: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HỘI NGHỊ KHOA HỌC LẦN THƯ VI LĨNH VỰC NGHIÊN CỨU CƠ BẢN Chọn file : Vào menu File->Open File chọn tên file trong hộp thoại mở file. Dịch chương trình và nạp nó vào trong bộ nhớ ngoài của khối mạch: chọn Compile->Build and Download, file sẽ được biên dịch và tạo ra file .HEX, file này được nạp vào trong bộ nhớ của khối mạch. Thực chương trình đã được nạp chọn “Compile->Toggle BUILD/DEBUG Mode” hoặc phím tắt “F2” sau đó chọn “Debug->Run Skip Breakpoints”. Bấm nút RESET trên khối mạch để bắt kết thúc chạy chương trình đã nạp vào RAM trên khối mạch. Ngoài ra ch ương trình cho phép soạn thảo, biên dịch, nạp và chạy từng file chương trình Assembly cũng như chương trình C viết choviđiềukhiển 8951. 4. Kết luận KITpháttriển đã được thiếtkế khá hoàn chỉnh, bao gồm 1 khối CPU và 6 modul ứng dụng cho phép thí nghiệm hầu hết các chức năng, tài nguyên của viđiềukhiển 8951. Ngoài ra KIT còn được thiếtkế theo cấu trúc mở cho phép mở rộng thêm nhiều ứng dụng khác nữa mà không phải thiếtkế lại khối CPU. KIT đã được lắp đặt và chạy thử tại Khoa Kỹ thuật điện tử 1. Bên cạch đó chúng tôi còn xây dựng 5 bài thí nghiệm hoàn chỉnh cho môn học vi xử lý theo chương trình khung mới của Bộ giáo dục, hỗ trợ tốt cho sinh viên trong quá trình học tập, nghiên cứu về các họviđiềukhiển nói chung, họ viđiềukhiển8051 nói riêng. Tài liệu tham khảo [1] Myke Predko, Programming and Customizing the 8051 microcontroller, MG Hill- 2001. [2] Văn Thế Minh, Kỹ thuật Vi xử lý, NXB KHKT 2000. [3] Các tài liệu hướng dẫn về viđiềukhiển 8951 của hãng Atmel trên website : www.atmel.com. Sơ lược tác giả Ths. Đặng Hoài Bắc Khoa Kỹ thuật điện tử 1 - Học viện Công nghệ Bưu chính Viễn thông Lĩnh vực nghiên cứu : Điềukhiển tự động, Lý thuyết mã. E-mail: dhbac@hotmail.com Ks. Đỗ Mạnh Hà Khoa Kỹ thuật điện tử 1 - Học viện Công nghệ Bưu chính Viễn thông Lĩnh vực nghiên cứu: Đo lường điện tử, Thiếtkế số. E-mail: dmhavn@yahoo.com Ks. Đinh Sỹ Qu ảng Khoa Kỹ thuật điện tử 1 - Học viện Công nghệ Bưu chính Viễn thông Lĩnh vực nghiên cứu: Vi xử lý, Thiếtkế số, . E-mail: dsq7@yahoo.com HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HỘI NGHỊ KHOA HỌC LẦN THƯ VI . xx-xx Hiển thị nội dung RAM số liệu bên trong. D xx=nn Thay đổi nội dung ô nhớ của RAM số liệu bên trong. D xx-xx=nn Điền nội dung khoảng một khối. sẽ đưa ra danh sách các lệnh như sau: B xxxx Thiết lập vị trí dừng chương trình (break point) tại đia chỉ xxxx. C xxxx-xxxx Hiển thị nội dung bộ nhớ