24
Đo lườ ng và điu khin tc độ động cơ  20 1 1 GVHD:Đào Đức Thnh  Li nói đầu Trong nhng năm gn đây vớ i sphát trin mnh mca khoa hc – k  ĩ thut.Đặc bit ca ngành công nghi p chế to các linh ki n bán dn,các các vi mch tích hợ p IC mt hướ ng phát trin mớ i ca Vi x đã hình thành đó là Vi Điu Khin.Vớ i nhng ưu đim to l ớ n vtc độ,độ chính xác cao,kh  năng slý các bìa toán,tính linh ho t nên các Vi Điu khin đã đượ c ng dng trên hu hết các l  ĩnh vc trong cuc sng. Bng cách áp dng Vi Điu Khin trong sn xut và x lý,Vi Điu Khin đã thc sthhin đượ c các ưu đim ca mình so vớ i các thi ết b thông thườ ng khác. Vì nhng ng dng to lớ n ca Vi điu khin,do đó mà ở  các trường Đại Hc,Cao Đẳng,TCCN…. Vkhoa hc – công ngh.Môn vi x đã trở thành mt môn hc không ththiếu được trong trương tr  ình đào to.vi điu khin 8051 scung cp cho sinh viên nhng khái nhi n cơ bn cách thc hot động ca Vi x lý qua đó sinh viên có tư duy ,kiến thc nn tng,để có thgi i quyết các bài toán ng dng thc tế trong cuc sng,cũng như là cơ sở  để hc tp nghiên cu 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 sc hơn v vi điu khin.chúng em cũng đã hiu thêm nhi u vcách thc xlý mt bài toán th c tế phc tp. Vớ i s hường đẫn tn tình ca thy:Đào Đức Thnh chúng em hi vng chúng em có thhoàn thành tt đồ án này. Chúng em xin chân thành c m ơn thy!

Lời nói đầu DA

Embed Size (px)

Citation preview

Page 1: Lời nói đầu DA

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!

Page 2: Lời nói đầu DA

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

Page 3: Lời nói đầu DA

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:

Page 4: Lời nói đầu DA

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

Page 5: Lời nói đầu DA

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

Page 6: Lời nói đầu DA

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

 

Page 7: Lời nói đầu DA

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.

Page 8: Lời nói đầu DA

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

Page 9: Lời nói đầu DA

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

Page 10: Lời nói đầu DA

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

 

Page 11: Lời nói đầu DA

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

Page 12: Lời nói đầu DA

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. 

Page 13: Lời nói đầu DA

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

Page 14: Lời nói đầu DA

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

Page 15: Lời nói đầu DA

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

Page 16: Lời nói đầu DA

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

Page 17: Lời nói đầu DA

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);

Page 18: Lời nói đầu DA

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);

Page 19: Lời nói đầu DA

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

}

Page 20: Lời nói đầu DA

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

Page 21: Lời nói đầu DA

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;

}

Page 22: Lời nói đầu DA

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***************************/ 

Page 23: Lời nói đầu DA

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();

Page 24: Lời nói đầu DA

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);

}

}