Thông báo

Tất cả đồ án đều đã qua kiểm duyệt kỹ của chính Thầy/ Cô chuyên ngành kỹ thuật để xứng đáng là một trong những website đồ án thuộc khối ngành kỹ thuật uy tín & chất lượng.

Đảm bảo hoàn tiền 100% và huỷ đồ án khỏi hệ thống với những đồ án kém chất lượng.

CHẾ TẠO HỆ THỐNG XÁC ĐỊNH KHOẢNG CÁCH GIỮA Ô TÔ VỚI CHƯỚNG NGẠI VẬT

mã tài liệu 300600100042
nguồn huongdandoan.com
đánh giá 5.0
mô tả 100 MB Bao gồm tất cả file ..... nhiều tài liệu liên quan đến cảm biến, vi điều khiển, thiết kế mạch. ( đồ án đang trong giai đoạn hoàn thiện. 50%)
giá 589,000 VNĐ
download đồ án

NỘI DUNG ĐỒ ÁN

XÁC ĐỊNH KHOẢNG CÁCH GIỮA Ô TÔ, 200 MB Bao gồm tất cả file CAD, thiết kế 2D....THIẾT KẾ GIỮA Ô TÔ VỚI CHƯỚNG NGẠI VẬT, nguyên lý GIỮA Ô TÔ VỚI CHƯỚNG NGẠI VẬT, bản vẽ thiết kế GIỮA Ô TÔ VỚI CHƯỚNG NGẠI VẬT

200 MB Bao gồm tất cả file CAD, thiết kế 2D....CHẾ TẠO HỆ THỐNG XÁC ĐỊNH KHOẢNG CÁCH GIỮA Ô TÔ VỚI CHƯỚNG NGẠI VẬT, bản vẽ thiết kế XÁC ĐỊNH KHOẢNG CÁCH GIỮA Ô TÔ

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH

LUẬN VĂN THẠC SĨ

CHẾ TẠO HỆ THỐNG XÁC ĐỊNH KHOẢNG CÁCH GIỮA Ô TÔ VỚI CHƯỚNG NGẠI VẬT

­HỌ VÀ TÊN HỌC VIÊN  :

GV HƯỚNG DẪN             :  PGS TS. ĐỖ VĂN DŨNG                                     

CHUYÊN NGÀNH : KỸ THUẬT Ô TÔ – MÁY KÉO

MÃ SỐ NGÀNH     : 60 52 35

TỔNG QUAN :

          Hệ thống xác định chướng ngại vật là một hệ thống nhằm cải thiện thêm tính an toàn trên xe hơi, bên cạnh hệ thống túi khí( air bag), hệ thống thắng ABS v..v… thì hệ thống xác định khoảng cách từ ô tô đến chướng ngại vật được lắp trên một số loại ô tô đắt tiền. Vì chi phí chế tạo hệ thống khá đắt nên ở Việt Nam hiện nay, hệ thống xác định chướng ngại vật  (Pre- Crash Safety System) chỉ được trang bị cho xe Lesus LS460, một dòng xe siêu sang của TOYOTA. Hệ thống này có ưu điểm khá lớn khi điều khiển xe ở tốc độ cao, khi qua đường hoặc khi lùi xe. Với những ưu điểm vượt trội như vậy vấn đề đặt ra làm sao có thể thiết kế hệ thống này với một giá cả hợp lí và chất lượng không thua kém hệ thống trang bị trên các xe ô tô đắt tiền. Đây là vấn đề cần quan tâm để có thể trang bi hệ thống này cho nhiều dòng xe khác, không chỉ trên các xe đắt tiền.

          Mục tiêu thứ nhất của đề tài là phải tìm loại cảm biến đo khoảng cách phù hợp. Loại cảm biến này có khả năng phát hiện ra chướng ngại vật trong một khoảng cách mà lái xe có thể xử lí an toàn

          Mục tiêu thứ hai là bố trí hệ thống xác định chướng ngại vật trên xe sao cho phù hợp

          Mục tiêu cuối cùng là lập trình sao cho hệ thống có thể hiển thị khoảng cách lên màn hình và điều khiển được cảm biến chính xác.

 MỤC TIÊU VÀ NHIỆM VỤ CỦA LUẬN VĂN

  Luận văn Nghiên cứu, thiết kế và chế tạo hệ thống xác định khoảng cách từ ô tô đến chướng ngại vật" có nội dung chủ yếu:

     - Phân tích các va chạm thường gặp khi chạy xe trên đường.

     - Xây dựng phương trình và giải thuật để tính toán khoảng cách cho cảm biến khi tín hiệu đưa về.

     - Dùng Phần mềm để lập trình và điều khiển cho hệ thống hiển thị khoảng cách và điều khiển cám biến.

    -  Thiết kế và thi công mô hình.

