Download miễn phí Thiết kế và xây dựng hệ thống ghép nối vi điều khiển (mC)





LỜI NÓI ĐẦU 1

CHƯƠNG I 3

NHIỆM VỤ VÀ PHƯƠNG HƯỚNG THỰC HIỆN 3

1.1. Nhiệm vụ của đồ án. 3

1.2. Phân tích nhiệm vụ. 4

1.3. Phương hướng thực hiện. 5

1.3.1. Lựa chọn thiết bị. 5

1.3.2. Phương hướng thiết kế. 7

CHƯƠNG 2 9

LỰA CHỌN LINH KIỆN THIẾT KẾ 9

VÀ MỘT SỐ LÝ THUYẾT VỀ CHUYỂN ĐỔI A/D 9

2.1. Lựa chọn linh kiện thiết kế. 9

2.1.1. Giới thiệu vi mạch điều khiển AT90S8535. 9

2.1.1.1. Cấu trúc của vi mạch AT90S8535. 14

2.1.1.2. Tập thanh ghi đa năng của C AT90S8535. 17

2.1.1.3. Bộ số học và Logic - ALU. 19

2.1.1.4. Đặc điểm các bộ nhớ trong của C AT90S8535. 19

2.1.1.5. Các chế độ địa chỉ của C AT90S8535. 24

2.1.1.6. Thời gian truy cập bộ nhớ và thời gian thực hiện lệnh. 27

2.1.1.7. Không gian bộ nhớ I/O. 29

2.1.1.8. Ngắt và xử lý ngắt trong C AT90S8535. 39

2.1.1.9. Các chế độ nghỉ của C AT90S8535 54

2.1.1.10. Các mạch điều khiển trong C AT90S8535. 57

2.1.2. Module LCD (20x4 characters). 138

2.1.3. IC Max232. 145

2.1.3.1. Giới thiệu chuẩn RS232. 145

2.1.3.2. IC Max232. 149

2.1.4. Cảm biến nhiệt LM335 151

2.2. Một số lý thuyết về chuyển đổi A/D. 153

2.2.1. Khái niệm chung. 153

2.2.2. Một số phương pháp chuyển đổi AD. 155

2.2.2.1. Phương pháp chuyển đổi song song. 155

2.2.2.2. Phương pháp xấp xỉ liên tiếp. 156

2.2.2.3. Phương pháp tích phân hai sườn dốc. 157

CHƯƠNG 3 160

THIẾT KẾ HỆ THỐNG PHẦN CỨNG 160

3.1. Sơ đồ cấu trúc phần cứng của hệ thống. 160

3.2. Sơ đồ ghép nối C với module LCD. 160

3.3. Sơ đồ ghép nối C với module KeyPad. 162

3.4. Sơ đồ ghép nối C với cảm biến nhiệt LM335. 164

3.4. Sơ đồ ghép nối C với IC Max232. 165

3.5. Sơ đồ kết nối nguồn nuôi cho vi mạch điều khiển. 166

CHƯƠNG 4 168

THIẾT KẾ HỆ THỐNG PHẦN MỀM CHO C AT90S8535 168

4.1. Biểu đồ chức năng và lưu đồ tổng thể của chương trình điều khiển C. 168

4.2. Lưu đồ thuật toán của các chức năng chính. 174

4.2.1. Chức năng giao tiếp với LCD controller. 174

4.2.2. Chức năng điều khiển và hiển thị kết quả ADC. 176

4.2.3. Chức năng giao tiếp với KeyPad. 181

4.2.4. Chức năng truyền nhận dữ liệu nối tiếp với PC. 189

CHƯƠNG 5 192

THIẾT KẾ HỆ THỐNG PHẦN MỀM TRÊN PC 192

5.1. Mục đích của phần mềm trên PC. 192

5.2. Một số chức năng chính của chương trình 194

5.3. Nhận xét và đánh giá. 197

KẾT LUẬN 199

PHỤ LỤC 201

CHƯƠNG TRÌNH ĐIỀU KHIỂN C AT90S8535 201

MỤC LỤC 243

 

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


