Ctrl + A hoặc Home : chuyển con trỏ về đầu dòng. Ctrl + E hoặc End: Chuyển con trỏ đến cuối dòng. BackSpace: Xoá ký tự bên trái con trỏ. Esc: xoá dòng lệnh. Ctrl + K : Xoá từ vị trí con trỏ đến cuối dòng. Ctrl + C : Dừng chương trình đang thực hiện. Clc : lệnh xoá màn hình. Clf: Lệnh xoá màn hình đồ hoạ. Input: lệnh nhập dữ liệu vào từ bàn phím. Demo: lệnh cho phép xem các chương trình mẫu. Help: lệnh cho phép xem phần trợ giúp. Ctrl – c: Dừng chương trình khi nó bị rơi vào trạng thái lặp không kết thúc.
Trang 1Arduino Uno.
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm
Arduino Uno là sử dụng chip Atmega328 Nó có 14 chân digital I/O, 6 chân đầu vào (input) analog, thạch anh dao động 16Mhz Một số thông số kỹ thuật như sau :
Điện áp cấp nguồn 5V
Điện áp đầu vào (input) (kiến
Điện áp đầu vào(giới hạn) 6-20V
Số chân Digital I/O 14 (có 6 chân điều chế độ rộng xung PWM)
Số chân Analog (Input ) 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32KB (ATmega328) với 0.5KB sử dụngbootloader
2 Sơ đồ chân của Arduino.
Hình 1: Arduino Uno.
a) USB (1)
Arduino sử dụng cáp USB để giao tiếp với máy tính Thông qua cáp USB chúng ta
1
Trang 2có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho
Arduino
b) Nguồn ( 2 và 3 )
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài thông
qua jack cắm 2.1mm ( cực dương ở giửa ) hoặc có thể sử dụng 2 chân Vin và GND để cấp nguồn cho Arduino
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt Chúng ta có thể cấp
một áp lớn hơn tuy nhiên chân 5V sẽ có mực điện áp lớn hơn 5 volt Và nếu sử dụng nguồn lớn hơn 12 volt thì sẽ có hiện tượng nóng và làm hỏng bo mạch Khuyết cáo các bạn nên dùng nguồn ổn định là 5 đến dưới 12 volt
Chân 5V và chân 3.3V (Output voltage) : các chân này dùng để lấy nguồn ra từ nguồn
mà chúng ta đã cung cấp cho Arduino Lưu ý : không được cấp nguồn vào các chân này vì
sẽ làm hỏng Arduino
GND: chân mass
c) Chip Atmega328
Chip Atmega328 Có 32K bộ nhớ flash trong đó 0.5k sử dụng cho bootloader Ngoài
ra còn có 2K SRAM, 1K EEPROM
d) Input và Output ( 4, 5 và 6)
Arduino Uno có 14 chân digital với chức năng input và output sử dụng các hàm
pinMode(), digitalWrite() và digitalRead() để điều khiển các chân này tôi sẽ đề cập chúng
ở các phần sau
Cũng trên 14 chân digital này chúng ta còn một số chân chức năng đó là:
Serial : chân 0 (Rx ), chân 1 ( Tx) Hai chân này dùng để truyền (Tx) và nhận (Rx)
dữ liêu nối tiếp TTL Chúng ta có thể sử dụng nó để giao tiếp với cổng COM của một số thiết bị hoặc các linh kiện có chuẩn giao tiếp nối tiếp
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có dấu “~”
là các chân PWM chúng ta có thể sử dụng nó để điều khiển tốc độ động cơ, độ sáng của đèn…
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này hỗ trợ giao tiếp theo
chuẩn SPI
I2C: Arduino hỗ trợ giao tiếp theo chuẩn I2C Các chân A4 (SDA) và A5 (SCL) cho
phép chúng tao giao tiếp giửa Arduino với các linh kiện có chuẩn giao tiếp là I2C
e) Reset (7): dùng để reset Arduino
Trang 3AT89C51 is an 8-bit microcontroller and belongs to Atmel's 8051 family ATMEL 89C51 has 4KB of Flash programmable and erasable read only memory (PEROM) and 128 bytes of RAM It can be erased and program to a maximum of 1000 times
In 40 pin AT89C51, there are four ports designated as P1, P2, P3 and P0 All these ports are 8-bit
bi-directional ports, i.e., they can be used as both input and output ports Except P0 which
needs external pull-ups, rest of the ports have internal pull-ups When 1s are written to these port pins, they are pulled high by the internal pull-ups and can be used as inputs These ports are also bit addressable and so their bits can also be accessed individually
Port P0 and P2 are also used to provide low byte and high byte addresses, respectively, when connected to an external memory Port 3 has multiplexed pins for special functions like serial communication, hardware interrupts, timer inputs and read/write operation from external memory AT89C51 has an inbuilt UART for serial communication It can be programmed to operate at different baud rates Including two timers& hardware interrupts, it has a total of six interrupts
Pin Diagram:
3
Trang 4Pin Description:
Trang 5Pin No Function
1
8 bit input/output port (P1) pins
2
3
4
5
6
7
8
10
11
12
13
14
15
16
17
18
Quartz crystal oscillator (up to 24 MHz) 19
21
8 bit input/output port (P2) pins /
High-order address bits when interfacing with external memory
22
23
24
25
26
27
28
Program pulse input during Flash programming
31 External Access Enable; Vcc for internal program executions
Programming enable voltage; 12V (during Flash programming) 32
8 bit input/output port (P0) pins Low-order address bits when interfacing with external memory
33
34
35
36
37
38
39
Trang 7ĐẶC TÍNH CỦA IC 89C51:
- Có khả năng 1000 chu kì ghi xóa
- Tần số hoạt động 0Hz-24MHz
- 3 mức khóa bộ nhớ lập trình
- 128 bytes Ram nội 4 port xuất nhập I/O 8 bit
- 2 bộ time/counter 16 bit
- Giao tiến nối tiến bằng phần cứng, 64 Kb vùng nhớ mã ngoài, 64 Kb vùng nhớ dữ liệu
- 4 chu kì máy cho hoạt động nhân hoặc chia
- Có các chế độ nghỉ và chế độ nguồn giảm
CẤU TẠO BÊN TRONG CỦA IC 89C51:
- Thành phần chính của vi điều khiển 89c51 chính là CPU bên trong CPU có :
+ Thanh ghi tích lũy A
+ Thanh ghi tíc lũy B dùng cho phép nhân chia
+ Đơn vị logic học ALU
+ 4 bank thanh ghi
+ Bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian và logic
+ Con trỏ ngăn xếp
ỨNG DỤNG CỦA IC 89C51:
- Dùng để điều khiển các bóng Led của biển quảng cáo
- Ưu tiên sử dụng làm biển quảng cái ngoài trời, ở nơi khó tháo lắp
- Dùng để điều khiển bảng hiển thị thông tin nơi công cộng
……
7
Trang 8Đây là một dòng vi điều khiển khá phổ biến, đầy đủ các chức năng, phù hợp với các ứng dụng
cơ bản Mình khuyến khích các bạn nên bắt đầu với dòng vi điều khiển này vì tài liệu có rất nhiều
Một số đặc điểm của PIC16F877A:
- PIC 16F877A là loại vi điều khiển 8bit tầm trung của hãng microchip
- PIC 16F877A có kiến trúc Havard, sử dụng tập lệnh kiểu RISC (Reduced Instruction Set Computer) với chỉ 35 lệnh cơ bản
- Tất cả các lệnh được thực hiện trong một chu kì lệnh ngoại trừ các lệnh rẽ nhánh
- Sơ đồ chân với chip loại cắm 40 chân
Các chức năng cơ bản:
Trang 9Nạp chương trình cho PIC: Để nạp được chương trình cho PIC có 2 cách:
- Nạp trực tiếp dùng mạch nạp: Có 2 loại mạch nạp hay được sử dụng đó là PICKIT và BURNE Mạch nạp Pickit là hàng chính hãng, độ ổn định cao tuy nhiên chỉ nạp được cho các dòng PIC và DSPIC Mạch BurnE thì có thể nạp cho rất nhiều loại khác nhau cả PIC và AVR Tuy nhiên là hàng việt nam sản xuất, độ ổn định có lẽ không cao bằng Cách nạp bằng PICKIT2 các bạn có thể tham khảo Video sau:
• OSC1/CLKI: (13) là ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận xung clock bên ngoài
• OSC2/CLKO: (14) ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock
• MCLR /VPP: (1) ngõ vào reset tích cực mức thấp/ ngõ vào nhận điện áp lập trình
• RA0/AN0: (2) xuất nhập số/ ngõ vào tương tự
• RA1/AN1: (3) xuất nhập số/ ngõ vào tương tự
• RA2/AN2/VREF-/CVREF: (4) xuất nhập số/ ngõ vào tương tự/ ngõ vào điện áp chuẩn của
bộ A/D, điện áp tham chiếu VREF ngõ ra bộ so sánh
• RA3/AN3/VREF+: (5) xuất nhập số/ngõ vào tương tự kênh thứ 3/ ngõ vào điện áp chuẩn cao của bộ A/D
• RA4/TOCKI/C1OUT: (6) xuất nhập số/ngõ vào xung clock bên ngoài cho Timer 0/ ngọ ra
bộ so sánh 1
• RA5/AN4/ SS/C2OUT: (7) xuất nhập số/ ngõ vào tương tự kênh thứ 4/ ngõ vào chọn lựa SPI phụ/ ngõ ra bộ so sánh 2
• RB0/INT: (33) xuất nhập số/ngõ vào nhận tín hiệu ngắt ngoài
• RB1: (34) xuất nhập số
• RB2: (35) xuất nhập số
• RB3/PGC: (36) xuất nhập số
• RB4 (37), RB5: (38): xuất nhập số
• RB6/PGC: (39) xuất nhập số/ mạch gõ rối và xung clock lập trình ICSP
• RB7/PGD: (40) xuất nhập số/ mạch gõ rối và dữ liệu lập trình ICSP
• RC0/T1OCO/T1CKI (15) xuất nhập số/ ngõ vào bộ dao động Timer1/ ngõ vào xung clock bên ngoài Timer 1
• RC1/T1OSI/CCP2: (16) xuất nhập số/ ngõ vào bộ dao động Timer 1/ ngõ vào bộ dao động Timer 1/ ngõ vào Capture 2, ngõ ra compare1, ngõ ra PWM1
• RC2/CCP1: (17) xuất nhập số/ ngõ vào Capture 1/ ngõ ra compare 1/ ngõ ra PWM1
• RC3/SCK/SCL: (18) xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra ở chế độ SPI
• RC4/SDI/SDA: (23) xuất nhập số/ dữ liệu vào SPI/ xuất nhập dữ liệu I2C
• RC5/SDO: (24) xuất nhập số/ dữ liệu ra SPI
• RC6/TX/CK: (25) xuất nhập số/ truyền bất đồng bộ USART/ xung đồng bộ USART
• RC7/RX/DT: (26) xuất nhập số/ nhận bất đồng bộ USART/ dữ liệu đồng bộ USART
• RD0/PSP0 (19), RD1/PSP1 (20), RD2/PSP2 (21), RD3/PSP3 (22), RD4/PSP4 (27), RD5/PSP5 (28), RD6/PSP6 (29), RD7/PSP7 (30): xuất nhập số/ dữ liệu port tới song song
• RE0/ RD/AN5: (8) xuất nhập số/ điều khiển port tới song song/ ngõ vào tương tự
9
Trang 10• RE1/ WR/AN6: (9) xuất nhập số/ điều khiển ghi port tới song song/ ngõ vào tương tự kênh thứ 6
• RE2/ CS /AN7: (10) xuất nhập số/ chip lựa chọn điều khiển port tới song song/ ngõ vào tương tự kênh thứ 7
• VDD (11, 32), VSS (12, 31): các chân nguồn của PIC
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit.
Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte Số PORT I/O là 5 với 33 pin I/O.
Các đặc tính ngoại vi bao gồmcác khối chức năng sau:
- Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
- Hai bộ Capture/so sánh/điều chế độ rông xung.
- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
- Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR,
CS ở bên ngoài.
Các đặc tính Analog:
- 8 kênh chuyển đổi ADC 10 bit.
- Hai bộ so sánh.
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
- Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
Trang 11- Chế độ Sleep.
- Có thể hoạt động với nhiều dạng Oscillator khác nhau
11