2.2 Chức năng của từng khối Khối đầu vào: Gồm các công tắc để điều chỉnh các chế độ hoạt động của hệ thống.. Khối hiển thị: Hiển thị hoạt động của các thiết bị thông qua led 7 thanh
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
BỘ MÔN TỰ ĐỘNG HÓA XÍ NGHIỆP MỎ - DẦU KHÍ
ĐỒ ÁN MÔN HỌC
KỸ THUẬT VI ĐIỀU KHIỂN
Đề tài :
NGHIÊN CỨU VỀ VI ĐIỀU KHIỂN PIC VÀ ỨNG DỤNG TRONG
ĐIỀU KHIỂN LED 7 THANH
Giáo viên hướng dẫn: Ths Nguyễn Thế Lực
Nhóm sinh viên thực hiện
Hà Nội, 2017
Trang 2
Lời mở đầu
Ngày nay, khái niệm kỹ thuật số đã trở thành quen thuộc với nhiều người, bởi vì
sự phát triển của ngành kỹ thuật số này đã có ảnh hưởng rất lớn đến ngành kinh tế toàn cầu Có người đã nêu lên ý tưởng gọi nền kinh tế của thời đại chúng ta là “ nền kinh tế kỹ thuật số “, “số hóa” đã gần như vượt khỏi ranh giới của một thuật ngữ kỹ thuật Nhờ có
ưu điểm của xử lý số như độ tin cậy trong truyền dẫn, tính đa thích nghi và kinh tế của nhiều phần mềm khác nhau, tính tiện lợi trong điều khiển và khai thác mạng
Số hóa đang là xu hướng phát triển tất yếu của nhiều lĩnh vực kỹ thuật và kinh tế khác nhau Không chỉ trong lĩnh vực thông tin liên lạc và tin học Ngày nay, kỹ thật số đã
và đang thâm nhập mạnh mẽ vào Kỹ thuật điện tử, Điều khiển tự động, phát thanh truyền hình, y tế, nông nghiệp…và ngay cả trong các dụng cụ sinh hoạt gia đình
Ngay từ những ngày đầu khai sinh, kỹ thuật số nói riêng và ngành điện tử nói chung đã tạo ra nhiều bước đột phá mới mẽ cho các ngàng kinh tế khác và còn đảm bảo được yêu cầu của người dùng cả về chất lượng và dịch vụ Đồng thời kiến thức về kỹ thuật số là không thể thiếu đối với mỗi sinh viên, nhất là sinh viên điện tử
Và như mọi người nhận thấy rằng, ngày nay trật tự giao thông nước ta đang rối ren Vì vậy việc sử dụng đèn giao thông tại những giao lộ là rất cần thiết và để hiểu rõ hơn về nguyên lý hoạt động và muốn phát triển thêm về mô hình này, em đã chọn đề tài
cho báo cáo chuyên nghành là: “Nghiên cứu về vi điều khiển PIC và ứng dụng trong
điều khiển led 7 thanh”
Trong quá trình thực hiện đồ án môn học, với sự giúp đỡ tận tình của Th.S Nguyễn Thế Lực và các bạn trong lớp, nhóm chúng em cố gắng thiết kế sao cho mô hình hoạt động là hoàn thiện nhất, ổn định nhất Tuy nhiên do kiến thức còn hạn chế và kinh
nghiệm làm việc không được nhiều nên sản phẩm làm ra còn gặp nhiều thiếu sót mong được sự thông cảm của quý thầy cô Chúng em chân thành cảm ơn
Chương 1 NGUYÊN LÝ LÀM VIỆC CỦA MÔ HÌNH
Trang 3Hình 1.1 Mô hình điều khiển led 7 thanh 1.1 Các thiết bị có trong mô hình
Trong mô hình có các nút bấm để điều khiển là start, stop, và led 7 thanh để hiển thị Ngoài ra còn có các chấu để nhận tín hiệu từ ngoài vào và xuất tín hiệu ra ngoài mô hình
1.2 Nguyên lý hoạt động của led 7 thanh
1.3 Ý tưởng thiết kế hệ thống điều khiển đèn giao thông
Chương 2 THIẾT KẾ MẠCH ĐIỀU KHIỂN CHO MÔ HÌNH
2.1 Sơ đồ khối
Sơ đồ khối của hệ thống bao gồm các khối sau: Khối đầu vào, Khối nguồn, Khối điều khiển, Khối hiển thị
Hình 2.1 Sơ đồ khối hệ thống điều khiển của mô hình
Trang 42.2 Chức năng của từng khối
Khối đầu vào: Gồm các công tắc để điều chỉnh các chế độ hoạt động của hệ
thống
Khối nguồn: Cung cấp điện áp cho toàn bộ hệ thống và đảm bảo sự ổn định
điện áp
Khối điều khiển: Điều khiển mọi sự hoạt động của hệ thống, thực hiện chương
trình, xử lý các điều khiển đầu vào/ra và truyền thông với các thiết bị bên ngoài
Khối hiển thị: Hiển thị hoạt động của các thiết bị thông qua led 7 thanh
2.3 Lựa chọn linh kiện
2.3.1 Danh sách linh kiện cơ bản
STT TÊN LINH KIỆN CHỨC NĂNG CHÍNH
1 PIC 16F84A Vi điều khiển, điều khiển hoạt động của mô hình
3 Led 7 thanh catot chung Hiển thị thời gian đếm lùi
4 Đèn led Hiển thị đèn báo tín hiệu
2.3.2 Khối đầu vào
Đầu vào các thiết bị sẽ sử dụng các công tắc để điều khiển hoạt động của các hệ thống:
Đầu vào các thiết bị sẽ sử dụng các công tắc để điều khiển hoạt động của các hệ thống:
3.3 Module điều khiển
a, Vi điều khiển PIC16F84A
PIC (Peripheral Interface Controller) là nhóm các IC dùng để chấp hành câu lệnh điều khiển theo các chương trình đã có trong bộ nhớ Bộ nhớ và CPU có thể xem như bộ
Trang 5óc của máy và PIC là các hệ thần kinh dùng để chấp hành các chương trình đã có trong
bộ nhớ
PIC 16F84 là dòng PIC phổ biến nhất được khuyến khích cho những người mới học
Đặc tính của PIC 16F84A:
Chỉ dùng 35 câu lệnh để viết tất cả các chương trình nguồn cho PIC16Fxx
Tất cả các câu lệnh chỉ dùng 1 chu kỳ máy, các câu lệnh nhảy dùng 2 chu kỳ máy
Tốc độ vận hành: Dùng xung nhịp là 4MHz và chu kỳ máy là 1μs
Có bộ nhớ chương trình (Flash Program Memory) 1024 Word (1K x 14)
Bộ nhớ RAM (RAM File Rigister) 68 byte
Bộ nhớ dữ liệu EEPROM 64 byte
Độ rộng câu lệnh là 1 Word 14 bit
Xử lý dữ liệu dạng 8 bit (1 byte)
Có 15 thanh ghi chuyên dụng SFR (Special Function Register) trong RAM
Dùng ngăn xếp có chiều xâu 8 lớp
Có mode truy cập theo địa chỉ trực tiếp, gián tiếp và địa chỉ tương đối
Có 4 dạng ngắt:
o Ngắt ngoài trên tín hiệu trên chân RB0/INT
o Ngắt theo bit báo tràn của Timer 0
o Ngắt theo sự thay đổi trên các chân RB4, RB5, RB6, RB7
o Ngắt khi ghi xong dữ liệu vào bộ nhớ EEPROM
Có 13 chân dùng xuất nhập dữ liệu (Ở Port A có 5 chân và Port B có 8 chân)
Có khả năng cấp dòng chảy vào/ra đủ lớn: 25mA, đủ cấp cho các Led chiếu sáng
Có 1 đồng hồ Timer 0 (TMR0), dùng thanh đếm xung 8 bit, nên đếm được tối đa 256 nhịp
Với bộ nhớ chương trình Flash Program Memory, có thể xóa ghi được 1.000 lần
Với bộ nhớ EEPROM có thể xóa ghi dữ liệu đến 1.000.000 lần
Dữ liệu cất giữ trong bộ nhớ EEPROM có thể an toàn tên 40 năm
Có thể lập trình và nạp ngay trên bo (ICSP, In-Circuit Serial Programming) chỉ dùng
2 chân
Có chức năng POR (Power On Reset), PWRT (Power-up Timer), OST (Oscillator Start-up Timer)
Chức năng Watch-dog (WDT) làm việc với mạch dao động RC riêng trong IC
Có mode bảo vệ mã (Code Protection)
Có mode Sleep dùng tiết kiệm điện năng khi ở trạng thái chờ.
Có nhiều tùy chọn cho mạch dao động tạo xung nhịp chính
Trang 6 Làm việc với mức nguồn trong khoảng 2V đến 5.5V.
Hình 2.3 Sơ đồ chân vi điều khiển PIC16F84A
Sơ đồ chân của vi điều khiển PIC16F84A:
OSC1/CLKIN là chân ngõ vào của mạch dao động thạch anh, dùng để định tần cho
xung nhịp và cũng là một ngõ vào của mạch tạo xung nhịp
OSC2/CLKOUT là chân ngõ ra của mạch dao động thạch anh và đồng thơi cũng là
ngõ ra của xung nhịp
MCLR (Master Clear) là chân reset, tác dụng của lệnh reset là trả chương trình về
địa chỉ ban đầu và xác lập lại vị trí ban đầu của các thanh ghi có chức năng đặc biệt
RA0, RA1, RA2, RA3 là các chân xuất/nhập dữ liệu của Port A.
RA4/TOCKI là chân đa nhiệm, vừa làm chân xuất/nhập của Port A và lại là chân lấy
xung cho bộ định thời Timer0
RB0/INT là chân đa nhiệm, vừa làm chân xuất/nhập của Port B và lại là chân phát
động theo ngắt ngoài, nó có thể được lập trình để có trở kháng lớn dùng để làm ngõ vào, nhập trạng thái ngoài vào PIC
Trang 7 RB1, RB2, RB3 là các chân xuất/nhập của Port B.
RB4, RB5 là các chân xuất/nhập của Port B và phát động ngắt theo sự thay đổi trên
các chân này
RB6 là chân xuất/nhập của Port B và phát động ngắt theo sự thay đổi trên chân này
Nó còn có thể lập trình để dùng chân này phát xung nhịp dùng cho công năng truyền
dữ liệu nối tiếp
RB7 là chân xuất/nhập của Port B và phát động ngắt theo sự thay đổi trên chân này
Nó còn có thể lập trình để dùng chân này trao đổi dữ liệu dùng cho công năng truyền
dữ liệu nối tiếp
V SS là chân nối mass để lấy dòng.
V DD là chân nối vào nguồn dương từ 2V đến 5,5V.
Hình 2.4 Sơ đồ khối chức năng của PIC16F84A Các khối chức năng của PIC16F84A:
Trang 8 Flash Program Memory có dung lượng 1024 thanh nhớ, rộng 14 bit (1Kx14) Ở đây
Bạn cất giữ các mã lệnh của chượng trình nguồn Các mã lệnh được truy cập theo mã địa chỉ có trong thanh ghi PC (Program Counter) Mã lệnh xuất ra trên thanh ghi Instruction Register
Thanh ghi Program Counter dùng ghi các địa chỉ của mã lệnh của bộ nhớ Flash
ROM Trong hoạt động, khi dùng lệnh nhảy đến các chượng trình con, thì địa chỉ hiện tại sẽ được tạm thời cho cất giữ trong các thanh ghi ngăn xếp, ở đây chiều xâu ngăn xếp có 8 lớp (8 Level Stack)
Ngăn xếp Level Stack dùng lưu giữ các mã địa chỉ của chương trình chính khi trong
chương trình có dùng lệnh nhảy Địa chỉ cất vào ngăn xếp có thể hiểu như dùng lệnh Push và địa chỉ lấy ra từ ngăn xếp có thể hiểu như dùng lệnh Pop
Instruction Register là thanh ghi mã lệnh Ở ngõ ra, mã lệnh có thể chuyển đến khối
giải mã Instruction Decode & Control để tạo ra lệnh điều khiển hay chuyển đến khối
xử lý địa chỉ đa kênh Address Multiplex để truy cập các thanh nhớ trong bộ nhớ RAM (File Register)
Instruction Decode & Control là khối giải mã, xác định tính năng điều khiển trong
câu lệnh, nó tác dụng vào khối định trạng thái cho IC Khối này gồm có các chức năng: Power-up Timer, Oscillator Start-up Timer, Power-on Reset, Watchdog Timer
o Power-up Timer dùng kích hoạt IC theo đồng hồ Timer.
o Oscillator Start-up Timer dùng kích hoạt mạch dao động theo đồng hồ Timer.
o Power-on Reset dùng reset các thanh ghi trong PIC khi nó mới được cấp nguồn.
o Watchdog Timer là bộ định thời dùng vào/ra mode theo đồng hồ Timer, có tính
năng dùng tiết kiệm điện
Timing Generation là khối tạo ra xung nhịp chính, tần số của xung nhịp được định
theo thạch anh
Đồng hồ Timer 0 (TMR0) dùng một thanh đếm 8 bit để tạo ra chức năng điều khiển
theo thời gian Nó có thể đếm tối đa 256 xung nhịp, khi thanh đếm đầy, bit báo tràn sẽ chuyển lên mức 1
I/O Port (gồm Port A có 5 chân và Port B có 8 chân) dùng xuất/nhập dữ liệu Nhiều
chân còn có tính đa nhiệm, nên ngoài công năng xuất nhập dữ liệu nó còn có các công năng khác
Bộ nhớ dữ liệu EEPROM Data Memory, đây là bộ nhớ xóa ghi được trên 1 triệu
lần, EEPROM có 64 thanh nhớ, với độ rộng 8 bit (1 byte) Để truy cập dữ liệu trong
các thanh nhớ, mã địa chỉ sẽ chuyển vào thanh ghi EEADR và dữ liệu xuất nhập trên thanh ghi EEDATA.
Bộ nhớ RAM File Register, đây là bộ nhớ RAM có 68 thanh nhớ, với độ rộng 8 bit, trong đó có 12 thanh nhớ đặc dụng (SFR, Special Function Register), các thanh nhớ
Trang 9còn lại được dùng làm thanh nhớ phổ dụng (GPR, General Purpose Register) Các thanh nhớ đặc dụng xác định hoạt động của IC, các thanh nhớ phổ dụng dùng làm thanh nhớ tạm Khi IC mất nguồn, các dữ liệu trong các thanh nhớ RAM đều bị xóa sạch Người ta truy cập dữ liệu trong các thanh nhớ của RAM với bó nối mã địa chỉ RAM Addr và xuất/nhập dữ liệu trên bó nối Data Bus
Thanh ghi FSR (File Select Register) dùng truy tìm dữ liệu theo mã địa chỉ gián tiếp
(Indirect Address), dùng bó nối Indirect Addr
Thanh ghi STATUS (Status Register) dùng chọn định các điều kiện làm việc cho IC
(Thanh ghi trạng thái này rất thường dùng)
MUX (Multiplex) là khối xử lý đa nhiệm, nó cung cấp mã cho khối tính toán ALU.
ALU (Arithmetic & Logic Unit) là khối thực hiện các phép toán số học và logic
Không có bộ phận này, IC không được gọi là IC máy tính
Thanh ghi W reg (Work Register) là thanh ghi công tác (một thanh ghi cực kỳ quan
trọng của PIC), nó cất giữ các kết quả của khối toán ALU
Các cổng xuất/nhập của PIC 16F84A:
Cổng xuất/nhập chính là phương tiện mà vi điều khiển dung để tương tác với các thiết bị bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng
Một cổng xuất/nhập của vi điều khiển bao gồm nhiều chân, tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất/nhập và số lượng chân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một
số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với các thiết bị bên ngoài Chức năng của từng chân xuất/nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển thông qua các thanh ghi SFR liên quan đến chân xuất/nhập của nó
Port A:
Port A bao gồm 5 chân xuất nhập dữ liệu RA0-RA4 Chức năng xuất/nhập dữ liệu được điều khiển bởi thanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong Port A là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong Port A là output, ta
“clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA
Trang 10Riêng với chân RA4 được tích hợp thêm chức năng cung cấp xung clock ngoài cho Timer0 (RA4/T0CKI)
Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Value on Power-on Reset
Value on all other RESETS
05h PORT
A
- - - RA4/T0CKI RA3 RA2 RA1 RA0 - - -x xxxx - - -u uuuu 85h TRISA - - - TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 - - -1 1111 - - -1 1111 Ghi chú: x-Giá trị không rõ, u-Giá trị không thay đổi,
Các ô tô bóng không được dùng bởi PortA
Bảng 2.3 Các thanh ghi liên quan đến Port A
Port B:
Port B bao gồm 8 chân xuất/nhập dữ liệu RB0-RB7 Chức năng xuất/nhập dữ liệu được điều khiển bởi thanh ghi TRISB (địa chỉ 86h) Muốn xác lập chức năng của một chân trong Port B là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISB và ngược lại, muốn xác lập chức năng của một chân trong Port B là output, ta
“clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISB
Đối với các chân RB4-RB7 là các chân đa nhiệm, có khả năng phát động ngắt khi có
sự thay đổi trạng thái trên các chân
Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Value on Power-on Reset
Value on all other RESETS
06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 - - -x xxxx - - -u uuuu
7
TRISB6 TRISB
5
TRISB 4
TRISB 3
TRISB 2
TRISB 1
TRISB 0
- - -1 1111 - - -1 1111 81h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111 0Bh,8Bh INTCON GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u Ghi chú: x-Giá trị không rõ, u-Giá trị không thay đổi,
Các ô tô bóng không được dùng bởi PORTB
Bảng 2.4 Các thanh ghi liên quan đến PORTB
Dao động thạch anh cho vi điều khiển PIC:
Mỗi vi điều khiển hoạt động điều cần một xung clock nhất định Đối với PIC16F84A, hai chân OSC1/CLKIN (chân 16) và OSC2/CLKOUT (chân 15) cung cấp dao động cho
vi điều khiển PIC hoạt động
Trang 11Hình 2.5 Mạch dao động thạch anh cho PIC 16F84A
Trong thiết kế mạch điều khiển bài toàn ở đây chúng ta sẽ sử dụng loại thạch anh ở chế độ XT (F OSC=¿ 4MHz) Thời gian một chu kỳ dao động của thạch anh:
T OSC= 1
F OSC=
1 4.000.000(s )=0.25 (μs )
Từ đó ta tính được thời gian hoạt động của một chu kỳ máy:
T CY=4∗T OSC= 4
4.000 000(s )=1( μs)
Việc mắc thêm các tụ lọc giúp tăng tính ổn định của bộ dao động, tuy nhiên giá trị của tụ không quá lớn hay quá nhỏ để dao động ổn định và thời gian khởi động ngắn Với điện thế V DD=5V thì ta sử dụng tụ có trị số 33pF.
b, IC 74HC595
IC 74HC595 là IC ghi dịch 8bit kết hợp chốt dữ liệu, đầu vào nối tiếp, đầu ra song song
Chức năng của IC 74HC595 trong mạch dùng để mở rộng chân của vi điều khiển
Trang 12Hình 2.6 Sơ đồ chân của IC 74HC595
Sơ đồ chân của IC 74HC595:
Q0,Q1-Q7 (15,1,2,3,4,5,6,7) là các chân xuất dữ liệu khi chân chân EO tích cực ở mức thấp và có một xung tích cực ở sườn âm tại chân chốt STCP.
Q7S là chân dữ liệu nối tiếp Nếu dùng nhiều IC 74HC595 mắc nối tiếp nhau thì chân
này đưa vào đầu vào của con tiếp theo khi đã dịch đủ 8bit
DS (Data Shift) là chân ngõ vào của IC (74HC595 là IC vào nối tiếp nên ta chỉ cần
một chân ngõ vào) Tại 1 thời điểm xung clock chỉ đưa vào được 1 bit
V CC là chân cấp nguồn dương cho IC (5V).
GND là chân cực âm của nguồn cho IC.
SHCP (Shift Clock Pulse) là chân đưa xung nhịp vào IC và khi có cạnh lên của xung
thì IC đưa tín hiệu ở ngõ vào bộ nớ của IC để chờ xử lý
STCP (Storage Clock Pulse) là chân đưa xung nhịp vào IC để khi có cạnh lên của
xung thì IC đưa toàn bộ 8bit dữ liệu đã được lưu ra ngõ ra của IC
MR (Master Reset) là chân reset IC (trả IC về trạng thái ban đầu) Khi chân này tích
cực thì toàn bộ bộ nhớ IC sẽ bị xóa về 0, tuy nhiên lúc này tín hiệu ở ngõ ra vẫn giữ nguyên, không bị xóa Chân này tích cực ở mức thấp (0V)
OE (Output Enable) là chân cho phép ngõ ra, tích cực mức thấp Mức 0 là cho phép
ngõ ra, mức 1 là không cho phép ngõ ra