Mạch Khóa Số Điện Tử Mạch Đếm Sản Phẩm Mạch Đèn giao thông Ngã Tư Mạch Trái Tim Final Mạch Trái Tim Final Mạch Trái Tim I Love U

September 9, 2012

Bài 3: Xây dựng board mạch và viết chương trình




 Một board mạch vi điều khiển bao gồm nhiều thành phần tạo thành: mạch thực thi, mạch nạp, chương trình viết và biên dịch cho assembly. Xem lại phần kết nối phần cứng cho vi điều khiển bài 1 phần 1.3
3.1 MẠCH THỰC THI
       Mạch thực thi là mạch giao tiếp với các mạch xuất nhập để vi điều khiển thực hiện chương trình.
3.1.1  KHỐI ỔN ÁP
      Khối này là mạch điện dùng để ổn áp điện thế ở khoảng 5V, cấp nguồn ổn định cho vi điều khiển hoạt động. Có nhiều loại mạch ổn áp khác nhau, trong đó mạch ổn áp dùng IC ổn áp 7805 thường được sử dụng vì mạch này rất dễ thực hiện. Sơ đồ như ở hình dưới:

     Mạch trên lấy nguồn một chiều từ một máy biến áp với điện áp từ 7V đến 9V để đưa vào ngõ IN. Khi kết nối mạch điện, do nhiều nguyên nhân, người dùng dễ nhầm lẫn cực tính của nguồn cung cấp khi đấu nối vào mạch, trong trường hợp này rất dễ ảnh hưởng đến các linh kiện trên board mạch. Vì lí do đó một diode cầu được lắp thêm vào mạch, diode cầu đảm bảo cực tính của nguồn cấp cho mạch theo một chiều duy nhất, và nguời dùng cũng không cần quan tâm đến cực tính của nguồn khi nối vào ngõ IN nữa.
     IC 7805 là IC ổn áp, IC này giữ ngõ ra ổn định trong khoảng 5V. Ngõ ra này chính là nguồn Vcc để cung cấp cho mạch vi điều khiển hoạt động, đồng thời ngõ ra sau khi ổn áp còn được nối với hai đầu xuất OUT cấp nguồn này cho một mạch khác khi cần.
3.1.2  VI ĐIỀU KHIỂN VÀ CÁC MẠCH XUẤT NHẬP
      I. Để vi điều khiển hoạt động cần các thành phần sau:
         a. Cấp nguồn 5V cho vi điều khiển (Vcc: 5V chân 40; GND: 0V chân 20)
         b. Mạch tạo dao động bằng thạch anh





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


         c. Mạch Reset
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 được cấ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ậy châ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

        d. Nối chân EA (chân 31)  lên Vcc (5V): Vì các bài thí nghiệm này chỉ thực hiện chương trình từ bộ nhớ ROM nội, do đó nối chân EA với Vcc để thiết đặt cho Vi điều khiển thực hiện chương trình từ bộ nhớ ROM nội (bộ nhớ ROM tích hợp sẵn trong vi điều khiển).
       II. Các mạch xuất nhập từ các port
        Sử dụng điện trở treo trước mỗi Port, đồng thời nối thêm giắc cắm 8 chân để làm đường nhận hoặc xuất tín hiệu kết nối với các mạch điện khác từ bên ngoài. Xem lại phần điện trở treo.
3.1.3  MẠCH VI ĐIỀU KHIỂN
        Kết hợp các phần trên vào cùng một mạch tạo thành mạch hoạt động cho vi điều khiển, sơ đồ nguyên lí như hình dưới (click vào hình để xem ở kích  thước lớn hơn) :
     Chú ý: Các đường mạch lớn là các đường nối BUS: tức là trên đường đó, những đường nào cùng tên thì nối với nhau, những đường không cùng tên thì không liên quan đến nhau. Trong sơ đồ nguyên lí, các đường BUS giúp cho sơ đồ dễ quan sát hơn và việc sắp xếp các linh kiện cũng đơn giản, trật tự hơn.
    Ví dụ: đường kết nối P0_0 nối vào đường BUS từ vi điều khiển, đường P0_0 từ jack 8 chân và P0_0 từ điện trở thanh, trên thực tế được nối với nhau vào cùng một điểm.
