Tổng quan về vi điều khiển Bộ vi điều khiển MC MicroController là một chip có thể lập trình được để điều khiển hoạt động của hệ thống.. Những chức năng thứ hai của chân cổng Port 3 - ‘P
Trang 1Tiểu luận
Đo tốc độ động cơ
Trang 2Đề Tài : ĐO TỐC ĐỘ ĐỘNG CƠ
I Giới thiệu chung
I.1.nhiệm vụ và yêu cầu kĩ thuật
I.2.ứng dụng và khả năng phát triển
II Giới thiệu các linh kiện trong mạch
II.1 Giới thiệu về vi điều khiển AT89C51
II.1.1 Tổng quan về vi điều khiển II.1.2 Kiến trúc phần cứng AT89C51 II.1.3 Hoạt động của Timer
II.1.4 Hệ thống ngắt II.2 Giới thiệu các linh kiện sử dụng trong mạch
II.2.1.Nguồn II.2.2 IC giải mã7447 II.2.3 Đèn LED II.2.4 Động cơ II.2.5 Cảm biến
III.Nguyên lý hoạt động và thiết kế mạch điện
III.2.1.Cảm biến
III.2.2 Sơ đồ khối bộ đếm
III.2.3 Sơ đồ khối hiển thị
IV.Sơ đồ nguyên lý mạch điện
V.Lưu đồ thuật toán và mã nguồn chương trình
Trang 3I Giới thiệu chung
I.1 Nhiệm vụ và yêu cầu kĩ thuật
Thiết kế một mạch điện cho phép ta đo tốc độ động cơ dựa trên các ứng dụng của vi điều khiển Phần mềm được lập trình và nạp vào vi điều khiển Phần cứng bao gồm mạch điện và động cơ Cấu trúc và chức năng từng phần sẽ được đề cập chi tiết trong mục thiết kế
Mạch điện có yêu cầu:
Sử dụng chip vi điều khiển AT89S52
Động cơ một chiều có tốc độ tối đa 65535 vòng/phút và tốc độ tối thiểu là
0 vòng/phút Mạch thực hiện đếm tốc độ động cơ trong vòng 1 phút và hiển thị
ra đèn LED Khi động cơ quay được 1 vòng sẽ có một xung gửi tới chân P3.5
vi điều khiển và vi điều khiển bắt đầu đếm
I.3: Ứng dụng và khả năng phát triển :
-Mạch đo tốc độ động cơ được sử dụng để xác định tốc độ động cơ một chiều Sau khi đo được tốc độ có thể biết được động cơ chạy có đúng với thiết kế hay không, do đó có thể kiểm tra xem động cơ có bị hỏng hóc không Ngoài ra trong một số trường hợp biết tốc độ động cơ để điều chỉnh cho phù hợp Từ những ứng dụng trên nên máy đo tốc độ động cơ sẽ ngày càng phát triển, hiện đại hơn kết hợp với nhiều chức năng mới và ngày càng có mặt nhiều trong cuộc sống
II Giới thiệu các linh kiện trong mạch
II.1 Giới thiệu về vi điều khiển AT89C51
II.1.1 Tổng quan về vi điều khiển
Bộ vi điều khiển MC (MicroController) là một chip có thể lập trình được để điều khiển hoạt động của hệ thống Nhờ chương trình điểu khiển, bộ vi điều khiển sẽ thực hiện đọc các tín hiệu từ bên ngoài vào, lưu trữ rồi xử lý, sau
đó dựa vào kết quả của quá trình xử lý để đưa ra các thông báo, tiến hành các
Trang 4Xuất phát từ những yêu cầo về điều khiển và giám sát hệ thống, một IC tương tự với bộ vi xử lý được ra đời là vi điều khiển Năm 1976, Intel giới thiệu chip vi điều khiển đầu tiên trong họ vi điều khiển MCS-48 là 8748 Mạch tích hợp này chứa hơn 17000 Transistor gồm một CPU, 1Kbyte EPROM, 64 byte RAM, 27 chân I/O và một bộ định thời 8 bit IC này và các chip xuất hiện
về sau trong họ 48 nhanh chóng chuẩn công nghiệp trong các ứng dụng về điều khiển Các ứng dụng phổ biến là trong máy giặt, hệ thống đèn giao thông và dần dần xuất hiện trong xe hơi, thiết bị công nghiệp, sản phẩm tiêu dùng và thiết bị ngoại vi của máy tính Về sau sức mạnh cũng như sự phức tạp của MC
đã nâng lên mức cao hơn Năm 1980, Intel đã giới thiệu chip vi điều khiển đầu tiên trong họ MCS-61 là 8051 So với 8048, 8051 chưa hơn 60000 Transistor bao gồm một CPU, 4 Kbyte ROM, 128 byte RAM, 32 chân I/O, một cổng nối tiếp, 2 bộ định thời 16 bit
Sơ đồ khối của một bộ vi điều khiển:
CPU
khiển ngắt
Giao tiếp nối tiếp
Giao tiếp song song
Nguồn đồng
hồ ngoài
đồng hồ nội
nối tiếp
Thiết bị song song
Trang 5II.1.2 Kiến trúc phần cứng AT89C51
AT89C51 là phiên bản 8051 có ROM trên chip là Flash Phiên bản này thích hợp cho ứng dụng nhanh vì bộ nhớ Flash có thể xoá trong vài giây AT89C51 có thể được lập trình qua công COM của máy tính IBM PC
- một port nối tiếp song công
- một mạch dao động và tạo xung clock trên chi
a Cấu hình các chân của 89ATC51:
29 30
31
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
RST
XTAL2 XTAL1
PSEN ALE/PROG
EA/VPP
P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
Bus dữ liệu, địa chỉ, điều khiển
Trang 6Cổng Port 1 được chỉ định là cổng I/O từ chân 1 đến 8 Chúng được sử dụng cho mục đích duy nhất là giao tiếp với thiết bị khi cần thiết Ngoài ra các chân P1.0, P1.1 là 2 chân liên quan đến hoạt động ngắt của bộ định thời 2
Trong những mô hình thiết kế không dùng bộ nhớ ngoài, Port 0 là cổng I/O Còn đối với các hệ thống lớn hơn có yêu cầu một số lượng đáng kể bộ nhớ ngoài thì Port 0 trở thành các đường truyền dữ liệu và 8 bit thấp của bus địa chỉ Ngoài ra chân P1.0(T2) là ngõ vào của bộ đếm thời gian 2 P1.1(T2EX) là chân capture/reload của bộ đếm thời gian 2
Cổng Port 2 là cổng I/O hoặc là đường tryển 8 bit cao của bus địa chỉ cho những mô hình thiết kế có bộ nhớ chương trình ở nằm ngoài học có hơn
256 byte bộ nhỡ dữ liệu ngoài
Cổng Port 3 ngoài mục đích chung là cổng I/O, những chân này còn kiêm luôn nhiều chức năng khác liên quan đến đặc tính đăc biệt của vi điều khiển
Những chức năng thứ hai của chân cổng Port 3
- ‘PSEN là một tín hiệu điều khiển cho phép bộ nhớ chương trình bên ngoài hoạt động Nó thường được kết nối đến chân ‘OE (Output Enable) của ‘EPROM để đọc các byte chương trình Xung tín hiệu ‘PSEN luôn ở mức thấp trong suốt phạm vi quá trình của một lệnh Còn khi thi hành chương trình từ ROM ở ngay bên trong chip, chân ‘PSEN luôn ở mức cao
- Tín hiệu ALE có chức năng đặc biệt tách byte địa chỉ thấp và bus dữ liệu khi cổng P0 được sử dụng cở chế độ tuần tự hay còn gọi là chế độ dồn kênh, nghĩa là sử dụng cùng một đường truyền cho các bit dữ liệu
và byte thấp của bus địa chỉ
- Khi chân ‘EA ở mức cao, vi điều khiển được thực hiện các chương trình lưu trữ ỏ vùng nhớ thấp hơn 8Kbyte ROM bên trong chip Còn
‘EA ở mức thấp chỉ có những chương trình lưu ở bộ nhớ ngoài mới được thực hiện
Trang 7- AT89S52có một bộ dao động nội bên trong chip hoạt động theo tần số của một dao động thạch anh nằm bên ngoài Tần số thông dụng của thạch anh là 11,0592 MHZ
- RST (9)
Ngõ vào reset Mức cao trên chân này trong 2 chu kỳ máy trong khi
bộ dao động đang hoat động sẽ reset AT89S52
Mạch reset tác động bằng tay và tự động reset khi khởi động máy
- XTAL1 và XTAL2
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại đảo của
mạch dao động, được cấu hình để dùng như một bộ dao động trên chip
Không có yêu cầu nào về chu kỳ nhiệm vụ của tín hiệu xung clock bên
ngoài do tín hiệu này phải qua một flip-flop chia hai trước khi đến mạch tạo
xung clock bên trong, tuy nhiên các chi tiết kỹ thuật về thời gian mức thấp và
mức cao, điện áp cực tiểu và cực đại cần phải được xem xét
c Các chế độ đặc biệt
c.1 Chế độ nghỉ
Trong chế độ nghỉ, CPU tự đi vào trạng thái ngủ trong khi tất cả các
ngoại vi bên trong chip vẫn tích cực Chế độ này được điều khiển bởi phần mềm Nội dung của RAM trên chip và của tất cả các thanh ghi chức năng đặc
biệt vẫn không đổi trong khi thời gian tồn tại chế độ này Chế độ nghỉ có thể
được kết thúc bởi một ngắt bất kỳ nào được phép hoặc bằng cách reset cứng
Ta cần lưu ý rằng khi chế độ nghỉ được kết thúc bởi một reset cứng, chip vi điều khiển sẽ tiếp tục bình thường việc thực thi chương trình từ nơi chương trình bị tạm dừng, trong vòng 2 chu kỳ máy trước khi giải thuật reset
mềm nẵm quyền điều khiển
Ở chế độ nghỉ, phần cứng trên chip cẫm truy xuất RAM nội nhưng cho phép truy xuất các chân của các port Để tránh khả năng có một thao tác ghi
RST
Trang 8không mong muốn đến một chân port khi chế độ nghỉ kết thúc bằng reset, lệnh tiếp theo yêu cầu chế độ nghỉ không nên là lệnh ghi đến chân port hoặc đến bộ
nhớ ngoài
c.2 Chế độ nguồn giảm
Trong chế độ này, mạch dao động ngừng hoạt động và lệnh yêu cầu chế
độ nguồn giảm là lệnh sau cùng được thực thi RAM trên chip và các thanh ghi
chức năng đặc biệt vẫn duy trì các giá trị của chúng cho đến khi chế độ nguồn
giảm kết thúc Chỉ có một cách ra khỏi chế độ nguồn giảm, đó là reset cứng
Việc reset sẽ xác định lại các thanh ghi chức năng đặc biệt nhưng không làm thay đổi RAM trên chip Việc reset không nên xảy ra (chân reset ở mức
tích cực) trước khi Vcc được khôi phục lại mức điện áp bình thường và phải
kéo dài trạng thái tích cực của chân reset đủ lâu để cho phép mạch dao động
hoạt động trở lại và đạt trạng thái ổn định
Trạng thái của các chân trong thời gian tồn tại chế độ nghỉ và chế độ nguồn giảm được cho trong bảng sau:
Nguồn
giảm
c.3 Các bít khoá bộ nhớ chương trình
Trên chip có ba bit khoá, các bít này có thể không cho phép lập trình
hoặc cho phép lập trình, các bit này cho ta thêm một số đặc trưng nữa của AT89C51 như sau
Khi bit khoá 1 LB1 được lập trình, mức logic ở chân EA được lấy mẫu
và được chốt trong khi reset Nếu việc cấp nguồn cho chip không có công dụng reset, mạch chốt được khởi động bằng một giá trị ngẫu nhiên và giá trị này được duy trì cho đến khi có tác động reset Điều cần thiết là giá trị được
chốt của EA phải phù hợp vơi mức logic hiện hành ở chân này
Trang 9Chế độ LB1 LB2 LB3
chương trình ngoài không được phép tìm
nạp lệnh từ bộ nhớ nội, EA được lấy mẫu
và được chốt khi reset, hơn nữa việc lập
d Tổ chức bộ nhớ
Không gian bộ nhớ của bộ vi điều khiển được phân chia thành 2 phần:
bộ nhớ dữ liệu và bộ nhớ chương trình Hầu hết các IC MCS đều có bộ nhớ
chương trình nằm bên trong chip, tuy nhiên cũng có thể mở rộng dung lượng
lên đến 64K bộ nhớ chương trình và 64K dữ liệu bằng cách sử dụng một số bộ
nhớ ngoài
Bên trong chip vi điều khiển AT89C51 có 128 byte bộ nhớ dữ liệu
Không gian bộ nhớ bên trong được chia thành các bank thanh ghi, RAM địa chỉ
theo bit, RAM dùng chung và các thanh ghi chức năng đặc biệt
7F
30
RAM dùng chung
FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B
Trang 10Sơ đồ chi tiết không gian bộ nhớ dữ liệu bên trong vi điều khiển
e Các thanh ghi chức năng đặc biệt
AT89C51 có các thanh ghi R0 đến R7 và 21 thanh ghi chức năng đặc biệt SFR (Special Function Register) nằm ở phần trên của RAM từ địa chỉ 80H đến FFH
- Thanh ghi trạng thái PSW(Program Status Word):
00=bank1: địa chỉ từ 00h đến 07h 01=bank2: địa chỉ từ 08h đến 0Fh 10=bank3: địa chỉ từ 10h đến 17h 01=bank2: địa chỉ từ 18h đến 1Fh
Trang 11- Thanh ghi B: thanh ghi luôn được sử dụng kèm theo thanh ghi A để
thực hiện các phép toán nhân và chia Thanh ghi B xem như là thanh ghi đệm dùng chung Nó có địa chỉ từ F0 đến F7
- Con trở ngăn xếp: là một thanh ghi 8 bit, nó chứa địa chỉ của phần dữ
liệu đang hiện diện tại đỉnh ngăn xếp Ngăn xếp hoạt động theo phương thức LIFO Hoạt động đẩy vào ngăn xếp làm tăng SP lên trước khi ghi dữ liệu vào Hoạt động lấy ra khỏi ngăn xếp sẽ đọc dữ liệu ra rồI giảm SP
- Con trỏ dữ liệu DPTR(Data Pointer): DPTR được sử dụng để truy cập
vào bộ nhớ chương trình và bộ nhớ dữ liệu ngoài, đó là thanh ghi 16 bot có 8 bit thấp ở địa chỉ 82H (DPL) và 8 bit cao ở địa chỉ 83h (DPL)
- Các thanh ghi cổng: Các cổng I/O của VDL bao gồm P0 tại địa chỉ
80H, P1 ở địa chỉ 90H, P2 tại địa chỉ A0H, P3 tạI địa chỉ B0H Tất cả các cổng đều có địa chỉ bit nên cung cấp khả năng giao tiếp với bên ngoài rất mạnh
- Các thanh ghi bộ đếm thời gian: AT89C51 có 3 bộ đếm thời gian 16
bit để định các khoảng thời gian hay đếm các sự kiện Timer0 có địa chỉ 8AH (TL0: bit thấp) và 8CH(TH0: byte cao) Timer1 có địa chỉ 8BH (TL1: bit thấp)
và 8DH(TH1: byte cao) Timer2 có địa chỉ CCH (TL2: bit thấp) và 8CD(TH2: byte cao) Hoạt động của các bộ đếm thời gian được thiết lập bởi các thanh ghi TMOD,TCON, T2CON Ngoài ra các thanh ghi RCAP2L, RCAP2H được sử dụng trong chế độ tự nạp của 16 bitbộ định thời 2
- Các thanh ghi cổng tuần tự: IC AT89C51 chứa một cổng nối tiếp để
kết nối với các thiết bị nối tiếp như moderm hoặc để giao tiếp với các IC khác
sử dụng giao tiếp nối tiếp Bộ đệm dữ liệu nối tiếp SBUF lưu giữ cả dữ liệu truyền đi và dữ liệu nhận được
- Các thanh ghi ngắt: AT89C51 có 6 nguyên nhân ngắt và 2 ngắt ưu
tiên Các ngắt bị cấm sau khi hệ thống khởi động lại và để được bật bằng cách ghi vào thanh ghi cho phep ngắt IE Mức ưu tiên được thiết lập thông qua thanh ghi ưu tiên IP
- Thanh ghi điều khiển năng lượng PCON (Power Control Register):
chứa nhiều bit điều khiển đảm bảo các chức năng khác nhau
II.1.3 Hoạt động của bộ Timer
a Giới thiệu chung
Bộ định thời là một dãy các flip-flop chia 2, chúng nhận một tín hiệu đưa vào như là nguồn đồng hồ Tín hiệu từ nguồn đồng hồ được đưa vao flip-flop thứ nhất và ngõ ra của flip-flop thứ nhất lại làm tín hiệu đồng hồ cho flip-flop của bộ thứ hai và cứ tiếp tục như vậy Do mỗI tầng kế tiếp nhau chia cho
2, nên bộ định thời với n tầng sẽ chia tần số của tín hiệu đồng hồ ngõ vào cho
2n Ngõ ra của tần cuốI cùng dùng để điều khiển cho flip-flop tràn, hay còn gọi
là cờ tràn và nó được kiểm tra bởi phần mềm, nó thường được dùng để tạo ra
Trang 12một ngắt Giá trị nhị phân trong các flip-flop được hiểu là số xung đồng hồ đếm( các sự kiện) khi bộ đếm thời gian bắt đầu hoạt động Bộ đếm thời gian 16 bit sẽ thực hiện đếm từ 0000H đến FFFFH Cờ tràn được lập khi nội dung bộ đếm chuyển từ FFFFH về 0000H
Các bộ định thời được dùng trong các hệ thống điều khiển Trong AT89C51 có 3 bộ định thời 16 bit Bộ định thời được dùng để
- Xác định các khoảng thời gian Bộ định thời được lập trình để tran trong một khoảng thời gian nào đó và cờ tràn được bật lên
- Tạo ra tốc độ baud cho việc truyền thông tin tại cổng nối tiếp
- Đếm các sự kiện, đo khoảng thời gian trôi qua giữa các sự kiện Mỗi
sự kiện chính là bất kỳ tác nhân kích thích ngoài nào tạo sự chuyển đổi từ 1 về 0 qua một chân của chip
b Các thanh ghi của bộ định thời
Để truy cập bộ định thời, ta sử dụng 11 thanh ghi SFR sau:
- Thanh ghi kiểu thời gian TMOD (Timer Mode Register
Các bít địa chỉ trong thanh ghi TMOD
Trang 13Thanh ghi TMOD được chia thành 2 nhóm bit 4 bit dùng để thiết lập chế độc hoạt động của Timer 0 vàTimer 1
Các chế độ hoạt động của bộ định thời
+ M1=0, M0=0: Mode 0 (Chế độ định thời 13-bit) + M1=0, M0=1: Mode 1 (Chế độ định thời 16 bit) + M1=1, M0=0: Mode 2 (Chế độ tự động nạp 8 bit) + M1=1, M0=1: Mode 3 (Chế đô định thời chia xẻ)
- Thanh ghi điều khiển định thời TCON (Timer Control Register)
Thanh ghi điều khiển định thời TCON
- Thanh ghi điều khiển bộ định thời 2 T2CON
c.Các chế độ của Timer và cờ tràn
Chế độ định thời 13 bit (Mode 0):
Mode 0 ít được sử dụng trong các hệ thống mới Byte cao của bộ định thời THx được kết hợp vớI 5 bit có trọng số nhỏ nhất vủa byte thấp của bộ định thời TLx
để tạo nên bộ định thời 13 bit #bit còn lạI của TLx không được sử dụng