PHẠM VI NGHIÊN CỨU

  1.  Nghiên cứu về phương pháp thu và phát của cảm biến siêu âm
  2. Nghiên cứu phương pháp tính toán hệ thống khi xe di chuyển trên đường đến chướng ngại vật
  3. Nghiên cứu tính toán các thông số từ xe đến chướng ngại vật.
  4. Lập trình cho hệ thống cảnh báo
  5. Đưa ra mô hình toán học và mô phỏng khi xe gặp chướng ngại vật và cách yêu cầu khác
  6.  Áp dụng tính toán thiết kế mô hình.

PHƯƠNG PHÁP NGHIÊN CỨU

  1. Thu thập tài liệu liên quan đến đề tài nghiên cứu.
  2. Nghiên cứu các hệ thống xác định chướng ngại vật của các hãng xe trên thế giới. Tác dụng cụ thể của hệ thống. Tính toán và lập trình chi tiết cho hệ thống khi xe đang chạy.
  3. Xây dựng chương trình và mô phỏng việc hòa, từ đó thiết kế và thi công mô hình thực tế.
  4. Phân tích các kết quả nhận được và các kiến nghị.
  5. Đánh giá tổng quát toàn bộ bản luận văn. Đề nghị hướng phát triển của đề tài.

ĐIỂM MỚI CỦA LUẬN VĂN

1. Tính toán các thông số trong cảm biến tránh va chạm.

          2. Đưa ra cách tính toán và xây dựng mô hình về hệ thống cảnh báo va chạm.

3. Thiết kế và chế tạo hệ thống xác định khoảng cách từ ô tô đến chướng ngại vật.

4. Điều khiển được cảm biến có khả năng phát hiện chướng ngại vật xa hơn

5. Giá thành hợp lí, phù hợp với khả năng tiêu dùng của người Việt Nam

GIÁ TRỊ THỰC TIỄN CỦA ĐỀ TÀI

Từ nhu cầu và sự an toàn của người lái khi được trang bị hệ thống có thể phát ra tín hiệu khi có vật cản trên đường, giúp cho lái xe có thể an tâm khi di chuyển cũng như góp phần làm giảm tai nạn giao thông. Chính vì lí do đó, đề tài “ Nghiên cứu thiết kế chế tạo hệ thống xác định khoảng cách từ ô tô đến chướng ngại vật” được hình thành. 

  Từ công việc nghiên cứu của luận văn:

  1. Từ việc thiết kế chế tạo thành công hệ thống phát hiện chướng ngại vật
  2. Với kết quả nhận được có thể:
    • Ứng dụng rộng rãi trong các dòng xe du lịch, xe di chuyển trong địa hình phức tạp vì giá thành không cao
    • Giúp các doanh nghiệp đầu tư và nghiên cứu hướng phát triển của hệ thống này
    • Sử dụng làm tài liệu giảng dạy.
    • Giúp cho các nhà thiết kế các tài liệu quan trọng.

CHƯƠNG 1 : TỔNG QUAN VỀ CẢM BIẾN SIÊU ÂM