3.1.4 MỘT SỐ LINH KIỆN
      a. Vi điều khiển AT89S52
  Khi gia công trên mạch, thường không hàn vi điều khiển trực tiếp lên mạch, mà thay vào đó là một đế cắm 40 chân để khi cần thiết có thể thay đổi vi điều khiển khác lên trên mạch dễ dàng hơn.  

     Một loại đế cắm 40 chân
Hình dạng
AT89S52 thực tế
Sơ đồ chân tương ứng

        b. Thạch anh và tụ gốm 33p
Thạch anh 12MhzTụ gốm 33p
      
      c. Điện trở thanh 9 chân
        Các điện trở treo được thay bằng điển trở thanh 9 chân, sử dụng điện trở thanh giúp việc thiết kế mạch đơn giản hơn.
  , điện trở thanh 9 chân thực chất là 8 điện trở cùng giá trị với mỗi đầu của điện trở được nối với nhau và đầu chung này được đưa ra ngoài bằng một chân nữa. Khi nhìn trên điện trở thanh, phía đầu nào có dấu chấm tròn, thì chân ngoài cùng của phía đó là chân chung. Thông thường chân chung này thường được nối với nguồn Vcc
      d. Jack 8 chân
      
Jack 8 chân kết với với dây nối bus để truyền tín hiệu đến các phần khác của mạch
Dây nối bus 8 đường
Thực chất Jack 8 chân được tách ra từ một phần lớn hơn, phần này thường được gọi là "rào cắm".
Từ "rào cắm" này dễ dàng để tách ra thành jack 2 chân hoặc 3,4,5... chân tùy ý người sử dụng.
 3.2 MẠCH NẠP
        Để đưa chương trình đã viết trên máy vi tính vào trong Rom của vi điều khiển, cần có các phần mềm riêng (hay còn gọi là phần mềm nạp)  và các mạch giao tiếp tương ứng với phần mềm đó (hay còn gọi là mạch nạp). Có rất nhiều phần mềm nạp và các mạch nạp dành cho vi điều khiển, mỗi loại vi điều khiển đều có phần mềm nạp và mạch nạp dành riêng cho vi điều khiển đó.
       Cũng có rất nhiều chương trình nạp cho vi điều khiển AT89Sxx (xx: hai số sau của mã vi điều khiển , ví dụ: AT89S52, AT89S53...), hiện nay phần mềm nạp ISP do "Mohammad Asim Khan" xây dựng được sử dụng rất phổ biến ở thế giới và Việt Nam. Mạch nạp kèm theo với phần mềm ISP rất đơn giản và được thiết kế theo kiểu nạp nối tiếp (các chương trình nạp trước đó thường là chương trình nạp song song, mạch nạp rất phức tạp,khó chế tạo). ISP có thể nạp chương trình cho vi điều khiển ngay trên board mạch hoạt động mà không cần phải chuyển vi điều khiển từ mạch hoạt động sang mạch khác để nạp như các chương trình nạp trước đây.
      Địa chỉ cung cấp phần mềm ISP  http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html
 Dưới đây là sơ đồ nguyên lí của mạch nạp kèm theo phần mềm trên:
PRN PORT : đường kết nối đến cổng máy in, các số tương ứng trong ngoặc là số của chân trên cổng máy in.
Nối ngắn mạch chân 2 và chân 12 của cổng máy in.
74HCT245 được cấp nguồn 5V vào chân 10 và chân 20.

  Sơ đồ chân của cổng máy in
