Bài Thảo Luận.ppt
-
Upload
long-trinh -
Category
Documents
-
view
35 -
download
3
Transcript of Bài Thảo Luận.ppt
stt Họ và tên Đánh giá1 Đặng Văn Khuê Khá2 Nguyễn Hữu Khương Khá3 Đào Duy Kiên Tốt4 Nguyễn Doãn Lâm Khá5 Tống Văn Liêm Tốt6 Lê Tuấn Linh Khá7 Đỗ Thành Long Khá8 Lê Vĩnh Long Khá9 Nguyễn Hoàng Long Khá10 Nguyễn Phan Long Tốt11 Trịnh Quang Long(25/05) Tốt
Phần 1. Khái niêm về vi điều khiển Phần 2. Cấu tạo và nguyên lý hoạt động của mạch Phần 3. Lập trình cho vi điều khiển Phần 4. Mục đích sử dụng và mở rộng mạch
1,Khái niệm:Bộ Vi xửlý có khảnăng vượt bậc so với các hệthống khác vềkhảnăng tính toán, xửlý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả đối với các bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xửlý cần cân nhắc. Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau. Các khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xửlý thì mới thực hiện được công việc. Để kết nối các khối này đòi hỏi người thiết kế phải hiểu biết tinh tường vềcác thành phần vi xửlý, bộ nhớ, các thiết bị ngoại vi. Hệ thống được tạo ra khá phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng cho các hệ thống nhỏ.
Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớvà một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller-Vi điều khiển.
Một số đặc điểm khác nhau giữa vi xử lí và VĐK: Vềphần cứng: VXL cần được ghép thêm các thiết bị ngoại vi bên
ngoài như bộ nhớ, và các thiết bị ngoại vi khác, … để có thể tạo thành một bản mạch hoàn chỉnh. Đối với VĐK thì bản thân nó đã là một hệ máy tính hoàn chỉnh với CPU, bộnhớ, các mạch giao tiếp, các bộ định thời và mạch điều khiển ngắt được tích hợp bên trong mạch.
Vềcác đặc trưng của tập lệnh: Do ứng dụng khác nhau nên các bộVXL và VĐK cũng có những yêu cầu khác nhau đối với tập lệnh của chúng. Tập lệnh của các VXL thường mạnh về các kiểu định địa chỉ với các lệnh cung cấp các hoạt động trên các lượng dữ liệu lớn như 1byte, ½ byte, word, double word,...Ở các bộ VĐK, các tập lệnh rất mạnh trong việc xử lý các kiêu dữ liệu nhỏ như bit hoặc một vài bit. Do VĐK cấu tạo về phần cứng và khả năng xử lí tốt hơn nhiều soi với VXL nên giá thành của VXL cũng rẻ hơn nhiều. Tuy nhiên nó vẫn đủ khả năng đáp ứng được tất cảcác yêu cầu của người dùng.
Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot có chức năng đơn giản, trong máy giặt, ôtô v.v...
2,PHÂN LOẠI i. Độdài thanh ghi: VĐK 8bit, 16bit, hay 32bit.... ii. Kiến trúc CISC và RISC : VXL hoặc VDK CISC là VDK có tập lệnh phức tạp. Các VDK này có
một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễdàng hơn khi viết chương trình. VDK RISC là VDK có tập lệnh đơn giản. Chúng có một số lương nhỏ các lệnh đơn giản. Do đó, chúng đòi hỏi phần cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC. Tuy nhiên nó đòi hỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn.
iii. Kiến trúc Harvard và kiến trúc Vonneumann Kiến trúc Harvard sửdụng bộ nhớ riêng biệt cho chương trình và
dữliệu. Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn giản hơn Kiến trúc Vonneumann sử dụng chung bộ nhớcho chương trình và dữliệu. Điều này làm cho VĐK gọn nhẹ hơn, giá thành nhẹ hơn.
3, CẤU TRÚC TỔNG QUAN CỦA VDK: i. CPU: Là trái tim của hệ thống. Là nơi quản lí tất cảcác hoạt
động của VĐK. Bên trong CPU gồm: + ALU là bộ phận thao tác trên các dữ liệu + Bộ giải mã lệnh và điều khiển, xác định các thao tác
mà CPU cần thực hiện + Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực
thi +Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực
thi + Một tập các thanh ghi dùng để lưu thông tin tạm thời ii. ROM: ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn
dùng để chứa số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM
chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình.
iii. RAM: RAM là bộ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường
xử lý thông tin, lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.
iv. BUS: BUS là các đường dẫn dùng để di chuyển dữliệu. Bao
gồm: bus địa chỉ, bus dữliệu , và bus điều khiển v. Bộ định thời: Được sử dụng cho các mục đích chung
về thời gian. vi. Watchdog: Bộ phận dùng để reset lại hệthống khi hệ thống gặp “bất
thường”. vii. ADC: Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các
tín hiệu bên ngoài đi vào VDK thường ở dạng analog. ADC sẽchuyển tín hiệu này về dạng tín hiệu digital mà VDK có thể hiểu được.
- VDK MCS-51: 8031, 8032, 8051, 8052, ... - VDK ATMEL: 89Cxx, AT89Cxx51.. - VDK AVR Atmega… - VDK PIC 16C5x, 17C43... ………..
1.Linh kiện cấu tạo mạch: +Atmega16 dùng đọc xuất dữ liệu. +LM741: dùng làm bộ so sánh điện áp. +Relay: để đóng ngắt,tạo chiều quay +Led để cấp ánh sáng cho quang trở +các linh kiện: trở,tụ,biến trở,rơle,quang
trở,tranzitor
1.1,sơ lược về Atmega16:
Tổng quan về VĐK Atmega16: Tốc độ làm việc 16MPIS, với thạch anh 16 MHz. On_chip 2 cycle multipler. Bộ nhớ : ISP Flash với khả năng 10.000 lần ghi xóa, EEROM, RAM. Giao tiếp JTAG : Khả năng quét toàn diện theo chuẩn JTAG. Hỗ trợ khả năng Debug onchip Hỗ trợ lập trình Flash, EEROM, fuse… Lock bit qua giao tiếp JTAG Ngoại vi : Timer/ counter 8 bit với các chế độ : so sánh và chia tần
số. Timer/counter 16 bit với các chế độ : so sánh, chia tần
số, capture, PWM. Timer thời gian thực (Real time Clock) với bộ dao động
riêng biệt.
Các kênh PWM. Kênh biến đổi ADC 10 bit. Hỗ trợ giao tiếp I2C. Bộ giao tiếp nối tiếp lập trình được USART. Giao tiếp SPI. Watch_dog timer với bộ dao động on_chip riêng biệt. Những thuộc tính đặc biệt : Power on reset và Brown-out detection. Chế độ hiệu chỉnh bộ sai số cho bộ dao động RC on chip Các chế độ ngắt ngoài và trong đa dạng. 6 mode sleep : Idle, ADC noise reduction, tiết kiệm năng
lượng, power-down, standby, extended standby
2,mạch nguyên lý:
VCC
GND
R1
MT5MT1 MT3 MT6MT4MT2
MT1MT2MT3MT4MT5MT6RS
P1
P2
P1P2
RS
R1
VCC
PB0/T0/XCK1
PB1/T12
PB2/AIN0/INT23
PB3/AIN1/OC04
PB4/SS5
PB5/MOSI6
PB6/MISO7
PB7/SCK8
RESET9
XTAL212 XTAL113
PD0/RXD 14
PD1/TXD 15
PD2/INT0 16
PD3/INT1 17
PD4/OC1B 18
PD5/OC1A 19
PD6/ICP1 20
PD7/OC2 21
PC0/SCL 22
PC1/SDA 23
PC2/TCK 24
PC3/TMS 25
PC4/TDO 26
PC5/TDI 27
PC6/TOSC1 28
PC7/TOSC2 29
PA7/ADC733PA6/ADC634 PA5/ADC535PA4/ADC436 PA3/ADC337 PA2/ADC238PA1/ADC139PA0/ADC040
AREF 32
AVCC 30
U20
ATMEGA16
12
LDR1TORCH_LDR
12
LDR2TORCH_LDR
R310k
R410k
R510k
R610k
R710k
R810k
SW1
SW-SPST
12
LDR3TORCH_LDR
12
LDR4TORCH_LDR
R910k
R1110k
R1010k
R1210k
R1410k
R1310k
3
26
74 1 5
U1
741
3
26
74 1 5
U6
741
3
26
74 1 5
U3
741
3
26
74 1 5
U4
741
12
LDR5TORCH_LDR
12
LDR6TORCH_LDR
3
26
74 1 5
U7
741
3
26
74 1 5
U8
741R1510k
R1910k
R2010k
R2110k
R2210k
R2310k
SW1(COM)
RL112V
RL212V
+12v
+12v
Q1NPN
+12v
Q2NPN
R100
4k7R200
4k7
RL4
12V
RL3
12V
+12v
+12v
Q3
NPN
+12v
Q4
NPN
R500
4k7
R300
4k7
R1810k
3,nguyên lý hoạt động: Ta quy ước như sau:-2Led ngoài cùng là L1 và L6 dùng để đếm đã đi qua bao nhiêu vạch,từ đó sẽ điều khiển robot rẽ theo hướng đã định sẵn.-2Led trung tâm là L3 và L4 dùng để báo cho robot biết là đang ở vạch nào.-2Led ở giữa là L2 và L5(kết hợp vs L3,L4) dùng để căn chỉnh đường đi sao cho robot không bị đi ra ngoài vạch.Khi robot đang ở vạch đen thì ánh sáng phản chiếu từ L3,L4~=0 =>quang trở có điện trở lớn =>điện áp ở chân 6 của 741 sẽ bằng điện áp ở chân 2,nhưng chân 2 nối GND =>tín hiệu vào VĐK=0
Trường hợp ngược lại: Khi robot đang ở vạch trắng thì ánh sáng phản chiếu từ L3,L4~=1 =>quang trở có điện trở nhỏ =>điện áp ở chân 6 của 741 sẽ bằng điện áp ở chân 3, chân 2 nối Vcc =>tín hiệu vào VĐK=1
Ta đọc tín hiệu từ đầu vào ở PORTA(các giá trị 0,1) rồi từ đó điều khiển robot qua PORTC.
PINC.0 và PINC.1 điều khiển cho motor1, PINC.2 và PINC.3 điều khiển cho motor2
khi PINC.0=1 còn PINC.1=0 thì Q1 dẫn,Q2 ngắt =>Relay1 đóng,Relay2 vẫn mở =>motor1 quay thuận(theo chiều kim đồng hồ)
Ngược lại khi PINC.0=1 còn PINC.1=0 thì Q1 dẫn,Q2 ngắt =>Relay1 đóng,Relay2 vẫn mở =>motor1 quay ngược(ngược chiều kim đồng hồ)
Tương tự với motor2
Phần 4: ƯD dụng mạch ra ngoài thực tế.+ứng dụng: -điều khiển robo đi theo đường định sẵn(tùy chọn), có thể làm mạch thật.