báo thanh ghi truyền dữ liệu rỗng và Ngắt thông báo kết thúc nhận dữ liệu.
Bộ đệm truyền và nhận.
Thao tác truyền dữ liệu.
Hình 2.24 : Sơ đồ khối mạch truyền dữ liệu
Thao tác truyền dữ liệu được bắt đầu bằng việc dữ liệu ghi sẽ được truyền tới thanh ghi dữ liệu I/O của UAR là UDR. Dữ liệu được truyền từ thanh ghi UDR tới thanh ghi dịch chuyển truyền khi :
Một ký tự mới được ghi tới UDR sau khi bit Stop của ký tự trước đã được dịch chuyển ra ngoài thanh ghi. Thanh ghi dịch chuyển được nạp tức thì.
Một ký tự mới được ghi tới URD trước khi bit Stop của ký tự trước được dịch chuyển ra ngoài thanh ghi. Thanh ghi dịch chuyển được nạp khi bit Stop của ký tự hiện thời đang được truyền bị dịch chuyển ra ngoài thanh ghi.
Nếu thanh ghi dịch chuyển truyền 10 (11) bit rỗng, dữ liệu được truyền từ thanh ghi UDR tới thanh ghi dịch chuyển. Bit UDRE (UART Data Register Empty) trong thanh ghi trạng thái UART (USR) được thiết lập, UART sẵn sàng nhận ký tự tiếp theo. Tại cùng thời điểm dữ liệu được truyền từ UDR tới thanh ghi dịch chuyển 10(11) bit, bit 0 của thanh ghi dịch chuyển được xoá (bit Start) và bit 9 hay 10 được thiết lập (bit Stop). Nếu từ dữ liệu 9 bit được chọn (bit CHR9 của UCR được thiết lập) thì bit TXB8 trong UCR được truyền tới 9 bit trong thanh ghi dịch chuyển truyền.
Cùng với tốc độ Buad theo sau thao tác truyền tới thanh ghi dịch chuyển, bit Start được dịch chuyển ra chân TXD. Sau đó là dữ liệu, bit LSB được truyền đầu tiên. Khi bit Stop đã được di chuyển ra ngoài, thanh ghi dịch chuyển được nạp nếu có bất kỳ dữ liệu mới nào đã được ghi tới thanh ghi UDR trong qua trình truyền. Trong khi nạp, bit UDRE được thiết lập. Nếu không có dữ liệu mới trong thanh ghi UDR để gửi khi bit Stop được dịch chuyển ra ngoài thì cờ UDRE sẽ giữ nguyên trạng thái thiết lập cho đến khi UDR được ghi lại. Khi không có dữ liệu mới được ghi và bit Stop đã xuất hiện trên chân TXD được một đơn vị độ dài bit, cờ kết thúc truyền (TXC) trong USR được thiết lập .
Bit TXEN trong thanh ghi UCR cho phép thao tác truyền của UART khi được thiết lập. Khi bit này bị xoá, chân PD1 có thể được sử dụng như một chân I/O chung. Khi bit TXEN được thiết lập, dữ liệu truyền qua UART được kết nối tới chân PD1, bắt buộc chân này là đầu ra mà không cần quan tâm tới sự thiết lập của bit DDD1 trong thanh ghi DDRD.
Thao tác nhận dữ liệu.
Mạch thu đầu cuối (front-end) lấy mẫu tín hiệu trên chân RXD tại tần số bằng 16 lần tốc độ Baud. Trong khi đường truyền rỗi, một mẫu đơn có giá trị logic 0 sẽ được hiểu như sườn xuống của bit Start và sự kiểm tra bit Start sau đó được bắt đầu. Sau mỗi quá trình chuyển từ 1 sang 0, bộ thu lấy mẫu trên chân RXD tại những mẫu 8, 9 và 10. Nếu hai hay nhiều hơn 3 mẫu này có giá trị logic 1 thì bit Start bị loại bỏ như một nhiễu xung và bộ thu bắt đầu tìm kiếm sự chuyển tiếp từ 1 tới 0 tiếp theo.
Bất cứ khi nào, một bit Start được phát hiện, sự lấy mẫu của các bit dữ liệu theo sau bit Start được thực hiện. Các bit này cũng được lấy mẫu tại các mẫu 8, 9 và 10. Giá trị logic được tìm thấy tại ít nhất hai trong ba mẫu được giữ lại như là giá trị bit. Tất cả các bit được dịch chuyển vào thanh ghi dịch chuyển truyền khi chúng được lấu mẫu. Việc lấy mẫu một ký tự vào được mô tả trong hình 2.26.
Hình 2.25 : Sơ đồ khối mạch nhận dữ liệu của UART
Hình 2.26 : Quá trình lấy mẫu của mạch thu
Khi bit Stop đi vào mạch thu, phần lớn giá trị của 3 mẫu phải là 1 để xác nhận bit Stop. Nếu hai hay nhiều hơn các mẫu có giá trị logic 0, cờ lỗi khung (Framing Errror flag (FE)) trong thanh ghi trạng thái UART (USR) được thiết lập. Trước khi đọc thanh ghi UDR, người sử dụng phải luôn kiểm tra bit FE để phát hiện lỗi khung.
Cho dù một bit stop có được phát hiện tại cuối mỗi chu kỳ nhận ký tự hay không, dữ liệu vẫn được truyền vào thanh ghi UDR và cờ RXC trong thanh ghi USR được thiết lập. Thực tế thanh ghi UDR gồm hai thanh ghi vật lý độc lập, một cho dữ liệu truyền và một cho dữ liệu nhận. Khi thanh ghi UDR được đọc, thanh ghi dữ liệu nhận được truy nhập và khi UDR được ghi, thanh ghi dữ liệu truyền được truy nhập. Nếu từ dữ liệu 9 bit được chọn (bit CHR9 trong thanh ghi điều khiển UART(UCR) được thiết lập) thì bit RXB8 trong thanh ghi UCR được nạp với bit 9 trong thanh ghi dịch chuyển truyền khi dữ liệu được truyền vào thanh ghi UDR.
Nếu sau khi đã nhận một ký tự, thanh ghi UDR không được đọc kể từ lần nhận cuối cùng, thì cờ tràn OverRun (OR) trong thanh ghi UCR được thiết lập. Điều này có nghĩa là byte dữ liệu cuối cùng được dịch chuyển vào thanh ghi dịch không được truyền vào thanh ghi UDR và đã bị mất. Bit OR được nhớ đệm và được cập nhật khi một byte dữ liệu hợp lệ trong thanh ghi UDR được đọc. Do đó, người sử dụng nên luôn kiểm tra bit OR sau khi đọc thanh ghi UDR phát hiện bất kỳ lỗi OverRun nào nếu tốc độ baud cao hay quá trình nạp lệnh của CPU nhanh.
Khi bit RXEN trong thanh ghi UCR được xoá thì mạch thu bị vô hiệu hoá. Điều này có nghĩa là chân PD0 có thể được sử dụng như một chân vào/ra chung. Khi bit RXEN được thiết lập, mạch nhận của UART sẽ được nối tới chân PD0 , PD0 bị ép trở thành chân vào mà không quan tâm đến sự thiết lập của bit DDD0 trong thanh hgi DDRD. Khi chân PD0 bị ép trở thành đầu vào bởi UART, bit PORTD0 có thể vẫn được sử dụng để điều khiển điện trở pull-up trên chân.
Khi bit CHR9 trong thanh ghi UCR được thiết lập, các ký tự được truyền và nhận đều là 9 bit, cộng thêm bit stop và bit start. Bit dữ liệu thứ 9 được truyền là bit TXB8 trong thanh ghi UCR. Bit này phải được thiết lập tới giá trị mong muốn trước khi một quá trình truyền được bắt đầu bằng việc ghi vào thanh ghi UDR. Bit dữ liệu thứ 9 được nhận là bit RXB8 trong thanh ghi UCR.
Thanh ghi dữ liệu I/O của UART : UDR
Thực tế thanh ghi UDR là hai thanh ghi vật lý độc lập có chung một địa chỉ vào/ra. Khi ghi vào thanh ghi, thanh ghi dữ liệu truyền của UART được ghi. Khi đọc từ UDR, thanh ghi dữ liệu nhận được đọc.
Thanh ghi trạng thái UART : USR
USR là thanh ghi chỉ đọc cung cấp các thông tin về trạng thái của UART.
Bit 7 - RXC : Bit thông báo kết thúc nhận dữ liệu của UART (UART Receive Complete)
Bit này được thiết lập khi một ký tự nhận được truyền từ thanh ghi dịch chuyển nhận tới UDR. Bit này được thiết lập mà bất chấp lỗi khung nào được phát hiện. Khi bit RXCIE trong thanh ghi UCR được thiết lập, ngắt kết thúc nhận dữ liệu của UART sẽ được thực hiện khi bit RXC được thiết lập. Bit RXC bị xoá bởi việc đọc UDR. Khi quá trình nhận dữ liệu điều khiển bằng ngắt được sử dụng, thủ tục ngắt kết thúc nhận dữ liệu của UART phải đọc thanh ghi URD để xoá bit RXC, nếu không một ngắt mới sẽ xuất hiện ngay khi thủ tục ngắt này kết thúc.
Bit 6 - TXC : Bit thông báo kết thúc truyền dữ liệu của UART (UART Transmit Complete)
Bit này được thiết lập khi toàn bộ ký tự (bao gồm cả bit Stop) trong thanh ghi dịch chuyển truyền được được dịch chuyển ra và không có dữ liệu mới nào được ghi vào UDR. Cờ này đặc biệt hữu ích trong ghép nối truyền thông tin nối tiếp bán song công (half-duplex), tức là một ứng dụng truyền dữ liệu phải ...

 

Các chủ đề có liên quan khác

Top