Sơ đồ này chỉ dùng cho mạch chỉ thực hiện công việc duy nhất là nạp chương trình cho vi điều khiển.
   Để nạp trực tiếp cho mạch đang hoạt động, dùng sơ đồ sau
       Nguồn cấp cho 74HTC541 được lấy từ mạch ổn áp trên board mạch vi điều khiển, điện thế dương 5V đưa vào chân 20, chân 10 nối với điện thế 0V (Ground).
       LED dùng báo hiệu trạng thái hoạt động của mạch
       Trên SPR PORT :chân số 1 nối với chân số 6 của vi điều khiển AT89Sxx,
                                   chân số 2 nối với chân số 7 của vi điều khiển AT89Sxx
                                   chân số 3 nối với chân số 8 của vi điều khiển AT89Sxx
                                   chân số 4 nối với chân số 9 của vi điều khiển AT89Sxx
                                   chân số 5 nối với chân - từ ngõ OUT của mạch ổn áp
                                   chân số 6 nối với chân + từ ngõ OUT của mạch ổn áp
        Ngoài ra có thể dùng 74HC245 theo sơ đồ dưới:
     3.3 CHƯƠNG TRÌNH NẠP ISP
       Chương trình chạy không cần cài đặt, khởi động chương trình IspPgm.exe với biểu tượng. Chương trình hiện lên giao diện như bên dưới:
       Trước hết bấm vào danh sách sổ (trên hình là ô có chữ "MEGA8"), chọn "89S52" .Bấm vào nút "Open File" để chọn file chương trình (có đuôi".hex"). Sau đó bấm vào "Write" để nạp chương trình cho vi điều khiển.