1.1 Giới thiệu về cảm biến siêu âm (Ultrasonic sensor) :

  • Cơ sở vật lí siêu âm
  • Sóng âm là những sóng cơ truyền trong các môi trường khí, lỏng, rắn.                                                                             Sóng Âm thanh di chuyển với vận tốc thay đổi theo Nhiệt độ và Áp suất của môi trường. Tại Nhiệt độ và áp suất tiêu chuẩn v= 300 m /s.                                                              
  •  Phân loại:    có 3 loại sóng :   f<16Hz:hạ âm, f = 16 - 20.000 Hz: âm nghe được, f > 20.000 Hz: siêu âm
  • Tần số, bước sóng và tốc độ truyền sóng l=c/f
  • Tương tác của siêu âm  bao gồm : phản xạ, tán xạ, khúc xạ, nhiễu xạ, giao thoa, sự hấp thụ, sự suy giảm.
  • Trong phần này chúng ta chủ yếu nghiên cứu phần phản xạ :

            Sự phản xạ bao gồm  :

Trở kháng âm : Z= r.c

Nếu một trở kháng âm của một môi trường giống như trong môi trường khác, âm sẽ được truyền từ môi trường này sang môi trường kia. Sự khác nhau của trở kháng âm hai môi trường gây ra hiện tượng một phần âm thanh bị phảm xạ tại mặt phân cách.

 Hệ số phản xạ :(ar)

Hệ số phản xạ và hệ số truyền qua :        

                                                                                    Hình 1.1 : Phương pháp phản xạ

 Sự cấu thành mặt phân cách :

Phần trăm khi sóng âm đi từ môi trường có kháng trở cao sang môi trường có kháng trở thấp và ngược lại là như nhau.                                                                                       Phần trăm phản xạ tỉ lệ với bình phương hiệu trở kháng âm hai môi trường Tín hiệu phản xạ :  Sóng âm có bị phản  xạ nhiều lần khi môi trường không đồng nhất hoặc đi qua nhiều lớp môi trường.

                                                                                                            Hình 1.2 : Tín hiệu phản xạ

 

Phản xạ khếch tán

                                                                                                                                                                        Hình 1.3 : Phản xạ khếch tá

  • Tán xạ

Sự tán xạ hay còn gọi là sự phản xạ không chính xác, sự tán xạ xảy ra khi bề mặt phân cách nhỏ, nhỏ hơn vài bước sóng. Mỗi mặt phân cách hoạt động như một nguồn âm mới, và âm được phản xạ theo tất cả các hướng. Sự tán xạ do các phần tử nhỏ có kích thước thẳng nhỏ hơn bước sóng gọi là Raylegh, sự tán xạ phụ thuộc vào tần số theo hàm mũ 2 đến 6.

  • Tính toán suy giảm

Sự hấp thụ phụ thuộc vào tính chất chùm tia và tính nhớt và thời gian phục hồi của môi trường.

            Tốc độ phân tử cực đại

            Sự chiếm chỗ phần tử cực đại

.....................................

5.3/ Ngắt Timer:

            Ngắt Timer xảy ra khi cờ TFx được xét (bộ đếm tràn). Cờ TFx được clear bằng bằng phần mềm hoặc khi vi điều khiển thực hiện chương trình con phục vụ ngắt Timer

>> Thanh ghi TMOD

Các Timer thường được khởi tạo 1 lần ở đầu chương trình để thiết lập mode hoạt động phục vụ các ứng dụng điều khiển liên quan đến định thời hay đếm xung ngoại.

            Tùy thuộc vào yêu cầu cụ thể mà ta điều khiển cho Timer bắt đầu đếm, ngừng hay khởi động đếm lại từ đầu.

            Thanh ghi TMOD là thanh ghi đầu tiên cần phải khởi tạo để thiết lập trạng thái hoạt động cho các Timer.


Cho Timer 1
    

