Upload
van-trongbk
View
226
Download
0
Embed Size (px)
Citation preview
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 1/24
Đo lườ ng và điều khiển tốc độ động cơ 201
1 GVHD:Đào Đức Thịnh
Lời nói đầu
Trong những năm gần đây vớ i sự phát triển mạnh mẽ của khoa học – k ĩ thuật.Đặcbiệt của ngành công nghiệp chế tạo các linh kiện bán dẫn,các các vi mạch tích hợ p ICmột hướ ng phát triển mớ i của Vi xử lý đã hình thành đó là Vi Điều Khiển.Vớ i những ưuđiểm to lớ n về tốc độ,độ chính xác cao,khả năng sử lý các bìa toán,tính linh hoạt nên cácVi Điều khiển đã đượ c ứng dụng trên hầu hết các l ĩnh vực trong cuộc sống. Bằng cácháp dụng Vi Điều Khiển trong sản xuất và xử lý,Vi Điều Khiển đã thực sự thể hiện đượ ccác ưu điểm của mình so vớ i các thiết bị thông thườ ng khác.
Vì những ứng dụng to lớ n của Vi điều khiển,do đó mà ở các trường Đại Học,CaoĐẳng,TCCN…. Về khoa học – công nghệ .Môn vi xử lý đã trở thành một môn học khôngthể thiếu được trong trương tr ình đào tạo.vi điều khiển 8051 sẽ cung cấp cho sinh viênnhững khái nhiện cơ bản cách thức hoạt động của Vi xử lý qua đó sinh viên có tư duy,kiến thức nền tảng,để có thể giải quyết các bài toán ứng dụng thực tế trong cuộcsống,cũng như là cơ sở để học tập nghiên cứu các dòng Vi xử lý khác như :PIC,AVR….
Qua đồ án này chúng em có cái nhìn thực tế hơn,sâu sắc hơn về vi điều khiển.chúngem cũng đã hiểu thêm nhiều về cách thức xử lý một bài toán thực tế phức tạp.
Vớ i sự hường đẫn tận tình của thầy:Đào Đức Thịnh chúng em hi vọng chúng em cóthể hoàn thành tốt đồ án này.
Chúng em xin chân thành cảm ơn thầy!
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 2/24
Đo lườ ng và điều khiển tốc độ động cơ 201
2 GVHD:Đào Đức Thịnh
Contents
Lời nói đầu.............................................................................................................................................. 1
CHƯƠNG 1.GIỚI THIỆU CHUNG ........................................................................................................ 3
1.1.khảo sát hệ thống ........................................................................................................................... 3
1.2.Nhiệm vụ và yêu cầu k ĩ thuật ......................................................................................................... 3
CHƯƠNG 2:SƠ ĐỒ KHỐI ................................................................................................................. 4
2.1.Sơ đồ khối của mạch...................................................................................................................... 4
2.2.nhiệm vụ - chức năng của từng khối............................................................................................... 4
CHƯƠNG 3:CƠ SỞ LÝ THUYẾT GIẢI QUYẾT BÀI TOÁN................................................................ 5
3.1. Vi Điều Khiển 8051. ..................................................................................................................... 5
3.2.động cơ một chiều DC. .................................................................................................................. 7
3.3. LCD ............................................................................................................................................. 7
3.4.L298.............................................................................................................................................. 8
3.5 encoder .......................................................................................................................................... 8
CHƯƠNG 4:THIẾT KẾ SƠ ĐỒ NGUYÊN LÝ VÀ TÍNH TOÁN THAM SỐ ........................................ 9
4.1.mạch nguồn nuôi............................................................................................................................ 9
4.2.mạch nguyên lý của cả hệ thống..................................................................................................... 9
4.3 tính toán tham số.......................................................................................................................... 10
CHƯƠNG 5:THIẾT KẾ CHƯƠNG TR ÌNH.......................................................................................... 14
5.1lưu đồ thuật toán . ......................................................................................................................... 14
5.2.code chương tr ình . ...................................................................................................................... 15
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 3/24
Đo lườ ng và điều khiển tốc độ động cơ 201
3 GVHD:Đào Đức Thịnh
CHƯƠNG 1.GIỚ I THIỆU CHUNG
1.1.khảo sát hệ thốngHiện nay trong rất nhiều l ĩnh vực đờ i sống và sản xuất các loại động cơ điện ngày
càng đượ c ứng dụng rộng rãi hơn so vớ i những loại động cơ sử dụng năng lượng nhưxăng, dầu, khí đốt…..Những loại động cơ điện này có những ưu điểm hơn hẳn về hiệusuất sử dụng, cấu tạo nhỏ gọn, giá thành hợ p lý, dễ dàng điều chỉnh tốc độ, đảo chiều,cưỡ ng bức các quá trình khởi động, quá trình hãm dừng dễ dàng.Trong thực tế có rấtnhiều loại động cơ điện đượ c sử dụng bao gồm:
+ Động cơ điện cơ điện 3 pha đượ c chia làm các loại cơ bản là: Động cơ điện 3 pha
dây quấn và 3 pha roto lồng sóc, động cơ điện 1 pha.
+ Động cơ điện 1 chiều bao gồm các loại như: kích từ song song và loại kích từ nốitiếp.
1.2.Nhiệm vụ và yêu cầu k ĩ thuật- Thiết kế một mạch điện điều khiển động cơ DC 12 v.vớ i các yêu cầu quoay thuận
,quoay nghịch, tăng tốc,giảm tốc,và đảo chiều quoay động cơ.
- Thực hiển thao tác điều chỉnh các chức năng tr ên thông qua các nút ấn bao gồm
:nút khởi động động cơ,nút điều khiển quay thuận, nút điều khiển quay ngược, núttăng tốc, nút giảm tốc, và nút dừng động cơ, thông qua các nút ấn này cho phép tacó thể điều chỉnh động cơ làm việc ở 1 tốc độ như mong muốn.
- Hệ thống cho phép hiện thị tốc độ làm việc có thể sử dụng LCD hoặc LED 7thanh, đồng thời có các led đơn thông báo trạng thái quay thuận, quay ngược,dừng còn giá trị tốc độ động cơ được hiển thị chi tiết là bao nhiêu trên LED 7đoạn.
- Thông qua đề tài, làm quen vớ i cách thức, nguyên lý điều khiển đối tượng động cơ
1 chiều.
- Tìm hiểu thực tế các linh kiện, các loại IC, hoạt động của các loại cảm biến….
- Viết chương tr ình cho vi điều khiển thực hiện thành công theo yêu cầu đề ra.
- Tìm hiểu các hướng phát triển của đề tài, nâng cao chất lượng của hệ thống.
- chi phí cho hệ thống không quá cao,phù hợp với yêu cầu kinh tế.
Mạch sử dụng các linh kiện sau:
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 4/24
Đo lườ ng và điều khiển tốc độ động cơ 201
4 GVHD:Đào Đức Thịnh
- Vi điều khiển :AT89c52.- Bộ cảm biến quang học:encoder (đã đượ c gắn trực tiếp trên động cơ DC) - Động cơ điện một chiều: 12v- Nút nhấn.
- LM7805.- Mạch cầu H: L298.- Ngoài ra còn các phần tử điện khác như:tụ hóa,tụ phân cực,điện trở …
CHƯƠNG 2:SƠ ĐỒ KHỐI
2.1.Sơ đồ khối của mạch
Xung điện
Sơ đồ khối của mạch.2.2.nhiệm vụ - chức năng của từ ng khối. Động cơ:động cơ điện đượ c sử dụng trong mạch là động cơ điện một chiều có điện áp
đặt vào tối đa 24V.Trên trục động cơ có gắn một đĩa tr òn có khoét các lỗ tròn để choánh sáng từ led phát quang có thể đi qua tớ i con mắt thu quang để có thể đo đượ c tốcđộ động cơ.ở đây chúng ta dùng động cơ DC 12V.
HIỂN THỊ
LED 7 segĐIỀUKHIỂNĐỘNG CƠ
L293
VI XỬ LÝ
8051
ĐỘNG CƠ
DC-12V
ENCODER
N ÁPNGUỒN 5V
NGUỒN 12 VPhím ấn
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 5/24
Đo lườ ng và điều khiển tốc độ động cơ 201
5 GVHD:Đào Đức Thịnh
Encoder :dùng để đo số vòng quay của động cơ và phát hiện chiều quoay của độngcơ.encoder nó sẽ đo tốc độ động cơ thông qua sự liên lạc, mất liên lạc của led phátquang và bộ phận thu quang rồi chuyển thành các xung điện áp vuông gửi tớ i chânngắt của Vi Xử Lý.
Vi Xử Lý:nhận các tín hiệu từ encoder thông qua cơ chế ngắt từ đó căn cứ vào số xung do đó nó sẽ tính toán xử lý để:- Đưa ra tốc độ động cơ hiển thị lên led 7 thanh.- Điều chế độ rộng xung PWM để điều khiển tốc độ động cơ cho phù hợ p vớ i yêu
cầu. Khối vi xử lý là trái tim là khối óc của hệ thống là phần quan trọng nhất điều khiển
mọi hoạt động của mạch. Khối điều khiển:điều khiển hướ ng của động cơ điện một chiều.trong bài toán này
chúng em xử dụng mạch cầu H để điều khiển hướ ng của động cơ. Khối hiển thị:nhận số liệu về tốc độ động cơ từ vi xử lý rồi hiển thị lên các led 7 thanh
theo sự điều khiển của Vi điều khiển. Khối nguồn ổn áp 5V:có chức năng cung cấp điện áp ổn định cho các khối trong
mạch.Cụ thể trong mạch ta sử dụng hai nguồn riêng biệt:- Nguồn 5V DC dùng để nuôi các IC trong mạch hoạt động tạo ra các tín hiệu xuất
ra chuẩn TTL,tránh các trườ ng hợ p nhiễu điện áp không đúng với điện áp cấp choIC => tránh IC không hoạt động,hỏng hóc,chập cháy.
- Nguồn 12V DC dùng để cung cấp cho động cơ một chiều DC (trong đồ án này sử dụng động cơ một chiều DC 12V.)
CHƯƠNG 3:CƠ SỞ LÝ THUYẾT GIẢI QUYẾT BÀI TOÁN
3.1. Vi Điều Khiển 8051. IC vi điều khiển 8051/8031 thuộc họ MSC51 có đặc điểm sau :
- 4 kbyte ROM (đượ c lập trình bở i nhà sản xuất chỉ có ở 8051 )
- 128 byte RAM
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 6/24
Đo lườ ng và điều khiển tốc độ động cơ 201
6 GVHD:Đào Đức Thịnh
- 4 port I/0 8 bit
- Hai bộ định thờ i 16 bit
- Giao tiếp nối tiếp
- 64 KB không gian bộ nhớ chương tr ình mở rộng
- 64 KB không gian bộ nhớ dữ liệu mở rộng
- 210 bit được địa chỉ hóa
- Bộ phân/chia 4µs
cấu trúc trong của vi điều khiển.
U1
AT89C52
9
18
19
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/A11P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/R XD
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/AD3P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 7/24
Đo lườ ng và điều khiển tốc độ động cơ 201
7 GVHD:Đào Đức Thịnh
3.2.động cơ một chiều DC.
Hình ảnh thực tế của động cơ DC và encoder.
Hoạt động theo nguyên lý cảm ứng điện từ: Khi có dòng điện chạy trong mạch phần ứng,
các thanh dẫn phần ứng sẽ chịu tác động bở i các lực điện từ theo phương tiếp tuyến vớ imặt trụ rôto, làm cho rôto quay.
Động cơ này đượ c gắn sẵn encoder bên trong rồi.như h ình vẽ trên.
3.3. LCD
LCD 16x2
Mô tả chân của LCD
-LCD giớ i thiệu ở đây có 16 chân.
-VCC và VSS là chân nguồn +5V và chân đất, còn VEE được dùng để điều khiển độ tương phản của của LCD.
-RS (Register Select)- Chọn thanh ghi nà. Nếu RS=0 thì chon thanh ghi mã lệnh hoặc
Nếu RS=1 thì chọn thanh ghi dữ liệu
- R/W (Read/Write) – Chân đọc/ghi. R/W=0 thì đượ c phép đọc thông tin từ LCD, RW=1thì đượ c phép ghi thông tin lên LCD.
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 8/24
Đo lườ ng và điều khiển tốc độ động cơ 201
8 GVHD:Đào Đức Thịnh
3.4.L298
IC L298 là mạch tích hợp đơn chip có kiểu vỏ công suất 15 chân (multiwatt 15) vàPOWERSO20 (linh kiện dán công suất). IC L298 là một mạch cầu đôi (dual full- bridge )có khả năng hoạt động ở điện áp cao,dòng cao.
- Điện áp cấp lên tớ i 46V- Tổng dòng một chiều chịu đượ c tớ i 4A- Điện áp bão hòa- Chức năng bảo vệ quá nhiệt- Logic 0 từ 1.5V trở xuống.
3.5 encoder
a.phân loại.
Gồm : encoder kiểu cảm ứng. encoder tương đối(encoder đếm xung).
b.cấu tọa encoder dùng trong đồ án này
-led hồng ngoại
-transistor quang
-đĩa mã hóa=> nhờ sự nhận đượ c hay không nhận
đượ c tín hiệu từ led hồng ngoại tớ itransistor mà ta có thể tính đượ c tốc độ
theo công thức: n = 60f/p hoặc n=60f/N
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 9/24
Đo lườ ng và điều khiển tốc độ động cơ 201
9 GVHD:Đào Đức Thịnh
CHƯƠNG 4:THIẾT KẾ SƠ ĐỒ NGUYÊN LÝ VÀ TÍNH TOÁN THAM SỐ
4.1.mạch nguồn nuôi.
Mạch nguồn 5v cho VĐK
4.2.mạch nguyên lý của cả hệ thống.
Sơ đồ khối điều khiển
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 10/24
Đo lườ ng và điều khiển tốc độ động cơ 201
10 GVHD:Đào Đức Thịnh
Khối mạch lực
4.3 tính toán tham số.a..tính toán giá tr ị nạ p vào cho timer0 và timer1.
Phân tích lự a chọn phương án đo tốc độ bằ ng encoder:
phương án 1:Tính số cạnh suống trong khoảng thời gian Ts (sampling time) để suy ravận tốc trung bình của động cơ (Pulse/Ts).
phương án 2:T ìm thờ i gian suất hiện hai cạnh xuống liên tiếp của encoder từ đó có thể suy ra vận tốc trung bình của động
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 11/24
Đo lườ ng và điều khiển tốc độ động cơ 201
11 GVHD:Đào Đức Thịnh
b.Phân tích lự a chọn phương án:
Phương án 1: - Sử dụng phương án này ta cần một timer để định thờ i gian lấy mẫu và một
counter để dếm số xung.- Nếu sử dụng phương án 1 sẽ bị giớ i hạn về mặt đáp ứng do encoder gây ra (số xung quá lớ n,tràn counter/hoặc encoder có độ phân giải thấp thì thờ i gian lấymẫu Ts phải lớn để giảm thiểu sai số đo đạc)
Phương án 2: Nếu dùng phương án này - ta cũng cần 1 counter để định thờ i gian và 1 chân (có thể là counter/ngắt
ngoài/1 chân in/out bình thườ ng).- thờ i gian thực thi chiếm hầu hết thờ i gian hoạt động của MCU nên sẽ dùng một
thiết bị (device) riêng biệt làm nhiệm vụ này.
- Trong thuật giải của MCU MASTER ,dùng giao tiếp song song để giảm thiểuthờ i gian lấy mẫu,tất nhiên cần giao thức bắt tay để đảm bảo nhận đúng dữ liệu,chiều quoay của động cơ cũng đượ c ENCODER READER CARD nhận vàgửi lên.
c.lựa chon phương án
Trong đề tài này chúng em chon phương án 1 v ì :
- Đơn giản
- Tốn ít thiết bị hơn phương án 2 - Giải thuật đơn giản.
d .tính toán vớ i phương án đ ã chọn
Để đo tốc độ động cơ ngườ i ta sẽ làm như sau:
Ts TF=1
Hình 1.sơ đồ đọc tốc đọ từ encoder.
- Sử dụng Timer 1 ở chế độ 1 dùng làm counter đếm số xung cạnh của encoder.
Timer 0
encoder
Counter 1
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 12/24
Đo lườ ng và điều khiển tốc độ động cơ 201
12 GVHD:Đào Đức Thịnh
- Sử dụng timer 0 để định thờ i gian ngắt (Ts) thời gian này đượ c lập trình để cóthể thay đổi tùy vào mục đích ,ý đồ của ngườ i sử dụng.nhưng chúng ta nênchon Ts sao cho việc tính toán tốc độ động cơ là đơn giản nhất:Ta có:
Giả sử trong Ts (được xác định bở i bộ định thờ i timer0) thì timer1ở chế độ count1 đếm được count xung đượ c minh họa như h ình vẽ dướ i:
count
Ts
Thì ta có chu kì của xung là :
Ts
T count
(s) nên tần số xung là f=1/T
Suy ra: có tốc độ động cơ là:60 60.
.
f count n
N N Ts (vong/giay)
Để cho việc tính toán tốc độ động cơ đượ c dễ dàng chúng ta nên chọn :60
1. N Ts
khi đó tốc độ động cơ chỉ đơn giản là :
n=count (vong/giay).Vậy là bây giờ chúng ta chỉ việc hiển thị con số count lên thiết bị hiển thị (trong đồ án này thì thiết bị hiển thị là led 7seg)
Trong bài này chúng em dùng encoder N = 100xung/vong.nên từ biểu thức trên ta
có:60
1100.Ts
→Ts=0.6 (s).
Tần số thạch anh của 8051 là 12MHz => mỗi nhịp xung đồng hồ có :
0T =12/f=1us
Suy ra số nhịp cần cho VĐK (có tần số thạch anh f=12MHz) trong thờ i gian 0.6(s)
là: 60.6 600000
10 =12.50000 >65536 do đó ta nạp cho các thanh ghi TH0 và TL0 của vi
điều khiển giá trị:65536-50000=15536D=3C0B H
TH0=0x3C và TL0=0xB0. .tính toán giá tr ị nạ p các thanh ghi của cho timer2 để thự c hiện PWM.
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 13/24
Đo lườ ng và điều khiển tốc độ động cơ 201
13 GVHD:Đào Đức Thịnh
Tạo một xung có tần số f=1kHz →T=1/1000=0.001s=1000us=1000 chu kì máy.chúng tatạo PWM vớ i 10 cấp điều chỉnh tức là phải tạo đượ c xung 10%,20%,30%....100%.mộtxung như sau:
T1
0v
Trong đó :T1 là khoảng thờ i gian xung ở mức cao 5V
T là chu kì của xung.
Xung ∝% tức là T1/T=∝%=∝ /100.
- Xung PWM sẽ được đưa ra điều khiển L298 thông qua độ rộng xung.khikhông có xung động cơ không quoay,khi 100% xung th ì động cơ quoaymax.tuy xung phải lớn hơn một mức nào đó mới đủ để khởi động động cơ.
- Để có thể thay đổi 10 cấp vớ i chu kì T=1000us thì ta phải khở i tạo cho ngắttimer2:100us ngắt 1 lần .
- Sử dụng timer2 vớ i chế độ tự nạp 16bit thì ta phải nạp choRCAP2H;RCAP2L các con số :65536-100=65436=FF9C H.
RCAP2H=0xFF và RCAP2L=0x9C.
5V
T
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 14/24
Đo lườ ng và điều khiển tốc độ động cơ 201
14 GVHD:Đào Đức Thịnh
CHƯƠNG 5:THIẾT KẾ CHƯƠNG TR ÌNH
5.1lưu đồ thuật toán .
Đ S Đ S Đ S Đ S Đ
start
Kiểm ta mút ấn
Khở i tạo:
-timer 0:chế độ 16bit (50.000us).
-timer2 :chế độ 16bit.- timer 1:chế độ count1 16 bit
GTTTQNQT STOP
TR2=1 PWM Tin hieu ĐK Động Cơ
Động cơ
1
2
3
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 15/24
Đo lườ ng và điều khiển tốc độ động cơ 201
15 GVHD:Đào Đức Thịnh
5.2.code chương tr ình .#include <REGX52.H>
#include<stdio.h>
#include<string.h>
int i,dem,soxung1,soxung2;
/*===========khai bao bien toan cuc============*/
sfr LCDdata = 0x80; // cong P2, 8 bit du lieu.
sbit BF = 0x87; // co ban, bit DB7.
sbit RS = P1^5; // chon thanh ghi
1
Xung encoder
Count 1
Dem ==12
Dem ++
Hien thi
2
Ngắt timer0
3
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 16/24
Đo lườ ng và điều khiển tốc độ động cơ 201
16 GVHD:Đào Đức Thịnh
sbit RW = P1^6; // doc/ghi
sbit EN = P1^7; //cho phep chot du lieu
/*===========cac chuong trinh con cua LCD==========*/
/*--------------kiem tra su san sang cua LCD------------------------*/
void wait(void)
{
RS=0; //chon thanh ghi lenh
RW=1; //?oc tu LCD
LCDdata=0xff; //gia tri 0xff
while(BF) //kiem tra co ban
{
EN=0; //dua xung cao xuong thap ?e chot.
EN=1; //dua chan cho phep len cao
}
}
/*------------------------thiet lap lenh cho LCD--------------------------*/
void LCDcontrol(unsigned char x)
{
RS=0;//chon thanh ghi lenh
RW=0;//ghi len LCD.LCDdata=x ;// gia tri x
EN=1;//cho phep muc cao
EN=0;//xung cao xuong thap
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 17/24
Đo lườ ng và điều khiển tốc độ động cơ 201
17 GVHD:Đào Đức Thịnh
wait();//?oi LCD san sang.
}
/*------------------------------Khoi tao LCD-------------------------*/
void LCDinit(void)
{
LCDcontrol(0x38);//2 dong va ma tran 5x7
LCDcontrol(0x0e);//bat man hinh, bat con tro
//LCDcontrol(0x01);//xoa man hinh
}
/*-------------------------thiet lap du lieu cho LCD-----------------*/
void LCDwrite(unsigned char c)
{
RS=1;//ghi du lieu
RW=0;//ghi du lieu len LCD
LCDdata=c;//gia tri C
EN=1;//cho phep muc cao
EN=0;//xung cao xuong thap
wait();//cho
}
void LCDwrites(unsigned char *s){
unsigned char data lens,count;
lens=strlen(s);
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 18/24
Đo lườ ng và điều khiển tốc độ động cơ 201
18 GVHD:Đào Đức Thịnh
for(count=0;count<lens;count++){
LCDwrite(*(s+count));
}
}
/*=====================chuong trinh tre================*/
void delay(long time)
{
while(time--)
{
for(i=0;i<1000;i++){;}}
}
/********************* ghi so nguyen **************************/
void ghi_so_nguyen(long so,long so1)
{
unsigned char a,b,c,d,e;
so=so1*255+so;
e=so/10000;
a=(so-10000*e)/1000; // Lay phan nghin65536=6*10000+5*1000+5*100+3*10+6
b=(so-10000*e-1000*a)/100; // Lay phan tram
c=(so-10000*e-1000*a-100*b)/10; // Lay phan chuc
d=(so-10000*e-1000*a-100*b-10*c); //lay phan don vi
LCDwrite(e+48);
LCDwrite(a+48);
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 19/24
Đo lườ ng và điều khiển tốc độ động cơ 201
19 GVHD:Đào Đức Thịnh
LCDwrite(b+48);
LCDwrite(c+48);
LCDwrite(d+48);
LCDwrites(" v/p");
}
/******************* ham khoi tao**************************************************/
void khoitao(void){// Ham khoi tao
P3=0xFF;
TMOD=0x51;
IE=0xAA;
TR0=1;
TR1=1;
TH0=0x3C;
TL0=0xB0;
T2MOD=0xc9;//Timer 2 che do 2 8 bit auto reload,tine1 16 bit
T2CON=0x04; //timer 2 o che do tu nap 16 bit va nap boi RCAPL2
RCAP2H=0xff; //Cho timer2 o che do dem 50.000 micro giay
RCAP2L=0x9b;
ET2=1;// Cho phep ngat timer 0
EA=1;// Cho phep ngat toan cuc
TR2=1;// Chay timer 0 bat dau dem so chu ki may
}
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 20/24
Đo lườ ng và điều khiển tốc độ động cơ 201
20 GVHD:Đào Đức Thịnh
/***********************Chuong trinh taotre************************************/
/***************************Ngat timer********************************/
void timer()interrupt 1{
TR0=0;
TR1=0;
dem++;
TH0=0xD8;
TL0=0xF0;
if(dem==60){
soxung1=TL1;
soxung2=TH1;
TL1=TH1=0;
dem=0;
}
TR0=1;
TR1=1;
}
/*****************************************Ham
ngat******************************************/
unsigned char xung;
unsigned char phantramxung;
unsigned char chay=0;// Khai bao bien dem de dem tu 1 den 10
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 21/24
Đo lườ ng và điều khiển tốc độ động cơ 201
21 GVHD:Đào Đức Thịnh
void timer2(void) interrupt 5{ //Ngat timer 2
TR2=0;
TF2=0; // Dung chay timer 2
chay++;
if(chay<=phantramxung) P2=xung; // Neu bien dem < phan tram xung thi dua giatri 1 ra chan
else P2=0x0F; // Neu dem = phan tram xung
if(chay==10) chay=0; // Neu dem du 10 thi gan lai bang 0 de bat dau chu ki moi
TR2=1; // Cho chay timer
}
/**********************************Ham tangtoc*************************************/
char tangtoc(void){//ham tang toc dong co
if(phantramxung>0){
if (P1_0==0){//neu nut tang duoc bam
while(P1_0==0){ //nut dang giu;
; //khong lam j ca;
}
phantramxung++;
if (phantramxung>9) phantramxung=10;
}
}
return phantramxung;
}
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 22/24
Đo lườ ng và điều khiển tốc độ động cơ 201
22 GVHD:Đào Đức Thịnh
/**************************************Ham giamtoc***********************************/
char giam(void){//ham giam toc dong co
if (P1_1==0){//neu nut giam duoc bam
while(P1_1==0){ //nut dang giu;
; //khong lam j ca;
}
phantramxung--;
if (phantramxung<=1) phantramxung=1;
}
return phantramxung;
}
/*********************************************ham khoidong***************************/
char khoidong(void){//ham khoi dong dong co
if(P1_2==0){
LCDcontrol(0x01);
LCDwrites(" quay thuan:");
xung=0x01;
phantramxung=6;
}
return phantramxung;
}
/*********************************************ham quaynguoc***************************/
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 23/24
Đo lườ ng và điều khiển tốc độ động cơ 201
23 GVHD:Đào Đức Thịnh
char quaynguoc(void){//ham khoi dong dong co
if(P1_4==0){
LCDcontrol(0x01);
LCDwrites("quay nghich:");
xung=0x02;
phantramxung=6;
}
return phantramxung;
}
/*********************************************hamdung***************************/
char dung(void){//ham khoi dong dong co
if(P1_3==0){
phantramxung=0;
}
return phantramxung;
}
void main(void){
khoitao();
while(1){
LCDinit();
khoidong();
tangtoc();
7/31/2019 Lời nói đầu DA
http://slidepdf.com/reader/full/loi-noi-dau-da 24/24
Đo lườ ng và điều khiển tốc độ động cơ 201
24 GVHD:Đào Đức Thịnh
giam();
dung();
quaynguoc();
LCDcontrol(0x38);
//LCDwrites("");
LCDcontrol(0xc0);// dua con tro den vi tri thu 4 dong 1
ghi_so_nguyen(soxung1,soxung2);
delay(40);
// LCDwrites(" V/p");
//LCDcontrol(0x01);
}
}