Tìm kiếm
Latest topics
Most Viewed Topics
Most active topics
Học vi xử lý như thế nào cho tốt...
Trang 1 trong tổng số 1 trang
Học vi xử lý như thế nào cho tốt...
Hiện nay, việc điều khiển các máy móc từ gia dụng phổ thông đến công nghiệp đầu được thực hiện bằng vi điều khiển (mà ta gọi là con vi xử lý), ta có thể liệt kê sơ sơ các món gia dụng mà vi xử lý tham gia : máy giặt, máy lạnh, tivi, tủ lạnh, nồi cơm điện thông minh, bếp từ, và rất nhiều thiết bị khác. Trong công nghiệp vi xử lý cũng có mặt khắp mọi nơi: lò sấy, lò hơi, băng tải, dây chuyền đóng gói....Các công ty chuyên nghiên cứu sản xuất thiết bị tự động hóa thấy cái con vi xử lý hay quá, mà lại thường dùng kèm với timer, counter, đồng hồ, ram, relay... bèn gom chúng thành một cục gọi là PLC ( Programmable Logic Controller) mà ta gặp rất nhiều trong công nghiệp.
Vậy vi điều khiển là cái gì mà được dùng nhiều thế ?
Theo một số người (đặc biệt là sinh viên) việc học môn "Vi xử lý" hay vi điều khiển là một việc cực kỳ gian khổ, đến nổi gọi "Vi xử lý" thành "vi xử bắn" vì học hoài mà không hiểu, thi hoài mà không đậu, khi đã đậu thì không biết vì sao mình đậu. Đó là học, còn khi làm đồ án hay thực hành thì làm hoài mà không chạy, viết chương trình chỉnh sửa hoài vẫn sai hoài, khi mạch đã chạy thì cũng không hiểu vì sao nó chịu chạy và khi đang chạy thì nó "im ru" cũng chẳng biết tại sao ?!?!?!
Vậy, có phải là con vi xử lý nó hay "tửng tửng", xin thưa với các bạn 100% là không, môn "Vi xử lý" vô tội, con vi xử lý cũng không có tội. Vậy tại sao lại có chuyện trên ?
Thưa các bạn, cái gì cũng có nguyên nhân hết đó, ngày xưa tui cũng từng khổ sở với con vi xử lý, từng thức đêm thức hôm, mất ăn mất ngủ với nó, nhưng dần dần tui mới thấy là lỗi tại mình hết trơn hết trọi. Nhân đây xin mạn phép trình bày một số ý kiến cá nhân mà tôi cho rằng có thể có chút ích cho các bạn khi học hay làm với vi xử lý.
Thứ nhất: Đừng nghĩ rằng vi xử lý là khó.
Từ đầu đến giờ tui không nói cá biệt một dòng vi xử lý nào hết trơn hết trọi, bởi vì theo tui thấy dòng nào cũng vậy, gần giống nhau hết từ họ 80xx đến Atmega của Atmel, Philips, các dòng PIC của Microchip (nhưng xin nói thật tui chưa có cơ hội viết code cho các con chip của Motorolar). Có thể mỗi loại có một ngôn ngữ, một vài ưu điểm nổi bật nhưng về căn bản chúng giống nhau ở chổ là "Biểu gì làm nấy", mà đã biểu gì làm nấy thì không thể nói là “khó bảo” được.
Thứ hai: Cần chuẩn bị thật tốt kiến thức liên quan, gồm:
- Kỹ năng thiết kế mạch điện tử. Không có kiến thức này thì "bó tay". Bạn thử nghĩ xem một người có óc thông minh nhưng không biết cách sử dụng tay, chân, miệng,... thì có khai thác được bộ óc đó không ? Hay sẽ điều khiển tứ chi làm việc tầm bậy. Nhớ rằng vi xử lý chỉ đưa ra ngoài các tín hiệu logic với cấp điện áp thấp và công suất cũng thấp, ta sử dụng tín hiệu này như thế nào lại là việc khác. Do đó, nếu chưa nắm được cơ chế làm việc của máy, nguyên lý hoạt động của mạch thì đừng nghĩ tới vi xử lý. Theo kinh nghiệm của tôi, sinh viên làm về vi xử lý không được thì 90% là thiết kế mạch sai, ta hỏng kiến thức nền mà không biết, chỉ chăm chăm vào vi xử lý và than trời sao khó quá. Như vậy, nếu thiết kế hay làm theo mạch có sẵn ta cũng phải nắm thật vững về nó rồi hãy làm, hãy lập trình. Nhiều khi ta mất căn bản mà cứ đổ tội cho vi xử lý là khó quá cũng tội nghiệp nó.
Tôi xin nói một ví dụ về sinh viên của ta học và làm như sau: Có một nhóm sinh viên làm đồ án vi xử lý, các anh này tìm đâu đó trên mạng một mạch trùng với đề tài , ngon ăn quá thực hiện ngay mà chẳng hề có một chút suy nghĩ hay phân tích mạch gì cả. Làm xong mạch không chạy tự quy cho mình cái tội "làm mạch sai" (người ta làm phần cứng và viết code sẵn chạy tốt trên mạng mà), thế là hì hà hì hục làm lại, làm xong vẫn không chạy, tình cờ thấy có một đường mạch vẽ nhầm, mừng quá làm lại lần thứ ba _ vẫn không chạy. Lúc này, chịu khó ngồi lại xem thật kỹ coi mình có làm sai ở đâu so với người ta không (không phải ngồi phân tích để hiểu đâu nghen), giống hoàn toàn nhưng vẫn không chạy, nghi ngờ vi xử lý hư, chạy ra chợ Nhật Tảo mua thêm một con nữa nhưng tình hình không tiến triển. Vậy tại sao ? Vác mạch lên hỏi thầy, thầy hỏi lại vài câu vài câu thấy các anh này chẳng nắm gì về mạch điện tử cả, làm đúng làm sai gì cũng chẳng biết chỉ biết “làm theo”. Hóa ra mạch không sai, chẳng qua là phần cứng với phần mềm không tương thích, chỉ cần đổi mức áp trong phần mềm là xong. Tiếc rằng tôi đi dạy gần 10 năm nay, số sinh viên dạng như trên gặp ngày càng nhiều. (Phải chăng đây là mặt trái của Internet ?).
- Kiến thức về khí cụ điện, máy điện. Đây là đối tượng sẽ thực thi công việc, ta phải nắm rõ để lựa chọn thiết bị, linh kiện , mạch giao tiếp phù hợp. Không có kiến thức về các loại phụ tải, các thiết bị công suất thì làm sao điều khiển chúng, kéo theo có thể làm hỏng chúng hoặc làm hư mạch điều khiển, nguồn. Ví dụ, dùng vi điều khiển điều khiển động cơ bước thì chí ít cũng phải biết loại nào, cấu tạo ra sao,mạch giao tiếp (driver), tín hiệu kích, độ phân giải thì mới có thể lập trình điều khiển theo ý mình được.
- Kỹ năng phân tích. Đây là kỹ năng quan sát, suy luận, xây dựng lưu đồ giải thuật, lường trước các khả năng phát sinh trong quá trình vận hành hệ thống để xử lý. Rõ ràng nếu một người viết chương trình mà càng nắm vững về quy trình vận hành thì hệ thống sẽ càng ít sai sót khi làm việc. Kỹ năng này sẽ nâng dần theo thời gian.
- Kỹ năng sử dụng máy tính. Ngoài các kỹ năng trên, việc sử dụng máy tính thành thạo, biết tìm tài liệu từ internet nhanh chóng, biết sâu một ngôn ngữ lập trình nào đó cũng hỗ trợ rất tốt trong nghiên cứu vi xử lý. Đây là kỹ năng do điều kiện kinh tế mang lại, ai có máy tính sẽ có điều kiện hơn, nhưng ai chưa có cũng không phải bận tâm nhiều, ta tìm cơ hội trao dồi tại các phòng net, phòng thực hành của trường. (Tiếc là những người có ý thức về điều này không nhiều).
Thứ ba: Tinh thần cầu tiến, thẳng thắng và tự tin. Mạnh dạn hỏi những gì chưa biết. Thừa nhận những gì yếu kém, để biết đường mà khắc phục. Chia sẻ những gì mình biết.
Viết đến đây tôi thấy học vi xử lý đòi hỏi nhiều quá. Tuy nhiên, theo tôi, bắt đầu học vi xử lý chỉ cần kiến thức cơ bản về mạch điện tử là đủ. Còn vi xử lý ta sẽ học và làm dựa trên mạch điện tử. Tại sao tôi dám cam đoan như vậy ? Tôi từng dạy lớp nghề, học viên chỉ mới lớp 9, nghỉ học rất lâu rồi mà vẫn học tốt, làm tốt, lập trình phà phà cho con vi xử lý như sinh viên đại học nếu không nói là tốt hơn.
Tôi viết bài này với ý định sẽ viết tiếp một loạt bài theo trình tự từ dễ đến khó giúp các bạn tiếp cận với dòng vi xử lý (chắc là tôi sẽ chọn PIC để viết) một cách nhẹ nhàng, trên cơ sở tài nguyên của PIC, phân tích mạch điện, sau đó là code tham khảo có chú giải bằng ngôn ngữ C. Đối tượng điều khiển sẽ gồm (Led, relay, transistor, led 7 đoạn, led ma trận, giao tiếp IC giải mã, giao tiếp IC ghi dịch, giao tiếp IC chốt, giao tiếp RAM ngoài, bàn phím, nút nhấn, Động cơ bước, RTC, EEPROM, LCD, chip I2C (ROM hoặc cảm biến), max232 giao tiếp máy tính qua serial port, chip SPI, cảm biến (ADC), ngắt, điều rộng xung PWM, 8255A, LPT, USB, SD card, mtouch. ) Còn những phần cao cấp hơn có thể tôi chưa nghiên cứu tới , nhưng với những gì liệt kê trên tôi nghĩ cũng tạm đủ cho các bạn dùng làm cần câu cơm hay chí ít hiểu và thực sự làm đồ án tốt nghiệp.
Tôi biết rằng khối lượng công việc mình đưa ra trên là rất lớn nhưng không vượt quá khả năng của mình, rất mong các bạn tham gia diễn đàn động viên và trao đổi để chúng ta cùng tạo một khối kiến thức chung và cùng nhau tiến bộ.
[You must be registered and logged in to see this link.]
Vậy vi điều khiển là cái gì mà được dùng nhiều thế ?
Theo một số người (đặc biệt là sinh viên) việc học môn "Vi xử lý" hay vi điều khiển là một việc cực kỳ gian khổ, đến nổi gọi "Vi xử lý" thành "vi xử bắn" vì học hoài mà không hiểu, thi hoài mà không đậu, khi đã đậu thì không biết vì sao mình đậu. Đó là học, còn khi làm đồ án hay thực hành thì làm hoài mà không chạy, viết chương trình chỉnh sửa hoài vẫn sai hoài, khi mạch đã chạy thì cũng không hiểu vì sao nó chịu chạy và khi đang chạy thì nó "im ru" cũng chẳng biết tại sao ?!?!?!
Vậy, có phải là con vi xử lý nó hay "tửng tửng", xin thưa với các bạn 100% là không, môn "Vi xử lý" vô tội, con vi xử lý cũng không có tội. Vậy tại sao lại có chuyện trên ?
Thưa các bạn, cái gì cũng có nguyên nhân hết đó, ngày xưa tui cũng từng khổ sở với con vi xử lý, từng thức đêm thức hôm, mất ăn mất ngủ với nó, nhưng dần dần tui mới thấy là lỗi tại mình hết trơn hết trọi. Nhân đây xin mạn phép trình bày một số ý kiến cá nhân mà tôi cho rằng có thể có chút ích cho các bạn khi học hay làm với vi xử lý.
Thứ nhất: Đừng nghĩ rằng vi xử lý là khó.
Từ đầu đến giờ tui không nói cá biệt một dòng vi xử lý nào hết trơn hết trọi, bởi vì theo tui thấy dòng nào cũng vậy, gần giống nhau hết từ họ 80xx đến Atmega của Atmel, Philips, các dòng PIC của Microchip (nhưng xin nói thật tui chưa có cơ hội viết code cho các con chip của Motorolar). Có thể mỗi loại có một ngôn ngữ, một vài ưu điểm nổi bật nhưng về căn bản chúng giống nhau ở chổ là "Biểu gì làm nấy", mà đã biểu gì làm nấy thì không thể nói là “khó bảo” được.
Thứ hai: Cần chuẩn bị thật tốt kiến thức liên quan, gồm:
- Kỹ năng thiết kế mạch điện tử. Không có kiến thức này thì "bó tay". Bạn thử nghĩ xem một người có óc thông minh nhưng không biết cách sử dụng tay, chân, miệng,... thì có khai thác được bộ óc đó không ? Hay sẽ điều khiển tứ chi làm việc tầm bậy. Nhớ rằng vi xử lý chỉ đưa ra ngoài các tín hiệu logic với cấp điện áp thấp và công suất cũng thấp, ta sử dụng tín hiệu này như thế nào lại là việc khác. Do đó, nếu chưa nắm được cơ chế làm việc của máy, nguyên lý hoạt động của mạch thì đừng nghĩ tới vi xử lý. Theo kinh nghiệm của tôi, sinh viên làm về vi xử lý không được thì 90% là thiết kế mạch sai, ta hỏng kiến thức nền mà không biết, chỉ chăm chăm vào vi xử lý và than trời sao khó quá. Như vậy, nếu thiết kế hay làm theo mạch có sẵn ta cũng phải nắm thật vững về nó rồi hãy làm, hãy lập trình. Nhiều khi ta mất căn bản mà cứ đổ tội cho vi xử lý là khó quá cũng tội nghiệp nó.
Tôi xin nói một ví dụ về sinh viên của ta học và làm như sau: Có một nhóm sinh viên làm đồ án vi xử lý, các anh này tìm đâu đó trên mạng một mạch trùng với đề tài , ngon ăn quá thực hiện ngay mà chẳng hề có một chút suy nghĩ hay phân tích mạch gì cả. Làm xong mạch không chạy tự quy cho mình cái tội "làm mạch sai" (người ta làm phần cứng và viết code sẵn chạy tốt trên mạng mà), thế là hì hà hì hục làm lại, làm xong vẫn không chạy, tình cờ thấy có một đường mạch vẽ nhầm, mừng quá làm lại lần thứ ba _ vẫn không chạy. Lúc này, chịu khó ngồi lại xem thật kỹ coi mình có làm sai ở đâu so với người ta không (không phải ngồi phân tích để hiểu đâu nghen), giống hoàn toàn nhưng vẫn không chạy, nghi ngờ vi xử lý hư, chạy ra chợ Nhật Tảo mua thêm một con nữa nhưng tình hình không tiến triển. Vậy tại sao ? Vác mạch lên hỏi thầy, thầy hỏi lại vài câu vài câu thấy các anh này chẳng nắm gì về mạch điện tử cả, làm đúng làm sai gì cũng chẳng biết chỉ biết “làm theo”. Hóa ra mạch không sai, chẳng qua là phần cứng với phần mềm không tương thích, chỉ cần đổi mức áp trong phần mềm là xong. Tiếc rằng tôi đi dạy gần 10 năm nay, số sinh viên dạng như trên gặp ngày càng nhiều. (Phải chăng đây là mặt trái của Internet ?).
- Kiến thức về khí cụ điện, máy điện. Đây là đối tượng sẽ thực thi công việc, ta phải nắm rõ để lựa chọn thiết bị, linh kiện , mạch giao tiếp phù hợp. Không có kiến thức về các loại phụ tải, các thiết bị công suất thì làm sao điều khiển chúng, kéo theo có thể làm hỏng chúng hoặc làm hư mạch điều khiển, nguồn. Ví dụ, dùng vi điều khiển điều khiển động cơ bước thì chí ít cũng phải biết loại nào, cấu tạo ra sao,mạch giao tiếp (driver), tín hiệu kích, độ phân giải thì mới có thể lập trình điều khiển theo ý mình được.
- Kỹ năng phân tích. Đây là kỹ năng quan sát, suy luận, xây dựng lưu đồ giải thuật, lường trước các khả năng phát sinh trong quá trình vận hành hệ thống để xử lý. Rõ ràng nếu một người viết chương trình mà càng nắm vững về quy trình vận hành thì hệ thống sẽ càng ít sai sót khi làm việc. Kỹ năng này sẽ nâng dần theo thời gian.
- Kỹ năng sử dụng máy tính. Ngoài các kỹ năng trên, việc sử dụng máy tính thành thạo, biết tìm tài liệu từ internet nhanh chóng, biết sâu một ngôn ngữ lập trình nào đó cũng hỗ trợ rất tốt trong nghiên cứu vi xử lý. Đây là kỹ năng do điều kiện kinh tế mang lại, ai có máy tính sẽ có điều kiện hơn, nhưng ai chưa có cũng không phải bận tâm nhiều, ta tìm cơ hội trao dồi tại các phòng net, phòng thực hành của trường. (Tiếc là những người có ý thức về điều này không nhiều).
Thứ ba: Tinh thần cầu tiến, thẳng thắng và tự tin. Mạnh dạn hỏi những gì chưa biết. Thừa nhận những gì yếu kém, để biết đường mà khắc phục. Chia sẻ những gì mình biết.
Viết đến đây tôi thấy học vi xử lý đòi hỏi nhiều quá. Tuy nhiên, theo tôi, bắt đầu học vi xử lý chỉ cần kiến thức cơ bản về mạch điện tử là đủ. Còn vi xử lý ta sẽ học và làm dựa trên mạch điện tử. Tại sao tôi dám cam đoan như vậy ? Tôi từng dạy lớp nghề, học viên chỉ mới lớp 9, nghỉ học rất lâu rồi mà vẫn học tốt, làm tốt, lập trình phà phà cho con vi xử lý như sinh viên đại học nếu không nói là tốt hơn.
Tôi viết bài này với ý định sẽ viết tiếp một loạt bài theo trình tự từ dễ đến khó giúp các bạn tiếp cận với dòng vi xử lý (chắc là tôi sẽ chọn PIC để viết) một cách nhẹ nhàng, trên cơ sở tài nguyên của PIC, phân tích mạch điện, sau đó là code tham khảo có chú giải bằng ngôn ngữ C. Đối tượng điều khiển sẽ gồm (Led, relay, transistor, led 7 đoạn, led ma trận, giao tiếp IC giải mã, giao tiếp IC ghi dịch, giao tiếp IC chốt, giao tiếp RAM ngoài, bàn phím, nút nhấn, Động cơ bước, RTC, EEPROM, LCD, chip I2C (ROM hoặc cảm biến), max232 giao tiếp máy tính qua serial port, chip SPI, cảm biến (ADC), ngắt, điều rộng xung PWM, 8255A, LPT, USB, SD card, mtouch. ) Còn những phần cao cấp hơn có thể tôi chưa nghiên cứu tới , nhưng với những gì liệt kê trên tôi nghĩ cũng tạm đủ cho các bạn dùng làm cần câu cơm hay chí ít hiểu và thực sự làm đồ án tốt nghiệp.
Tôi biết rằng khối lượng công việc mình đưa ra trên là rất lớn nhưng không vượt quá khả năng của mình, rất mong các bạn tham gia diễn đàn động viên và trao đổi để chúng ta cùng tạo một khối kiến thức chung và cùng nhau tiến bộ.
[You must be registered and logged in to see this link.]
hoangnhanpro- Admin
- Họ & Tên : Phạm Hoàng Nhân
Giới tính :
Cung Hoàng Đạo :
Con Giáp :
Tuổi (Age) : 33
Ngày Sinh (Birthday) : 17/05/1991
Ngày Gia Nhập : 04/10/2011
Đến Từ : Hoàng Nhân Pro
Sở Thích : Điện Tử - Tin Học
Công Việc : Đang Thất Nghiệp
Tổng số bài gửi : 575
Điểm (Point) : 6774
Danh Tiếng (Reputation) : 4
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
2nd March 2013, 22:37 by luuvu_01
» cFosSpeed 8.03 build 2010 - Đăng ký bằng key thành công
21st January 2013, 15:25 by hoangnhanpro
» Share công cụ chỉnh sửa file MANIFEST.MF online
8th January 2013, 13:35 by hoangnhanpro
» Share công cụ tạo Logo Team + Tết Online cực đẹp
8th January 2013, 13:35 by hoangnhanpro
» [hot] SMS chúc mừng năm mới 2013, sms chuc nam moi, tin nhan chuc mung nam moi
28th December 2012, 01:31 by hoangnhanpro
» Opera Mini Mod Pro v4.21.25 Hack Phone and No Hack Phone
26th December 2012, 17:02 by hoangnhanpro
» [Hot] Những Bộ SMS Noel 2012 Cực Hot - SMS Xep Hinh Chuc Ngay Noel
13th December 2012, 04:54 by hoangnhanpro
» KIS 2012-2013 TRIAL RESET (Easy) - Trial Reset KIS 2012-2013 dễ dàng nhất
13th December 2012, 04:50 by hoangnhanpro
» [TESTED-002] Lịch vạn niên LCD (full code)
13th December 2012, 04:38 by hoangnhanpro
» [TESTED-001] Điều khiển thiết bị điện qua máy tính
13th December 2012, 04:34 by hoangnhanpro
» [Thông báo] Diễn đàn đang được cũng cố và sửa chữa lại các link bị lỗi....
13th December 2012, 04:08 by hoangnhanpro
» Share Zip ảnh Hot Girl 185 Pic 31,6 MB + Link URL
10th December 2012, 12:10 by hoangnhanpro
» Tuyển tập Girl xinh Kute - Part 18
10th December 2012, 11:41 by hoangnhanpro
» [VIP] Đồ án [DA094] Lịch vạn niên hiển thị LCD
25th November 2012, 19:38 by hoangnhanpro
» [VIP] Đồ án [DA093] Ứng dụng RF điều khiển Robot
25th November 2012, 19:36 by hoangnhanpro