Cho Timer 0

Chú thích

Bit
    

Chú thích

Gate
    

   - Khi đặt Bit gate = 1 thì Timer0 chỉ làm việc khi các cổng vào

của lệnh ngắt –INT( bit P3.3 hay P3.2) sẽ không có tác dụng

   - Khi đặt Bit gate = 1 thì Timer1 chỉ làm việc khi INT=1

C/
    

   - Khi đặt ở mức áp cao thì các Timer dùng như bộ đếm xung (Counter)

 vào từ bên ngoài:

            Với Timer1 xung đếm cho vào Bit P3.5

            Với Timer0 xung đếm cho vào Bit P3.4

   - Khi đặt ở mức áp thấp thì các Timer dùng như  đếm xung của

mạch dao động, lúc đó nó có thể xem như một đồng hồ tự chạy (Timer)

M1
    

Bit chọn mode

M0
    

Bit chọn mode

Hai bit M0 và M1 tạo ra 4 trạng thái tương ứng vớ 4 kiểu làm việc khác nhau của Timer 0 hay Timer1

M1
    

M0
    

Mode( Kiểu)
    

Chức năng

0
    

0
    

0
    

Chế độ định thời 13 bit (tương thích với họ 8048)

0
    

1
    

1
    

Chế độ Timer hay Counter 16 bit

1
    

0
    

2
    

Chế độ Timer hay Counter 8 bit, tư nạp lại

1
    

1
    

3
    

Timer 0 được tách thành 2 Timer 8 bit

            -Timer 8 bit TL0 được điều khiển bởi các bit của mode Timer0

            -Timer 8 bit TH0 được điều khiển bởi các bit của mode Timer1

Timer 1 không hoạt động ở mode 3

>> Thanh ghi THx và TLx

Các giá trị đếm được của Timer/Counter thì được lưuu trong  thanh ghi THx và TLx.

Nếu ta không thiết lập giá trị bắt đầu đếm cho các thanh ghi TLx và THx là 0000h thì Timer sẽ bắt đầu đếm từ  giá trị 0000H đến giá trị FFFFH.

>> Cờ báo tràn TFx

Nếu ta thiết lập giá trị bắt đầu đếm cho các thanh ghi TLx và THx là khác 0000h thì Timer sẽ bắt đầu đếm từ  giá trị ta gán đến giá trị FFFFH. Nhưng khi chuyển từ giá trị FFFFh đến 0000h thì sẽ sinh ra tràn làm cho bit TFx = 1 rồi tiếp tục đếm từ giá trị 0000h.

Để cho Tiner luôn bắt đầu đếm từ giá trị ta gán thì ta có thể lập trình chờ sau mỗi lần tràn ta sẽ cho xóa cờ TFx và gán lại giá trị cho TLx/THx để Timer luôn bắt đầu đếm từ giá trị khởi gán lên.

>> Thanh ghi điều khiển TRx

Thanh ghi này có tác dụng cho Timer được hay không được phép đếm xung

          Nếu TRx = 1 thì Timer được phép đếm xung

          Nếu TRx = 0 thì timer không được phép đếm xung

5.4/ Vector ngắt:

Khi CPU đáp ứng một yêu cầu ngắt thì nó nhảy tới một địa chỉ tương ứng trong bảng vector ngắt để thực hiện lệnh

Interrupt
    

Flag
    

Vector Address

System Reset
    

RST
    

0000H

External 0
    

IE 0
    

0003H

Timer 0
    

TF 0
    

000BH

External 1
    

IE 1
    

0013H

Timer 1
    

TF 1
    

001BH

Serial Port
    

R1 or T1
    

0023H

Timer 2
    

TF2 or EXF2
    

002BH

5.5/ Ngắt Port nối tiếp:

Xảy ra khi cờ ngắt TI hoặc RI được xét. TI và RI phải được clear bằng phần mềm.

