Danh mục

Kết nối với AVR

Số trang: 25      Loại file: pdf      Dung lượng: 916.59 KB      Lượt xem: 6      Lượt tải: 0    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: 11,000 VND Tải xuống file đầy đủ (25 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài 1 - Lập trình cho led -nút bấmĐây là bài đầu tiên của loạt bài về AVR. Sau khi kết thúc bài đầu tiên bạn dễ dàng lập trinh input và output cho AVR. Tóm tắt : Lập trình điều khiển led bật tắt ,sử dụng cách định nghĩa PIN và PORT ,cách dùng thư viện delay.h của codevision.
Nội dung trích xuất từ tài liệu:
Kết nối với AVRBài 1 - Lập trình cho led -nút bấmĐây là bài đầu tiên của loạt bài về AVR. Sau khi kết thúc bài đầu tiên bạn dễ dànglập trinh input và output cho AVR.Tóm tắt : Lập trình điều khiển led bật tắt ,sử dụng cách định nghĩa PIN vàPORT ,cách dùng thư viện delay.h của codevision.Giới thiệu:Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0 1) từđó ta có 4 kiểu vào ra cho một chân của avr.Khác với 89 là chỉ có 2 trạng thái duynhất (0 1) . Đặc biệt nguồn từ chân của AVR đủ khoẻ để điều khiển Led trực tiếp(mA) còn 89 chỉ là vài uA .Để điều khiển các chân này chúng ta có 2 thanh ghi->PORTx :giá trị tại từng chân (0 – 1) có thể truy cập tới từng bit PORTx.n->DDRx : thanh ghi chỉ trạng thái của từng chân , vào hoặc là ra .Giá trị 1 là ra và0 là vào .Ví dụ 1 : Nhấp nháy lần lượt đèn xanh và đèn đỏ , khi ấn nút bấm chỉ có đèn đỏsáng.Phần cứng : đèn xanh PORTB.4 , đèn đỏ PORTB.5 , nút bấm PINB.7Chú ý :định nghĩa 1 chân là chân vào PIN x.x#define nut_bam PINB.7định nghĩa 1 chân là chân vào PORT x.x#define den_do PORTB.5Trong bài này PORT B có 2 biến đầu ra là PB5 và PB6DDRB=0b00110000 =0x30Khởi tạo chân PB7 cần được treo lên 5V , khi ấn nút bấm sẽ thông GND(0V) nênta có PORTB=0b10000000=0x80;Sau khi định nghĩa , nếu bạn den_do=1; đèn led đỏ sẽ tắtden_do=0; đèn sẽ sáng .( do cách thiết kế mạch đầu dương led nối 5V còn đầu âm nối vào VĐK)delay.h có 2 cách gọi là trễ theo ms và usdelay_ms(time);delay_us(time);1.2. /*****************************************************3. This program was produced by the4. CodeWizardAVR V1.24.8d Professional5. Automatic Program Generator6. © Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.7. http://www.hpinfotech.com8.9. Project :10. Version :11. Date : 12/27/200712. Author : LENGOCTUAN13. Company : VAGAM14. Comments:15.16.17. Chip type : ATmega1618. Program type : Application19. Clock frequency : 8.000000 MHz20. Memory model : Small21. External SRAM size : 022. Data Stack size : 25623. *****************************************************/24.25. #include 26. #include 27.28. // Declare your global variables here29.30. #define den_xanh PORTB.531. #define den_do PORTB.632. #define nut_bam PINB.733.34. void main(void)35. {36.37. // Port B initialization38. // Func7=In Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In39. // State7=T State6=0 State5=0 State4=T State3=T State2=T State1=T State0=T40. PORTB=0x80;41. DDRB=0x30;42.43.44.45. while (1)46. {47. // Place your code here48. //khi nut bam chua duoc bam logic nut_bam=149. if(nut_bam)50. {51. den_xanh=1;den_do=0;52. delay_ms(500);53. den_xanh=0;den_do=1;54. delay_ms(500);55. }56. //khi nut bam duoc an nut_bam=0 chi den do sang57. else58. {den_xanh=1;den_do=0;}59. };60. }61.62.63.Bài 2 - AVR – TimerĐặc tính:- Bao gồm các bộ timer 8bit 16 bit, thường có từ 3 – 4 bộ Timer- Có các kênh PWM (từ 4 đến 8 kênh tuỳ loại )- Bao gồm nhiều chế độ ngắt và PWM …- Có thể là một kênh đếm riêng biệt- Tự động xoá Timer trong chế độ so sánh(tự động nạp lại)- Có chế độ PWM- Tạo ra tần số- Đếm các dự kiện ngắt ngoài- Tạo ra các ngắt tràn và ngắt so sánh....IntroductionCác chế độ hoạt động của timer:Chế Độ Thông Thường:Đây là chế độ hoạt động đơn giản nhất của Timer .Bộ đếm sẽ liên tục đếm tăng lên cho đến khi vượtquá giá trị lớn nhất TOP và sau đó sẽ được khởi động lại tại giá trị Bottom.Trong các hoạt động thôngthường thì cờ tràn sẽ được thiết lập khi giá trị trong Timer đạt giá trị không và không bị xoá đi.Tuynhiên nếu mà ngắt tràn được chấp nhận thì cờ ngắt sẽ tự động bị xoá khi ngắt được thực hiện.Giá trịtrong Timer có thể được viết vào bất cứ lúc nàoChế Độ So Sánh (CTC):Đấy là chế độ mà giá trị trong Timer luôn được so sánh với giá trị trong thanh ghi ORC .Khi giá trịtrong Timer bằng giá trị trong thanh ghi ORC thì giá trị trong Timer sẽ bị xoá đi.Giá trị trong ORCđóng vai trò là giá trị TOP cho bộ đếm.Chế độ này cũng cho phép tạo ra tần số so sánh ở đầu ra.Tuynhiên trong chế độ này nếu giá trị mới ghi vào thanh ghi ORC mà nhỏ hơn giá trị tức thời của bộ đếmthì thì 1 so sánh sẽ bị lỡ, khi đó bộ đếm sẽ đếm đến giá trị lớn nhất sau đó rơi xuống giá trị 0 trước khiso sánh tiếp theo xuất hiện.Sơ đồ thời gian của chế độ CTCChế Độ Fast PWM:Cho phép tạo ra sóng với tần số cao.Sự khác biệt cơ bản giữa Fast PWM với các loại PWM khác là nóchỉ sử dụng 1 sườn dốc.Bộ đếm sẽ đếm từ Bottom đến Max sau đó khởi động lại từ bottom. Trong chếđộ không đảo đầu ra của chân so sánh OCx sẽ bi xoá khi có phép toán so sánh giữa TCNTx và thanhghi ORC là bằng nhau. Và sẽ được sét lên 1 khi giá trị đạt Bottom. Trong chế độ đảo ,đầu ra đảo sẽđược set lên 1 khi sự so sánh giữa thanh ghi ORC và giá trị trong Timer bằng nhau và sẽ bị xoá khi giátrị đạt Bottom.Trong cả hai trường hơp này tần số của chế đô Fast PWM đều gấp đôi so với chế độphase correct PWM sử dụng hai sườn dốcVới tần số cao này chế độ độ Fast PWM rất tốt cho các ứng dụng như ADC hay chỉnh lưu.Ngoài ravới tần số cao giúp làm giảm kích thước của thiết bị ngoài như cuộn dây tụ từ đó giúp làm giảm toànbộ chi phí cho hệ thốngSơ đồ dưới đây mô tả chu kỳ thời gian của chế độ:Biều đồ thời gian chế độ Fast PWMChế độ Phase correct PWM:Chế độ này hoạt động dựa trên hai sườn lên xuống.Bộ đếm sẽ đếm liên tục từ giá trị BOTTOM đếngiá trị MAX và sau đó từ giá trị MAX đến giá trị BOTTOM.Trong chế độ so sánh không đảo chân sosánh (OCx) sẽ bị xóa khi giá trị TCNTx bằng giá trị OCRx trong quá trình đếm lên và sẽ được setbằng 1 khi giá trị so sánh xuất hiện trong quá trình đếm xuống.Chế độ so sánh đảo thì các giá trị làngược lại.Với hoạt động hai sườn xung này thì chế độ này không tạo ra được tần số nhỏ như chế độmột sườn xung .Nhưng do tính ...

Tài liệu được xem nhiều: