Tìm kiếmĐăng ký thành viên  >  Đăng nhập    Liên hệ     
  

Trang chủ



Thảo luận



 SỰ KIỆN ĐẶC BIỆT TẠI VAGAM/ EVENTS & SEMINARS
 Thông tin chung
 Điện – điện tử: căn bản và các chuyên đề
 Cảm biến và cơ cấu chấp hành
 Lập trình vi xử lý, vi điều khiển và điều khiển logic
- Vi điều khiển 89c51
- Vi điều khiển AVR.
- Vi điều khiển PIC.
- Các trao đổi về Vi điều khiển khác
 Giao tiếp máy tính - truyền dữ liệu - xử lý ảnh số
 Phần mềm và ngôn ngữ lập trình trong kỹ thuật
 Điều khiển tự động
 Thiết kế và mô phỏng hệ thống cơ khí
 Các chuyên đề ÔTÔ, XE MÁY - ROBOT - AUTOMATION
 Anh văn kỹ thuật
 Chia sẻ tài liệu cùng các thành viên
 Các chủ đề thảo luận chung
 Mã nguồn mở



Tài liệu tham khảo









http://hocdelam.org

http://labview.hocdelam.org

http://vagam.dieukhien.net/index.php?tpid=5&catid=10&chapid=83

http://vagam.dieukhien.net/index.php?tpid=5&catid=24&chapid=75

http://vagam.dieukhien.net/index.php?tpid=5&catid=5&chapid=33

http://vagam.dieukhien.net/index.php?arid=37

http://vagam.dieukhien.net/discuss.php?thid=148&pagenum=1

http://vagam.dieukhien.net/discuss.php?thid=456

http://vagam.dieukhien.net/discuss.php?thid=497&pagenum=1

http://vagam.dieukhien.net/discuss.php?ftopid=12&fcatid=44

http://www.dieukhien.net

http://dieukhientudong.com

http://suno.vn


http://spkt.net/diendan/

http://sanpham.hocdelam.org

http://robot.kut.ac.kr

http://labview.hocdelam.org/vn/Nghien-cuu/Hoi-thao-khoa-hoc.nso

http://www.phone4vn.com




Bài 1 - Lập trình cho led -nút bấm

| 1 | 2 | 3 | > Tiếp >> Cuối 
 giotdang | 17:40:14 27-12-07 | Posts: 191 1
Tips: bạn phải đăng nhập mới thấy các Video hướng dẫn bài này

Đâ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.


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 duy nhấ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.7

Chú ý :
đị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.5

Trong bài này PORT B có 2 biến đầu ra là PB5 và PB6
DDRB=0b00110000 =0x30
Khở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ên ta có PORTB=0b10000000=0x80;
Sau khi định nghĩa , nếu bạn den_do=1; đèn led đỏ sẽ tắt
den_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à us
delay_ms(time);
delay_us(time);


c code
  1.  
  2. /*****************************************************
  3. This program was produced by the
  4. CodeWizardAVR V1.24.8d Professional
  5. Automatic Program Generator
  6. © Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
  7. http://www.hpinfotech.com
  8.  
  9. Project :
  10. Version :
  11. Date : 12/27/2007
  12. Author : LENGOCTUAN
  13. Company : VAGAM
  14. Comments:
  15.  
  16.  
  17. Chip type : ATmega16
  18. Program type : Application
  19. Clock frequency : 8.000000 MHz
  20. Memory model : Small
  21. External SRAM size : 0
  22. Data Stack size : 256
  23. *****************************************************/
  24.  
  25. #include <mega16.h>
  26. #include <delay.h>
  27.  
  28. // Declare your global variables here
  29.  
  30. #define den_xanh PORTB.5
  31. #define den_do PORTB.6
  32. #define nut_bam PINB.7
  33.  
  34. void main(void)
  35. {
  36.  
  37. // Port B initialization
  38. // Func7=In Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
  39. // State7=T State6=0 State5=0 State4=T State3=T State2=T State1=T State0=T
  40. PORTB=0x80;
  41. DDRB=0x30;
  42.  
  43.  
  44.  
  45. while (1)
  46. {
  47. // Place your code here
  48. //khi nut bam chua duoc bam logic nut_bam=1
  49. 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 sang
  57. else
  58. {den_xanh=1;den_do=0;}
  59. };
  60. }
  61.  
  62.  
  63.  









giotdang1985@yahoo.com

 phongdailoan | 19:59:01 27-12-07 | Posts: 252
Video bị lỗi rồi bác ơi! giúp tôi với! cảm ơn