Trong đó :

          - TI là cờ ngắt phát. Được set khi truyền xong 1 ký tự và được clear bởi phần mềm

          - RI là cờ ngắt thu. Được set khi nhận xong 1 ký tự và được clear bởi phần mềm

          - Bảng số liệu tốc độ Baud sử dụng tụ thạch anh 12MHz

Tốc độ baud
    

TH1 ( Số thập phân )
    

TH1 ( Số Hex )

9600
    

-7
    

F9H

2400
    

-13
    

F3H

1200
    

-23
    

E6H

- Thanh nhớ đệm SBUF(Serial Buffer): là thanh nhớ đệm 8 bit có địa chỉ là 99H, nó dùng cất giữ tạm các dữ liệu 8 bit. Khi muốn truyền một dữ liệu ta phải move dữ liệu đó vào bộ nhớ đệm.

5.6/ Ngắt ngoài:

    Ngắt ngoài xảy ra khi có mức thấp hoặc cạnh âm trên chân (bit P3.2) hoặc  (bit P3.3) của  8051

+ Khi chân  nhân được tín hiệu điều khiển ( với mức áp thấp ), nó sẽ dừng ngay chương trình đang chạy và nhảy tới địa chỉ 0003H của bộ nhớ EEPROM và cho thi hành chương trình đã có ở địa chỉ này.

+ Khi chân  nhân được tín hiệu điều khiển ( với mức áp thấp ), nó sẽ dừng ngay chương trình đang chạy và nhảy tới địa chỉ 0013H của bộ nhớ EEPROM và cho thi hành chương trình đã có ở địa chỉ này.

    Kích bằng cạnh hay kích bằng mức được lựa chọn bằng hai bit IT0 hoặc IT1 trong thanh ghi SCON .

+ Nếu IT1=0 ngắt ngoài 1 được kích khởi mức bởi việc phát hiện mức áp thấp tại chân

+ Nếu IT1=1 ngắt ngoài 1 được kích khởi cạnh bởi việc phát hiện mức áp thấp tại chân

    Có hai bit IE0 và IE1 trong TCON chỉ ra trạng thái có hay không có ngắt ngoài (phát hiện cạnh xuống tại chân  hay ) .

5.7/ Ngắt dùng RESET

Có thể xem tác dụng Reset (cho bit tại chân số 9 lên 1) cũng là một ngắt đặt biệt. Khi tín hiệu Reset xuất hiện, nó sẽ dừng ngay chương trình chính và nhảy về địa chỉ gốc 0000h của bộ nhớ EEPROM và cho chạy chương trình bắt đầu bằng địa chỉ này.

LCD HD44780 (theo datasheet của Hitachi)

  1. LCD : màn hình LCd bao gồm : màn hình hiển thị, vùng chứa bộ nhớ, bộ phận hiển thị, mạch tích hợp
  1. Hình dạng và kích thước của LCD  

  hình : Hình dạng của LCD 16X2

Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này được đánh số thứ tự và đặt tên như hình bên dưới :

Hình : Sơ đồ chân kết nối của LCD

  1. Chức năng các chân :

 

Chân số

 

Tên

 

Chức năng

 

1

 

VSS

 

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển

 

2

 

VDD

 

Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch

điều khiển

 

3

 

Vee

 

Chân này dùng để điều chỉnh độ tương phản của LCD.

 

 

 

 

4

 

 

 

 

RS

 

Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic

“1” (VCC) để chọn thanh ghi.

 

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

 

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.

 

5

 

R/W

 

Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt

động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

 

 

 

 

 

6

 

 

 

 

 

E

 

Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.

 

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.

 

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low- to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.

 

 

 

 

7-14

 

 

 

 

DB0- DB7

 

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử

dụng 8 đường bus này :

 

+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.

 

+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7

 

 

Bảng 1 : Chức năng các chân của LC    

* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua các chân DBx.

Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD thông qua các chân DBx.

3>Sơ đồ khối của HD44780