Chú ý: Trước khi nạp cần đảm bảo mạch điện đã được kết nối chính xác đến vi điều khiển.
           Nếu đã kết nối đúng mà chưa nạp được thì nên rút các mạch giao tiếp ra khỏi P0, rồi thử nạp lại.

 Nếu bạn chưa có một mạch vi điều khiển thực tế, bạn vẫn có thể thực hành và kiểm tra với sự hỗ trợ của phần mềm mô phỏng vi điều khiển. Phần mềm mô phỏng mô tả lại các trạng thái hoạt động của vi điều khiển khi chương trình được nạp vào vi điều khiển để thực thi. Có nhiều phần mềm mô phỏng vi điều khiển như Workbench, ISIS...Trong bài này, xin giới thiệu cùng các bạn phần mềm viết và mô phỏng PINNACLE. Phần mềm được cung cấp từ websitehttp://www.vaultbbs.com/pinnacle , bạn có thể tải phần mềm tại địa chỉhttp://www.codientu.info/soft/
       Sau khi cài đặt chương trình đòi hỏi bạn phải đăng kí để sử dụng các tiện ích đầy đủ, thời hạn cho phép sử dụng chương trình là 30 ngày. Tuy nhiên sau 30 ngày đó nếu bạn không đăng kí, chương trình vẫn sử dụng được. Khi khởi động, chương trình hiện lên bảng giới thiệu và lựa chọn đăng kí sử dụng chương trình, chỉ cần bấm vào nút Register Later để bắt đầu sử dụng chương trình.Bạn có thể đăng kí để sử dụng hết tính năng của chương trình này, nếu không đăng kí để sử dụng chương trình, bạn chỉ có thể dịch chương trình dưới 2K.
        3.4.1 Soạn thảo và biên dịch
       Soạn thảo: để soạn  thảo chương trình mới, vào menu   File/New hoặc tổ hợp phím Ctrl+N
       Lưu: sau khi soạn thảo chương trình, lưu chương trình bằng tổ hợp phím Ctrl+S hoặc menu File/Save. Lưu ý: tên của file không quá 8 kí tự và không có khoảng trắng.
       Biên dịch: sau khi đã lưu chương trình, để biên dịch chọn menu Project/Compile & Link Filehoặc tổ hợp phím Ctrl+F2. Chương trình sẽ kiểm lỗi cú pháp, nếu có lỗi chương trình sẽ hiện lên các thông báo lỗi, để trở về sửa chữa các dòng lệnh bị lỗi double click vào dòng thông báo lỗi. Nếu chương trình không có lỗi, máy tính sẽ biên dịch chương trình vừa viết thành mã máy vi điều khiển, mã này được lưu trong file có đuôi là .hex, file này có tên cùng với tên của file soạn thảo và cùng nằm trong một thư mục (Folder). Sau khi biên dịch xong máy hiện thông báo với dòng cuối cùng làBuild complete. 0 error(s), 0 warning(s)

         3.4.2 Hướng dẫn mô phỏng các trạng thái của vi điều khiển
      Sau khi biên dịch thành công, nếu có phần cứng, các bạn đổ chương trình vào chip vi điều khiển, chương trình này chứa trong file có đuôi ".hex". Hoặc mô phỏng chương trình trên máy vi tính bằng phần mềm PINNACLE với các thao tác sau:
       Cách a:      - Vào menu Simulator/Load Memory/Code Memory
      - Chương trình hiện lên hộp thoại: Ở ô Filename to Load chọn đường dẫn đến file có đuôi ".hex" chứa chương trình cần mô phỏng.
      Hoặc thực hiện các thao tác sau:
       Cách b:     -Vào menu File\Open (hoặc Ctrl+O), chương trình xuất hiện một hộp thoại, trong trình đơn List file of type chọn Intel Hex (*.hex) để mở các file có đuôi *.hex. Tìm file có đuôi *.hex cần mở rồi nhấn nút OK.

       Sau khi đã thực hiện cách a hoặc b,vào menu Veiw\Ports (hoặc Ctrl+P) để xem trạng thái của các Port

         Cuối cùng, để xem các trạng thái của chương trình đã viết, vào menu Execute\Run (hoặc bấm F5 hoặc chọn biểu tượng ). Để ngừng vào menu Execute\Stop (hoặc chọn biểu tượng )
        Còn nhiều công cụ khác để hỗ trợ cho quá trình viết chương trình và bảng trạng thái của những phần khác như trạng thái của các thanh ghi Rx, thanh ghi trạng thái .... bạn có thể tự tìm hiểu để biết thêm.
        Chú ý: vì tốc độ xử lí của phần mô phỏng nhanh hơn của vi điều khiển với thạch anh 12MHz rất nhiều nên các trạng thái xảy ra hơi nhanh không quan sát toàn bộ được, do đó để quan sát rõ các trạng thái của các Port bằng chương trình mô phỏng cần viết chương trình sao cho khoảng thời gian giữa các lần xuất tín hiệu ra Port kéo dài hơn.

Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download Nguồn huongnghiepviet.com

0 comments:

Post a Comment

Bạn đọc hãy giúp chúng tôi xây dựng cộng đồng bằng cách để lại bình luận, chúng tôi luôn đón nhận mọi ý kiến của các bạn:
» Bình luận nghiêm túc và không chứa các liên kết quảng cáo.
» Vui lòng không Spam nhận xét với mọi hình thức.
» Rất mong bạn đề tên cho nhận xét của chính mình - Bằng cách chọn vào Tên/URL và điền tên bạn vào (Phần URL có thể bỏ trống ).

- Bạn có thể chèn Link nhạc (NCT), video(Youtube),Hình ảnh vào comment bằng cú pháp:
+ [youtube] Link video Youtube [/youtube].
+ [img] Link ảnh( định dạng PNG, JPG,GIF) [/img]
+Chèn link liên kết: <a href="LINK" rel="nofollow">Name</a>
-Bạn copy mã bên cạnh biểu tượng chèn vào nhận xét để bày tỏ cảm xúc!!

:) :( :)) :(( =)) =D> :D :P