IC vi điều khiển có các cảng port, ở các chân của cảng có thể xuất nhập mức áp cao hay thấp tùy theo các câu lệnh do chúng ta soạn ra, do đó nếu dùng ic vi điều khiển chúng ta sẽ có thể
Trang 1Viết cho các Bạn mới làm quen với ic vi điều khiển, họ AT89C51, ic làm việc theo câu lệnh.
Chào Bạn
Tôi chơi điện tử từ năm 12 tuổi, lúc trong nhà mới có cái radio đèn 5 bóng với dây Anten căn ngoài trời dài hai ba chục mét, rồi khi lớn lên làm thợ điện tử thì lúc đó là thời kỳ sửa chữa TV đèn, Radio 6 transistor, rồi TV transistor đen trắng, rồi màu, rồi TV IC, rồi đầu máy, rồi ống ghi hình, rồi điện thoại di động, rồi computer Desktop, rồi Laptop Cứ theo sự tiến triển phi mã của môn điện
tử mà bay cho đến tận bây giờ.
Bây giờ nhìn lại ngành điện tử đã khác rất xa quá xa so với bốn năm chục năm trước Thợ điện tử bây giờ phải làm quen với nhiều thiết bị cao siêu hơn, phức tạp hơn, nhu cầu dùng máy móc điện tử bây giờ nhiều hơn thuở trước rất nhiều Một số thợ điện tử "tự phát " gặp tôi cho biết họ hiểu rất mù mờ về loại ic lập trình, một ứng dụng đối với họ là rất hay, rất hấp dẫn mà sao khó hiểu quá, họ nói với tôi thấy người ta làm mà phát ham Nhiều bằng hữu hỏi tôi có cách nào
"cắt nghĩa" đề tài này cho dễ hiểu hơn không? Đã nhiều lần tôi hứa với lòng là
sẽ tìm ra phương cách trình bày loại ic vi điều khiển làm việc với câu lệnh sao cho thật bình dân dễ hiểu và mong nó sẽ phổ cập đến nhiều Bạn thợ điện tử vốn thành nghề ít qua trường lớp Hôm nay tôi sẽ lại thử nói nữa về đề tài này xem
có dễ hiểu hơn không? Mong bài viết sẽ làm Bạn hài lòng.
IC vi điều khiển là gì?
Trước hết hãy làm quen với khái niệm điều khiển trong ngành điện tử Điều khiển là dùng mức áp cao hay thấp để đóng mở một thiết bị Bạn xem thí dụ sau:
Trang 2Trong hình này, Bạn thấy khi chân B của transistor Q1 cho đặt ở mức volt thấp, thì transistor ở trạng thái ngưng dẫn và không có dòng cấp cho Led Led sẽ tắt.
Trang 3Trong hình này, Bạn thấy khi chân B của transistor Q1 cho đặt ở mức volt cao thì transistor ở trạng thái bão hòa và có dòng cấp cho Led Led sẽ sáng.
Với hình động chúng ta thấy rõ hơn tác nhân điều khiển, tức bit 0 hay bit 1 trên chân B, làm Led lúc tắt lúc sáng Bạn xem hình
Qua hai hình này có thể thấy, chúng ta có thể dùng mức volt cao thấp để tắt mở một thiết bị, ở đây là tắt mở Led Chúng ta tạm chấp nhận định nghĩa sau:
* Mức volt thấp là bit 0
* Mức volt cao là bit 1
Trang 4Vậy có thể nói để cho Led sáng, chúng ta dùng bit 1 và làm cho Led tắt chúng ta dùng bit 0 Trong tác động điều khiển đóng mở, chúng ta có thể đóng mở một Relay, đóng mở điện cho một motor DC Bạn xem hình:
Trong hình này, trên chân C của transistor Q1, chúng ta thấy có:
* Led chiếu sáng
* Relay 12V với tiếp điểm lá kim K1
* Motor DC 12V
Trang 5Vậy nếu đặt bit 1 trên chân B các thiết bị trên chân C của Q1 sẽ được cấp dòng và nếu dùng bit 0 trên chân
B thì các thiết bị trên chân C sẽ bị cắt dòng Qua các thí dụ trên, chúng ta thấy nếu có một linh kiện điện tử
có thể xuất ra mức volt cao hay mức volt thấp theo câu lệnh do chúng ta soạn ra thì lúc đó chúng ta đã có thể điều khiển các thiết bị bằng câu lệnh IC vi điều khiển có các cảng (port), ở các chân của cảng có thể xuất nhập mức áp cao hay thấp tùy theo các câu lệnh do chúng ta soạn ra, do đó nếu dùng ic vi điều khiển chúng ta sẽ có thể điều khiển nhiều thiết bị theo câu lệnh
Hình vẽ sau đây cho thấy 4 cảng của ic vi điều khiển AT89C51
Trang 6Bạn biết mức volt trên các chân của mỗi cảng Bạn đều có thể chọn định ở mức volt cao hay mức volt thấp bằng câu lệnh
Lệnh đặt chân lên mức volt cao là setb (set bit) Lệnh đặt chân xuống mức volt thấp là clr (Clear bit)
Thí dụ: Bạn muốn chân p1.0 (chân số 1) lên mức volt cao, Bạn gõ câu lệnh như sau:
Trang 7Trong mạch, R1 (4.7K) là điện trở hạn dòng chân B và diode D2 dùng dập điện áp nghịch, xuất hiện mỗi khi relay bị cắt dòng Hình vẽ cho Bạn thấy chúng ta đã dùng câu lệnh để tắt mở Q1 và dùng relay 12V với tiếp điểm lá kim K1 để đóng mở các thiết bị volt cao khác (như motor công nghiệp, máy bơm ) theo câu lệnh.
Một lệnh khác, lệnh mov (move) có thể cùng một lúc xác định trạng thái bit cho 8 chân của một cảng Thí dụ: Cách dùng lệnh move qua các hình vẽ như sau:
Trang 8Muốn có dòng cấp cho Led Bạn phải cho chân nối với Led xuống mức volt thấp với bit 0 Và muốn tắt Led Bạn dùng bit 1 Vậy với câu lệnh:
mov p3, #01010011b
Bạn nhìn vào hình sẽ thấy các Led ứng với chân có mức volt thấp phát sáng
Trang 9Để tắt hết 8 Led trên p3 Bạn dùng câu lệnh:
mov p3, #11111111b
Trang 10Để 8 Led trên p3 sáng hết Bạn dùng câu lệnh:
mov p3, #00000000b
Có thể dùng nhiều cảng để điều khiển các Led trên bảng Led ma trận Bạn xem hình:
Trang 11Hình cho thấy muốn Led D1 sáng, Bạn phải dùng câu lệnh:
clr p3.1 ;
Lệnh này đặt chân p3.1 xuống mức volt thấp và làm transistor Q1 bão hòa, cùng lúc Bạn dùng câu lệnh:
Trang 12setb p1.1 ;
Lệnh này đặt chân p1.1 lên mức volt cao và làm transistor Q3 bão hòa, như vậy sẽ có dòng cấp cho Led D1 Led D1 sẽ phát sáng, trong khi đó các Led còn lại không đủ điều kiện để sáng Bằng cách dùng các câu lệnh thích hợp, Bạn có thể tạo ra các con chữ và cả hình ảnh hiện trên bảng đèn ma trận Led 8x8, như hình sau:
Hình trên cho thấy bảng đèn Led ma trận 8x8 dùng làm bảng quang báo, với ic vi điều khiển AT89C51 dó
có 4 cảng nên Bạn có thể dùng nó để điều khiển trực tiếp 3 ma trận 8x8 và làm được bảng đèn quang báo đơn giản Chúng ta sẽ có một bài khác chuyên nói về vấn đề này
Ngoài ra Bạn có thể dùng lệnh nhẩy (có điêu kiện hay không điều kiện) để theo dõi các trạng thái bit trên các chân của các cảng Như thí dụ sau:
Trang 13Trong hình, dùng nút nhấn BP, chúng ta sẽ dùng câu lệnh nhảy để nhẩy theo điều kiện bit 1 hay bit 0 trên chân p0.0 Bạn thấy bình thường với điện trở treo áp R1 (10K) và nút nhấn ở trạng thái hở (chưa nhấn xuống), chân p0.0 sẽ ở mức áp cao, vậy với câu lệnh (jump no bit):
jnb p0.0, $ ;
Câu lệnh này có nghĩa là nếu chân p0.0 ở mức áp thấp thì dừng lại ở đây và chờ đến khi nó chuyển qua bit
1 Nếu chân p0.0 ở mức áp cao tức bit 1 thì câu lệnh này không có tác dụng Nhưng nếu Bạn nhấn nút BP xuống thì sao? Lúc đó chân p0.0 sẽ ở mức áp thấp (tức bit 0), lúc đó với câu lệnh nhẩy: (jnb p0.0, $)
Trang 14chương trình sẽ dừng lại chờ cho đến lúc Bạn bỏ phím, khi Bạn bỏ phím nó sẽ xuống chấp hành câu lệnh tiếp theo, đó là:
Chúng ta dùng một quang trở (SCd) để dò sáng Bạn biết, khi trời tối, nội trở của quang trở rất lớn, vậy transistor Q1 sẽ ở trạng thái bão hòa, nó đặt chân p0.7 ở mức volt thấp (tức ở bit 0), với câu lệnh nhẩy theo điều kiện bit viết như sau:
jnb p0.7, $ ;
thì chương trình sẽ dừng lại ở câu lệnh này Vì sao? Vì lúc này chân p0.7 đang ở trạng thái bit 0. Nếu trời sáng, nội trở của quang trở sẽ nhỏ và nó sẽ làm ngưng dẫn transistor Q1, vậy lúc này chân p0.7 sẽ lên mức volt cao (bit 1), chương trình sẽ thoát ra câu lệnh jnb p0.7, $ và xuống thực hiện câu lệnh kế bên dưới Do câu lệnh tiếp theo của Bạn viết là:
jmp b_sáng ;
Nên chương trình sẽ nhẩy không điều kiện đến chương trình con có tên nhãn là b_sang (viết tắt của chữ báo sáng)
Trang 15Bạn cũng có thể dùng lệnh nhẩy theo phép so sánh trạng thái của 8 bit trên cảng để tạo ra các chương trình điều khiển hấp dẫn hơn Bạn xem hình minh họa sau:
Trong hình này, chúng ta dùng lệnh nhẩy có điều kiện và dùng phép so sánh để xác định nơi đến Bạn thấy với câu lệnh:
cjne p2, #01011011b, chtr_1
Trang 16jmp t_tuc
Trạng thái 8 bit này không giống với trạng thái 8 bit hiện đang có trên cảng 2 (8 bit hiện có trên cảng 2 là 11011010b), vậy nó sẽ nhẩy đến chấp hành chương trình con có tên nhãn là chtr_1 (viết tắt của chữ chương trình_1) Nếu 8 bit dùng trong phép so sánh giống nhau thì sao? Chương trình sẽ xuống dòng lệnh bên dưới
và sẽ nhẩy đến chấp hành chương trình con có tên nhãn là t_tuc (viết tắt của chữ tiếp_tục)
Qua phần trình bày trên, Bạn thấy ic AT89C51 có 4 cảng 4x8 (32 chân), trạng thái mức volt cao hay thấp trên các chân này có thể điều khiển theo các câu lệnh Vậy vấn đề của chúng ta là phải hiểu rõ các câu lệnh dùng để xác định trạng thái trên các chân của 4 cảng sao cho phù hợp với ý muốn của mình Và ic AT89C51 là một trong các ic vi điều khiển rất đơn giản, hiện nay rất phổ dụng
Thế nào là ic làm việc theo các câu lệnh?
Qua phần trình bày trên, Bạn thấy với ic AT89C51, trạng thái mức volt cao hay thấp trên các chân của 4 cảng hoàn toàn chấp hành theo các câu lệnh do Bạn đã viết ra Hiện nay có rất nhiều ic thuộc loại này, người ta nói đó là các ic lập trình, hay là loại ic vi điều khiển hay cao hơn là các ic vi xử lý Với các ic logic TTL họ 74xxx hay họ CMOS 40xx thì các công năng đã cố định, các ic này không làm việc theo các câu lệnh nên tính linh động không cao và thường có cấu trúc phần cứng rất phức tạp, hiện nay nó thường chỉ dùng làm các linh kiện phụ trợ cho các ic vi điều khiển
Có thể nói, khi có một ic vi điều khiển, Bạn cần xác định các chân cố hữu của nó, các chân này dùng vận hành ic và các chân của các cảng dùng chấp hành các câu lệnh Tất cả các mạch điện chịu điều khiển đều
Trang 17thông qua các chân của các cảng Theo trục phát triển, trước hết chúng ta có nhóm ic vi điều khiển họ MSC-51 như nhóm AT89C51, phát triển hơn là nhóm PIC, rồi AVR và rồi ARM , nhưng với các Bạn mới làm quen với loại ic lập trình, Bạn nên khởi đầu từ các ic vi điều khiển thuộc nhóm MSC-51, như AT89C51 Vì các ic này rất trực quan, dễ học dễ dùng, dĩ nhiên dễ kiếm được tiền hơn
Để dùng ic AT89C51 (40 chân) cho công việc điều khiển của Bạn, Bạn chỉ cần ráp một mạch điện cơ bản như hình vẽ sau:
Giải thích mạch điện: Hình vẽ cho thấy, với ic vi điều khiển lập trình, làm việc theo câu lệnh, nó dùng số
linh kiện ngoại vi rất ít Ở đây trên chân 18, 19 gắn thạch anh định tần, nếu dùng thạch anh có tần số 12MHz thì chu kỳ thực hiện 1 lệnh sẽ là 1us Chân số 9 cho nối với mạch reset, nó xác lập trạng thái khởi
Trang 18đầu khi chân 9 ở mức áp cao Cấp nguồn với chân 20 cho nối masse và chân 40 cho nối với mức nguồn +5V
Ở đây có 2 chú ý:
* Trên cảng p0 Bạn nhớ dùng 8 điện trở treo áp
* Trên chân 31 cho nối vào mức áp 5V để xác nhận là chỉ chạy chương trình của bộ nhớ tron
Để dùng ic AT89C2051 (20 chân) cho công việc điều khiển của Bạn, Bạn chỉ cần ráp một mạch điện cơ bản như hình vẽ sau:
Giải thích mạch điện: Hình vẽ cho thấy, với ic vi điều khiển lập trình, làm việc theo câu lệnh, nó dùng số
linh kiện ngoại vi rất ít Ở đây trên chân 4, 5 gắn thạch anh định tần, nếu dùng thạch anh có tần số 12MHz thì chu kỳ thực hiện 1 lệnh sẽ là 1us Chân số 1 cho nối với mạch reset, nó xác lập trạng thái khởi đầu khi chân 1 ở mức áp cao Cấp nguồn với chân 10 cho nối masse và chân 20 cho nối với mức nguồn +5V
Trang 19Ở đây có 1 chú ý:
* Trên cảng p3 thiếu chân p3.6
Điều Bạn cần nhớ là mọi thiết bị điều khiển đều sẽ được cho kết nối với các
chân của các cảng của ic vi điều khiển và Bạn điều khiển các thiết bị này bằng các câu lệnh do Bạn viết ra Mọi việc chỉ có thể
Chú ý: Nếu như mạch điện AT89C51 mà Bạn ráp không hoạt động như ý, Bạn hãy đo thử tín hiệu xung
nhịp Cách đo: lấy máy đo volt AC, nhớ cắm lổ OUT, trên lổ cắm này có tụ cách ly DC, rồi đo volt AC trên chân 18, nếu kim không lên là ic có vấn đề (thay thạch anh hay thay thử ic khác) Kim lên là có xung nhịp ( Bạn xem hình)
Trang 20Câu lệnh được viết như thế nào?
Câu lệnh là các câu chữ dễ hiểu dễ nhớ, nhưng phải viết đúng cú pháp Một file asm thường có dạng thức như sau:
Một thí dụ: Bạn gõ các câu lệnh để 8 Led trên cảng p2 sáng lan lên rồi tắt dần xuống và qui trình trên được
cho lập lại
Trang 21Chương trình nguồn sẽ gõ như sau:
Trang 22call delay
mov p2, #11111000b call delay
mov p2, #11110000b call delay
mov p2, #11100000b call delay
mov p2, #11000000b call delay
mov p2, #10000000b call delay
mov p2, #00000000b call delay
mov p2, #10000000b call delay
mov p2, #11000000b call delay
mov p2, #11100000b call delay
mov p2, #11110000b call delay
mov p2, #11111000b
Trang 24:00000001FF
Bạn cho nạp các mã lệnh dạng 16 này vào bộ nhớ EEP-ROM của ic vi điều khiển AT89C51, và cấp điện cho mạch, Bạn thấy gì? 8 Led trên cảng p2 sẽ có biến đổi như hình sau:
Giải thích từng câu lệnh trong file nguồn trên:
org 0000h ; Khởi đầu từ thanh ghi reset
start: ; tên nhãn được dùng cho lệnh nhảy
mov p2, #11111111b ; đặt 8 bit của p2 đều ở mức volt cao, nên 8 Led đều tắt
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay
mov p2, #11111110b ; cho Led trên chân p2.0 sáng, (nó sáng với bit 0, tức mức volt thấp)
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay
mov p2, #11111100b ; cho Led trên chân p2.0, p2.1 sáng
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay
mov p2, #11111000b ; cho Led trên chân p2.0, p2.1, p2.2 sáng
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay
Trang 25mov p2, #11110000b ; cho Led trên chân p2.0, p2.1, p2.2, p2.3 sáng
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay mov p2, #11100000b ; cho Led trên chân p2.0, p2.1, p2.2 , p2.3, p2.4 sáng
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay mov p2, #11000000b ; cho Led trên chân p2.0, p2.1, p2.2 , p2.3, p2.4, p2.5 sáng call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay mov p2, #10000000b ; cho Led trên chân p2.0, p2.1, p2.2 , p2.3, p2.4, p2.5, p2.6 sáng call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay mov p2, #00000000b ; cho 8 Led sáng hết
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay mov p2, #10000000b ; cho Led p2.7 tắt (tắt với bit 1, tức mức volt cao)
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay. mov p2, #11000000b ; cho Led p2.7, p2,6 tắt
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay. mov p2, #11100000b ; cho Led p2.7, p2,6, p2.5 tắt
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay. mov p2, #11110000b ; cho Led p2.7, p2,6, p2.5, p2.4 tắt
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay. mov p2, #11111000b ; cho Led p2.7, p2,6, p2.5, p2.4, p2.3 tắt
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay. mov p2, #11111100b ; cho Led p2.7, p2,6, p2.5, p2.4, p2.3, p2.2 tắt
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay
Trang 26mov p2, #11111110b cho Led p2.7, p2,6, p2.5, p2.4, p2.3, p2.2, p2.1 tắt
call delay ; cho gọi chương trình con dùng làm trễ, có tên nhãn là delay
jmp start ; nhẩy không điều kiện về tên nhãn start, tức cho bắt đầu lại.
delay: ; tên nhãn dùng cho lệnh nhẩy, ở đây chúng ta dùng lệnh call
mov r7, #20 ; nạp trị thập phân 20 cho thanh ghi r7
v6: mov r6, #50 ; nạp trị thập phân 50 cho thanh ghi r6
v5: mov r5, #200 ; nạp trị thập phân 200 cho thanh ghi r5
djnz r5, $ ; cho trị có trong r5, giảm theo bước -1, chờ cho đến khi bằng 0
djnz r6, v5 ; cho trị trong r6 giảm theo bước -1, nếu chưa bằng 0, nhẩy đến v5
djnz r7, v6 ; cho trị trong r7 giảm theo bước -1, nếu chưa bằng 0, nhẩy đến v6
ret ; quay lại thực hiện dòng lệnh sau lệnh gọi call
end ; dừng chương trình biên dịch tại đây
Tôi nghĩ nếu chịu khó đọc đến đây chắc Bạn cũng hiểu được phần nào cách dùng ic vi điều khiển AT89C51
và Bạn sẽ hỏi với AT89C51, chúng ta có các câu lệnh nào? Ý nghĩ của các câu lệnh ra sao? và cách dùng của từng câu lệnh?
Sau đây chúng ta sẽ lần lượt tìm hiểu các câu lệnh thường dùng trong nhóm 254 câu lệnh của AT89C51 Các câu lệnh chia ra làm 5 nhóm
Nhóm 1: Các câu lệnh liên quan đến số học:
Trang 29NHóm 2: Các câu lệnh liên quan đến logic:
Trang 31Nhóm 3: Các câu lệnh liên quan đến chuyển dữ liệu:
Trang 34Nhóm 4: Các câu lệnh liên quan đến biến Bun (Boolean):
Trang 35Nhóm 5: Các câu lệnh liên quan đến nhẩy:
Trang 37
Trên đây là các câu lệnh được dùng để viết các chương trình nguồn cho ic vi điều khiển AT89C51 Mỗi câu lệnh tương ứng với mã Code 16 ghi ở đầu dòng (khi nạp vào ic luôn sẽ dùng mã nhị phân) Bạn hãy dùng các câu lệnh này để viết chương trình theo ý tưởng riêng của Bạn, cho đổi ra mã nhị phân và dùng hộp nạp, nạp các dòng mã này vào nằm trong bộ nhớ EEP-ROM của ic vi điều khiển AT89C51 là xong
Trang 38Sau khi cho dịch đoạn chương trình trên ra mã Code 16, Bạn có kết quả như sau:
7590F0 được hiểu như sau:
(mov data addr, #data, cần 3 byte),
Con số 75 là lệnh mov (trị địa chỉ), số 90h là trị địa chỉ của cảng p1 và số F0 là trị của 11110000b
7F64 được hiểu như sau:
(mov r7, #data, cần 2 byte)
Con số 7F là lệnh mov r7, #data, con số 64h là trị hệ 16 của con số 100 (trị thập phân)
74FF được hiểu như sau:
(mov a, #data, cần 2 byte)
Con số 74 là lệnh mov a, #data, con số FFh là trị hằng
Trang 39EFBE được hiểu như sau:
(mov a, r7, chỉ cần 1 byte)
Con số EFBE là mã của lệnh: mov a, r7
:00000001FF Đoạn kết thúc
Qua thí dụ trên Bạn thấy mỗi câu lệnh nó có mã Code riêng của nó, trình biên dịch sẽ dịch các câu lệnh này
ra dạng mã tương ứng Nói chung Bạn cũng không cần để ý đến các mã Code của câu lệnh làm gì, Bạn hãy học cách dùng các câu lệnh trên để viết ra các chương trình nguồn cho đúng với ý tưởng của Bạn là được Cách viết các câu lệnh rất đơn giản, cứ theo đúng cú pháp mà gõ, mỗi lệnh trên một dòng, các chú thích nếu có phải đặt sau dấu ";" Với trị có thể dùng số hệ thập lục phân (hệ đếm 16), hay hệ thập phân, hay hệ nhị phân đều được
Ghi nhận của chúng tôi: Bạn không cần biết hết 254 lệnh, nhưng với các lệnh thường dùng thì phải hiểu cho thật rõ, cố gắng viết các chương trình nguồn ít tốn hao bộ nhớ, trình tự chương trình nên phân minh, dễ đọc, dễ thêm bớt, dễ sửa Viết trước các đoạn chương trình con thường dùng để khi cần thì chỉ việc chọn và cắt dán vào chương trình đang soạn, làm vậy sẽ ít tốn thời gian và tránh được lỗi Viết các chương trình nguồn, công việc nhìn giống như chơi cờ tướng, ai cũng chỉ có bấy nhiêu lệnh mà thôi, nhưng có người cao
cờ giải quyết vấn đề theo cách khác, người thấp cờ thì giải quyết theo cách khác Thời gian chơi nhiều, làm nhiều Bạn cũng sẽ trở thành cao thủ lập trình thôi
Muốn làm thực hành với các ic vi điều khiển, cần gì?
Trang 40Đó là câu hỏi nhiều Bạn thường hỏi tôi Theo tôi, Bạn cần có các thứ sau đây:
(1) Một hộp nạp file mã lệnh (file có họ hex) vào bộ nhớ của các ic vi điều khiển
(2) Cần biết dùng một máy tính và nên tìm một phần mềm soạn thảo để gõ chương trình nguồn và nó làm được công việc biên dịch ra file mã (file có họ hex)
(3) Một bo thực hành cơ bản với ic vi điều khiển AT89C51 và nhiều mạch điện ứng dụng ngoại vi
Chúng ta sẽ thử nói đến các vấn đề này
Làm thực hành với bộ Kit lập trình đa năng
Giới thiệu bộ Kit thực hành với IC AT89C51 Hình chụp toàn phần cho thấy: Muốn tự học lập trình cho IC vi điều khiển AT89C51, tốt nhất Bạn vừa tìm hiểu câu lệnh vừa làm thực hành Như vậy, Bạn hãy có trong tay
bo thực hành đa năng này và một hộp nạp chương trình, dùng nạp file hex vào bộ nhớ EEP-ROM trong ic vi điều khiển AT89C51 Trình tự làm thực hành thường như sau:
(1) Bạn tạo các kết nối giữa ic AT89C51 và các mạch điện chung quanh.
(2) Phát triển các ý tường và cụ thể hóa bằng cách viết ra file chương trình nguồn, với họ asm.
(3) Dịch file nguồn có họ asm ra file mã Code có họ là hex