Để hiểu rõ hơn chức năng các chân và hoạt động của chúng, ta tìm hiểu sơ qua chíp HD44780 thông qua các khối cơ bản của nó.

a>Các thanh ghi

Hình 3 : Sơ đồ khối của HD44780*

Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR (Instructor Register) và thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR. Nghĩa là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó.

b> Cờ báo bận BF: (Busyflag)

Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần một khoảng thời gian để hoàn tất. Khi đang thực thi các hoạt động bên trong chip như thế, LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF (thông qua chân DB7 khi có thiết lập RS=0, R/W=1) lên để báo cho MPU biết nó đang “bận”. Dĩ nhiên, khi xong việc, nó sẽ đặt cờ BF lại mức 0.

c> Bộ đếm địa chỉ AC : (Address Counter)

Như trong sơ đồ khối, thanh ghi IR không trực tiếp kết nối với vùng RAM (DDRAM và CGRAM) mà thông qua bộ đếm địa chỉ AC.  Bộ đếm này lại nối với 2 vùng RAM theo kiểu rẽ nhánh. Khi một địa chỉ lệnh được nạp vào thanh ghi IR, thông tin được nối trực tiếp cho 2 vùng RAM nhưng việc chọn lựa vùng RAM tương tác đã được bao hàm trong mã lệnh.

Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị và nội dung của AC được xuất ra cho MPU thông qua DB0-DB6 khi có thiết lập RS=0 và R/W=1 (xem bảng tóm tắt RS - R/W).

Lưu ý: Thời gian cập nhật AC không được tính vào thời gian thực thi lệnh mà được cập nhật sau khi cờ

BF lên mức cao (not busy), cho nên khi lập trình hiển thị, bạn phải delay một khoảng tADD khoảng 4uS-

5uS (ngay sau khi BF=1) trước khi nạp dữ liệu mới. Xem thêm hình bên dưới

Hình 4 : Giản đồ xung cập nhật AC

 

d> Vùng RAM hiển thị DDRAM : (Display Data RAM)

Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM là một ô kí tự trên màn hình và khi bạn ghi vào vùng RAM này một mã 8 bit, LCD sẽ hiển thị tại vị trí tương ứng trên màn hình một kí tự có mã 8 bit mà bạn đã cung cấp. Hình sau đây sẽ trình bày rõ hơn mối liên hệ này :

Hình 4 : Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD

Vùng RAM này có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit. Những vùng RAM còn lại không dùng cho hiển thị có thể dùng như vùng RAM đa mục đích.

Lưu ý là để truy cập vào DDRAM, ta phải cung cấp địa chỉ cho AC theo mã HEX

e> Vùng ROM chứa kí tự CGROM: Character Generator ROM

Vùng ROM này dùng để chứa các mẫu kí tự loại 5x8 hoặc 5x10 điểm ảnh/kí tự, và định địa chỉ bằng 8 bit. Tuy nhiên, nó chỉ có 208 mẫu kí tự 5x8 và 32 mẫu kí tự kiểu 5x10 (tổng cộng là 240 thay vì 28  = 256 mẫu kí tự). Người dùng không thể thay đổi vùng ROM này.

 

Hình 5 : Mối liên hệ giữa địa chỉ của ROM và dữ liệu tạo mẫu kí tự.Như vậy, để có thể ghi vào vị trí thứ x trên màn hình một kí tự y nào đó, người dùng phải ghi vào vùng DDRAM tại địa chỉ x (xem bảng mối liên hệ giữa DDRAM và vị trí hiển thị) một chuỗi mã kí tự 8 bit trên CGROM.  Chú ý là trong bảng mã kí tự trong CGROM  ở hình bên dưới có mã ROM A00.

Ví dụ : Ghi vào DDRAM tại địa chỉ “01” một chuỗi 8 bit “01100010” thì trên LCD tại ô thứ 2 từ trái sang (dòng trên) sẽ hiển thị kí tự “b”.

Bảng 3 : Bảng mã kí tự (ROM code A00)f> Vùng RAM chứa kí tự đồ họa CGRAM : (Character Generator RAM)

Như trên bảng mã kí tự, nhà sản xuất dành vùng có địa chỉ byte cao là 0000 để người dùng có thể tạo các mẫu kí tự đồ họa riêng. Tuy nhiên dung lượng vùng này rất hạn chế: Ta chỉ có thể tạo 8 kí tự loại 5x8 điểm ảnh, hoặc 4 kí tự loại 5x10 điểm ảnh.

Để ghi vào CGRAM, hãy xem hình 6 bên dưới.

Hình 6 : Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM, và mã kí tự.Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110

- Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM này gởi ra cho MPU (ở chế độ đọc). Nghĩa là, khi MPU ghi thông tin vào DR, mạch nội bên trong chíp sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM. Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU.

Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanh ghi này khi giao tiếp với MPU. Bảng sau đây tóm tắt lại các thiết lập đối với hai chân RS và R/W theo mục đích giao tiếp.

 

RS

R/W

Khi cần

0

0

Ghi vào thanh ghi IR để ra lệnh cho LCD (VD: cần display clear,…)

0

1

Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0-DB6

1

0

Ghi vào thanh ghi DR

1

1

Đọc dữ liệu từ DR

 

Bảng 2 : Chức năng chân RS và R/W theo mục đích sử dụn

GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C CHO VI ĐIỀU KHIỂN

Có thể nói C là một ngôn ngữ lập trình bậc cao được sử dụng rất rộng rãi và đa năng, chương trình viết ra rất hiệu quả và chặc chẽ, đồng thời cho phép thể hiện rõ tính có cấu trúc của chương trình. Thực tế cho thấy đối với nhiều vấn đề ứng dụng có liên quan đến điều khiển và giám sát, việc lựa chọn sử dụng ngôn ngữ C tỏ ra hiệu quả hơn so với bất kỳ một ngôn ngữ nào khác. Ngôn ngữ C đã được phát triển để dùng cho máy tính lớn( mainframe), máy tính mini và cả cho máy tính cá nhân(PC). Cho đến ngày nay, ngôn ngữ lập trình C còn có thể sử dụng cho hầu hết các vi điều khiển và vi xử lí.

  1. Các kiểu dữ liệu :

Trình dịch C51 tạo ra các kiểu dữ liệu C tiêu chuẩn và bổ sung thêm một vài kiểu dữ liệu mở rộng được giới thiệu để hỗ trợ cho họ vi điều khiển 8051. Bảng dưới liệt kê danh sách các kiểu dữ liệu thường gặp.

Kiểu dữ liệu

Lượng bit

Vùng giá trị

Bit

1

0 hoặc 1

Signed char

8

-128 đến +127

Unsigned char

8

0 đến 255

Enum

16

-32768 đến +32767

Signed short

16

-32768 đến +32767

Unsigned int

16

0 đến 65535

Signed int

16

-32768 đến +32767

unsigned int

16

0 đến 65535

Signed long

32

-2147483648 đến 2147483647

unsigned long

32

0 đến 4294967295

Float

32

đến

Sbit

1

0 hoặc 1

sfr

8

0 đến 255

Sfr 16

16

0 đến 65535

Hình : các kiểu dữ liệu C51

Các kiểu dữ liệu này được mô tả như sau :

  • Bit : Kiểu dữ liệu này có thể được sử dụng để khai báo biến một bit
  • Signed char/ unsigned char : Các kiểu dữ liệu này giống như trong ngôn ngữ C tiêu chuẩn và được sử dụng để khai báo biến kí tự có dấu và không có dấu. Mỗi biến kí tự(character) có độ dài 1 byte (8 bit).
  • Signed short/ unsigned short : Các kiểu dữ liệu này giống như trong ngôn ngữ C tiêu chuẩn và được sử dụng để khai báo các biến short có dấu và không có dấu. Mỗi biến short có độ dài là 2 byte(16 bit).
  • Signed int/ unsigned int  : Các kiểu dữ liệu này giống như trong ngôn ngữ C tiêu chuẩn và được sử dụng để khai báo biến nguyên có dấu và không có dấu. Các biến nguyên có độ dài là 2 byte (16 bit).
  • Signed long/ unsigned long : Các kiểu dữ liệu này giống như trong ngôn ngữ C tiêu chuẩn và được sử dụng để khai báo biến nguyên(long integer) có dấu và không có dấu.
  • Float : kiểu này có thể sử dụng để khai báo một biến dấu phẩy động.
  • Sbit : Kiểu dữ liệu này được đưa ra dùng cho họ 8051 và được sử dụng để khai báo một bit riêng lẻ bên trong SFR của họ 8051.
  • Srf : Kiểu dữ liệu này tương tự với sbit nhưng được sử để khai bào các biến kiểu 8 bit.
  • Srf16 : Kiểu dữ liệu này tương tự với srf nhung được sử dụng để khai báo biến 16 bit. Khi sử dụng kiểu dữ liệu này byte thấp sẽ đi trước byte cao.

CÁC KIỂU BỘ NHỚ :

Kiến trúc 8051 hỗ trợ cả chương trình (hoặc mã) và vùng bộ nhớ dữ liệu. Bộ nhớ chương trình là loại dùng để đọc và vì vậy không thể ghi  vào. Tùy thuộc vào loại bộ xử lý được sử dụng mà dung lượng của bộ nhớ chương trình có sẵn bên trong cũng khác nhau.

Bộ nhớ dữ liệu nằm sẵn bên trong CPU của vi điều khiển 8051 có thể đọc ra hoặc ghi và. Bộ nhớ dữ liệu có thể có dữ liệu tới 256 byte, tùy thuộc vào loại vi điều khiển được sử dụng.

Kiểu bộ nhớ sẽ quy định kiểu bộ nhớ nào được sử dụng cho một ứng dụng cụ thể. Có 3 kiểu bộ nhớ, với tên gọi là Nhỏ (Small, xếp chặt (compact) và lớn ( large) và kiểu bộ nhớ được chỉ định bằng cách sử dụng chỉ hướng cho trình dịch( compiler directive). Kiểu bộ nhớ small được sử dụng nếu tất cả các biến đều nằm trong bộ nhớ dữ liệu bên trong của 8051. Kiểu bộ nhớ này tạo ra mã nhanh nhất và hiệu quả nhất, vì vậy có thể sử dụng bất cứ khi nào có thể. Trong kiểu bộ nhớ cpmpact, tất cả các biến đều nằm trong một trang của bộ nhớ dữ liệu bên ngoài. CÓ thể sử dụng nhiều nhất là 256 byte của các biến. Kiểu bộ nhớ này không hiệu quả bằng kiểu small. Rong kiểu bộ nhớ large, tất cả các biến đều nằm trong bộ nhớ dữ liệu (bên) ngoài có thể sử dụng nhiều nhất là 64 kbyte dữ liệu. Kiểu bộ nhớ large tạo ra nhiều mã hơn so với hai kiều còn lại và vì vậy kiểu bộ nhớ này tỏ ra không hiệu quả lắm.

Việc dịch chương trình trong kiểu bộ nhớ small luôn tạo ra nhanh nhất và dung lượng nhỏ nhất do việc truy cập bộ nhớ bên trong bao giờ cũng nhanh hơn bộ nhớ bên ngoài.

MÔ TẢ CHƯƠNG TRÌNH

Có nhiều phương pháp mà người lập trình có thể lựa chọn để mô tả giải thuật được sử dụng để viết chương trình. TRước đây lưu đồ

Sơ đồ bố trí cảm biến trên ô tô

Sơ đồ nối chân

Mạch in

Mạch điều khiển

Close