Đồ án Nghiên cứu thiết kế hệ thống chuyển mạch của bộ thu thập dữ liệu phục vụ trong lực lƣợng Cơ yếu Công an Nhân dân, đi sâu nghiên cứu thiết kế phần cứng của hệ thống

pdf 67 trang huongle 3090
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Nghiên cứu thiết kế hệ thống chuyển mạch của bộ thu thập dữ liệu phục vụ trong lực lƣợng Cơ yếu Công an Nhân dân, đi sâu nghiên cứu thiết kế phần cứng của hệ thống", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_nghien_cuu_thiet_ke_he_thong_chuyen_mach_cua_bo_thu_th.pdf

Nội dung text: Đồ án Nghiên cứu thiết kế hệ thống chuyển mạch của bộ thu thập dữ liệu phục vụ trong lực lƣợng Cơ yếu Công an Nhân dân, đi sâu nghiên cứu thiết kế phần cứng của hệ thống

  1. MỤC LỤC LỜI NÓI ĐẦU 1 CHƢƠNG 1. DẪN NHẬP 2 1.1. ĐẶT VẤN ĐỀ 2 1.2. MỤC ĐÍCH 3 1.3. GIỚI HẠN ĐỀ TÀI 3 1.4. PHƢƠNG PHÁP 4 1.5. ĐỀ XUẤT MÔ HÌNH CHUYỂN MẠCH MỚI 4 1.5.1 Sơ đồ khối. 4 1.5.2 Chức năng các khối. 5 1.5.2.1 Khối xử lý trung tâm: 5 1.5.2.2 Khối bàn phím: 5 1.5.2.3 Khối hiển thị: 5 CHƢƠNG 2. NGHIÊN CỨU CÁC PHẦN TỬ PHỤC VỤ THIẾT KẾ 6 2.1 HỆ VI XỬ LÝ 6 2.1.1 Giới thiệu chung về hệ vi xử lý. 6 2.1.1.1 Bộ xử lý trung tâm (CPU) 7 2.1.1.2 Bộ nhớ bán dẫn 7 2.1.1.3 Khối phối ghép vào/ra (I/O) 8 2.1.1.4 Bus địa chỉ 8 2.1.1.5 Bus dữ liệu 9 2.1.1.6 Bus điều khiển 9 2.1.2 Giới thiệu về vi điều khiển 8051. 9 2.1.2.1. Tổ chức bộ nhớ 13 2.1.2.2. Bên trong 8051 19 2.2 BÀN PHÍM SỐ 24 2.2.1 Cấu tạo của ma trận phím 4x4. 24 2.2.2 Nguyên lý quét. 26 2.3 HIỂN THỊ LCD 27 2.3.1 Hình dáng và kích thƣớc. 27 2.3.2 Chức năng các chân của LCD 28 2.3.3 Cấu trúc của HD44780. 29
  2. 2.3.3.1 Các thanh ghi 29 2.3.3.2 Cờ báo bận BF: (Busy Flag): 30 2.3.3.3. Bộ đếm địa chỉ AC : (Address Counter) 30 2.3.3.4. Vùng RAM hiển thị DDRAM : (Display Data RAM): 31 2.3.3.5 Vùng RAM chứa kí tự đồ họa CGRAM : (Character Generator RAM) 32 2.3.4 Đặc tính điện của các chân giao tiếp. 32 CHƢƠNG 3.THIẾT KẾ HỆ THỐNG 34 3.1 KHỐI XỬ LÝ TRUNG TÂM 34 3.2 KHỐI BÀN PHÍM 37 3.2.1 IC mã hóa bàn phím EDE1144. 37 3.2.2 Thiết kế khối bàn phím. 41 3.3 KHỐI HIỂN THỊ 43 3.3.1 Thiết kế khối hiển thị LCD. 44 3.4 KHỐI MA TRẬN RƠ LE 45 3.4.1 Ma trận rơ le. 45 3.4.1.1 Rơ le LH1546AEF 45 3.4.1.2. Ma trận rơ le 46 3.4.2 Cách kết nối cổng USB từ máy tính đến cổng USB của các Usb qua rơ le. 57 3.4.3 Kết nối ma trận Rơ le với vi điều khiển 8051. 60 3.5 SƠ ĐỒ THIẾT KẾ TỔNG THỂ VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA THIẾT BỊ 61 3.5.1 Sơ đồ thiết kế tổng thể của thiết bị. 61 3.5.2 nguyên lý hoạt động của thiết bị. 63 KẾT LUẬN 64 TÀI LIỆU THAM KHẢO 65
  3. LỜI NÓI ĐẦU Với sự tiến bộ không ngừng của khoa học kĩ thuật, đặc biệt là trong ngành Điện – Điện tử trong việc chế tạo các vi mạch điện tử mạch vi xử lý đã tạo ra một bƣớc ngoặt quan trọng đối với sự phát triển của khoa học . Việc phát triển công nghiệp hóa hiện đại hóa là nhiệm vụ quan trọng hàng đầu đối với bất kì một quốc gia nào trong việc phát triển và xây dựng đất nƣớc. Các thiết bị trở nên thông minh hơn nhờ sự điều khiển theo chƣơng trình. Vi xử lý đang dần có mặt trong hầu hết các máy móc thiết bị dân dụng cũng nhƣ công nghiệp. Vì vậy việc học tập nghiên cứu ứng dụng vi xử lý trong trƣờng học là một việc hết sức cần thiết. Trong thời gian vừa qua em đƣợc đề tài “Nghiên cứu thiết kế hệ thống chuyển mạch của bộ thu thập dữ liệu phục vụ trong lực lƣợng Cơ yếu Công an Nhân dân, đi sâu nghiên cứu thiết kế phần cứng của hệ thống”. Sau thời gian học tập tìm hiểu cộng với sự giúp đỡ chỉ bảo tận tình của thầy giáo Nguyễn Trọng Thắng em đã hoàn thành cơ bản đồ án này trên cơ sở lý thuyết đã đƣợc học tập. Song với khả năng có hạn, kinh nghiệm thực tế hạn hữu nên đồ án của em vẫn còn nhiều thiếu sót. Vì vậy em rất mong đƣợc sự giúp đỡ của thầy cô để hoàn thành tốt hơn. Em xin trân thành cảm ơn. Em xin trân thành cảm ơn thầy Nguyễn Trọng Thắng đã nhiệt tình giúp đỡ em để em hoàn thành đồ án một cách tốt nhất. Sinh viên Hoàng Gia Tùng 1
  4. CHƢƠNG 1. DẪN NHẬP 1.1. ĐẶT VẤN ĐỀ Ngày nay với sự phát triển của khoa học kĩ thuật, việc áp dụng những thành tựu khoa học vào đời sống, sản xuất, an ninh ngày càng nhiều. Hiện nay trong các lực lƣợng An ninh việc tự động hóa các thiết bị điều khiển, các thiết bị liên lạc là một vấn đề hết sức quan trọng. Trong các thiết bị tự động phục vụ thu thập dữ liệu tuy đã hoạt rất hiệu quả nhƣng cần hoạt động tối ƣu hơn nữa. Trƣớc đây ngành vật liệu chƣa tìm đƣợc ra các vật liệu mới thì các dụng cụ thƣờng làm bằng cơ có độ chính xác không cao, cồng kềnh, thao tác nhiều dễ gây hỏng hóc. Khi ngành vật liệu tìm ra đƣợc các vật liệu mới, công nghệ chế tạo phát triển đã có thể tạo ra các thiết bị nhỏ gọn, hiệu quả cao hơn. Nhờ các thiết bị thông minh này ngƣời ta có thể kiểm soát các thông số, dữ liệu tốt hơn, không dừng lại ở đó các dữ liệu ấy còn đƣợc lƣu trữ và xử lý. Hệ thống thu thập dữ liệu có rất nhiều ứng dụng trong các ngành công nghiệp sản xuất tự động nhƣ : Đo nhiệt độ lò luyện kim trong ngành luyện kim. Điều hành quản lý phân phối lƣới điện. Điều hành quản lý của các nhà mạng điện thoại và đặc biệt là trong lực lƣợng An Ninh. Trong lực lƣợng Cơ yếu Công an Nhân Dân hiện đang sử dụng chƣơng trình Mã Dịch MCY 1 với hệ thống khóa ngoài KS32-64 sử dụng cổng giao tiếp USB. Tại các trung tâm mã dịch phải thực hiện liên lạc với rất nhiều đầu mối cần rất nhiều khóa KS32-64 tƣơng ứng với các tuyến, mỗi lần làm việc với một tuyến lại phải rút ra cắm vào rất nhiều lần. Điều này rất bất tiện cho quá trình sử dụng và có thể dẫn đến chập chờn hỏng hóc, vì thế cần phải có thiết bị chọn khóa liên lạc “KS32-64”. Thiết bị chọn khóa liên lạc “KS32-64” hiện đang sử dụng tại các trung tâm Mã dịch Cơ yếu Công an Nhân Dân đƣợc 2
  5. thiết kế với công nghệ cơ điện, sử dụng các rơ le chuyển mạch và các công tắc ba chiều đƣợc cứng hóa cùng với các điện trở phân tải và hiển thị bằng đèn LED. Hiện tại thiết bị chọn khóa liên lạc “KS32-64” cơ điện đang đƣợc vận hành và có các ƣu điểm nhất định. Tuy nhiên bên cạnh đó nó cũng tồn tại một số nhƣợc điểm nhƣ: thiết kế cồng kềnh, không ổn định, thao tác nhiều Mỗi thiết bị chọn khóa liên lạc “KS32-64” có từ 30 đến hơn 90 khóa với thiết kế cơ điện sẽ rất lớn, chiếm nhiều không gian. Các công tắc đƣợc cứng hóa khi gạt lên gạt xuống nhiều lần sẽ dẫn đến chập chờn hay hỏng hóc. Mỗi lần mã dịch cho một tuyến liên lạc cần phải tắt khóa tuyến liên lạc trƣớc và gạt chuyển mạch khóa sang tuyến mới, khi mã dịch cho nhiều tuyến cần phải thao tác rất nhiều lần Trên cơ sở để khắc phục các nhƣợc điểm đó em đã đƣợc giao nhận đề tài “Nghiên cứu thiết kế hệ thống chuyển mạch của bộ thu thập dữ liệu phục vụ trong lực lƣợng Cơ yếu Công an Nhân dân, đi sâu nghiên cứu thiết kế phần cứng của hệ thống” làm đồ án tốt nghiệp. Thiết bị chọn khóa liên lạc “KS32-64” vi điện tử đƣợc thiết kế đáp ứng yêu cầu: chính xác, tốc độ nhanh, hiển thị rõ ràng, thao tác ít thay cho bộ chuyển mạch chọn khóa KS32-64 cơ điện. 1.2. MỤC ĐÍCH Thiết kế thiết bị chọn khóa liên lạc “KS32-64” vi điện tử, khắc phục các nhƣợc điểm của thiết bị chọn khóa liên lạc “KS32-64” cơ điện, sử dụng trong mã dịch Cơ yếu Công an Nhân Dân. 1.3. GIỚI HẠN ĐỀ TÀI - Đối tƣợng nghiên cứu: Thiết bị chọn khóa liên lạc “KS32-64” vi điện tử. - Phạm vi nghiên cứu: Thiết bị chọn khóa liên lạc “KS32-64” vi điện tử sử dụng trong Mã dịch Cơ yếu Công an Nhân Dân. 3
  6. 1.4. PHƢƠNG PHÁP - Lập mô hình cho thiết bị chọn khóa liên lạc “KS32-64” vi điện tử. - Sử dụng các kỹ thuật về điện tử, vi xử lý, thiết kế mạch. 1.5. ĐỀ XUẤT MÔ HÌNH CHUYỂN MẠCH MỚI 1.5.1 Sơ đồ khối. KHỐI MA MÁY TÍNH TRẬN RƠLE KHỐI XỬ LÝ KHỐI HIỂN THỊ TRUNG TÂM KHỐI BÀN PHÍM SỐ Hình 1.1 Sơ đồ khối thiết bị 4
  7. 1.5.2 Chức năng các khối. 1.5.2.1 Khối xử lý trung tâm: Đây là bộ não của thiết bị, nó thực hiện các xử lý chung cho toàn bộ hệ thống. Các yêu cầu nhập vào từ bàn phím đƣợc xử lý để hiển thị ra khối hiển thị và điều khiển khối ma trận Rơ le, đảm bảo các Rơ le đƣợc đóng ngắt theo đúng yêu cầu. 1.5.2.2 Khối bàn phím: Đây là khối giao tiếp giữa ngƣời sử dụng với thiết bị, nó thực hiện việc nhập các yêu cầu của ngƣời sử dụng và đƣa đến khối sử lý trung tâm. 1.5.2.3 Khối hiển thị: Hiển thị các yêu cầu của ngƣời sử dụng từ bàn phím qua xử lý trung tâm, giúp ngƣời sử dụng xác định đƣợc các yêu cầu mình nhập có chính xác hay không và hiện thị trạng thái hiện tại của thiết bị. 5
  8. CHƢƠNG 2. NGHIÊN CỨU CÁC PHẦN TỬ PHỤC VỤ THIẾT KẾ Chƣơng 2 nghiên cứu và tìm hiểu các cơ sở khoa học để phục vụ quá trình thiết kế bao gồm: các hệ vi xử lý, bàn phím số hay hiển thị LCD. 2.1 HỆ VI XỬ LÝ 2.1.1 Giới thiệu chung về hệ vi xử lý. Vi xử lý gồm các cổng logic giống nhƣ các cổng logic đƣợc sử dụng trong đơn vị xử lý trung tâm của máy tính số. Do cấu trúc giống nhƣ CPU và đƣợc xây dựng từ các mạch vi điện tử nên có tên là vi xử lý. Giống nhƣ CPU, vi xử lý có các mạch điện tử cho việc điều khiển dữ liệu và tính toán dữ liệu dƣới sự điều khiển của chƣơng trình. Ngoài ra vi xử lý là một đơn vị xử lý dữ liệu. Để xử lý dữ liệu, vi xử lý phải điều khiển các mạch logic, để vi xử lý điều khiển các mạch logic thì cần phải có chƣơng trình. Chƣơng trình là tập hợp các lệnh để xử lý dữ liệu, các lệnh đã đƣợc lƣu trữ trong bộ nhớ. Nhƣ vậy: Vi xử lý là một vi mạch cỡ lớn hoặc cực lớn với chức năng chính là xử lý dữ liệu. Các mạch điện dùng để lƣu trữ lệnh để vi xử lý xử lý đƣợc gọi là bộ nhớ, các mạch điện giao tiếp để di chuyển dữ liệu từ bên ngoài vào bên trong vi xử lý và xuất dữ liệu từ bên trong vi xử lý ra ngoài đƣợc gọi là các thiết bị ghép nối vào ra I/O 6
  9. Hình 2.1 Sơ đồ khối của hệ vi xử 2.1.1.1 Bộ xử lý trung tâm (CPU) - CPU là từ viết tắt của chữ Central Processing Unit (đơn vị xử lí trung tâm). CPU có thể đƣợc xem nhƣ não bộ của hệ thống. CPU đảm nhận thực hiện chức năng cơ bản của máy tính là thực thi chƣơng trình. Chƣơng trình đƣợc thực thi gồm một dãy các chỉ thị đƣợc lƣu trữ trong bộ nhớ. Quá trình thực thi chƣơng trình gồm hai bƣớc: CPU đọc chỉ thị từ bộ nhớ và thực thi chỉ thị đó. Việc thực thi chƣơng trình là sự lặp đi lặp lại quá trình lấy chỉ thị và thực thi chỉ thị. Để làm đƣợc điều này bên trong CPU có các thanh ghi dùng để chứa địa chỉ các lệnh sắp thực hiện gọi là thanh ghi con trỏ lệnh hoặc bộ đếm chƣơng trình, một số thanh ghi đa năng khác cùng bộ tính toán số học và logic để thao tác với dữ liệu. Ngoài ra ở đây còn có hệ thống mạch điện tử ất phức tạp để giải mã lệnh và từ đó tạo ra các xung điều khiển cho toàn hệ thống 2.1.1.2 Bộ nhớ bán dẫn Hay còn gọi là bộ nhớ trong (ROM) là một bộ phận khác rất quan trọng của hệ vi xử lý. Tại đây (trong ROM) ta có thể chứa chƣơng trình điều khiển hoạt động của toàn hệ để khi bật điện thì CPU có thể lấy lệnh từ đây mà khởi 7
  10. đầu hệ thống. Một phần của chƣơng trình điều khiển hệ thống, các chƣơng trình ứng dụng, dữ liệu cùng các kết quả của chƣơng trình thƣờng đƣợc để trong RAM. Các dữ liệu và chƣơng trình muốn lƣu trữ lâu dài sẽ đƣợc để ở bộ nhớ ngoài. 2.1.1.3 Khối phối ghép vào/ra (I/O) Tạo ra khả năng giao tiếp giữa hệ vi xử lý với thế giới bên ngoài. Các thiết bị ngoại vi nhƣ bàn phím, chuột, màn hình, máy in, chuyển đổi số/tƣơng tự (A/D converter, DAC) và chuyển đổi tƣơng tự/số (A/D converter, ADC), ổ đĩa từ đều liên hệ với hệ vi xử lý qua bộ phận này. Bộ phận phối ghép cụ thể giữa bus hệ thống với thế giới bên ngoài thƣờng đƣợc gọi là cổng. Nhƣ vậy ta sẽ có các cổng vào để lấy thông tin từ ngoài vào và các cổng ra để đƣa thông tin từ trong hệ ra ngoài. Tùy theo nhu cầu cụ thể của công việc, các mạch cổng này có thể đƣợc xây dựng từ các mạch logic đơn giản hoặc từ các vi mạch chuyên dụng lập trình đƣợc. 2.1.1.4 Bus địa chỉ Bus địa chỉ là các đƣờng dẫn tín hiệu logic một chiều để truyền địa chỉ tham chiếu tới các khu vực bộ nhớ và chỉ ra dữ liệu đƣợc lƣu giữ ở đâu trong không gian bộ nhớ. Trong qúa trình hoạt động CPU sẽ điều khiển bus địa chỉ để truyền dữ liệu giữa các khu vực bộ nhớ và CPU. Các địa chỉ thông thƣờng tham chiếu tới các khu vực bộ nhớ hoặc các khu vực vào ra, hoặc ngoại vi. Dữ liệu đƣợc lƣu ở các khu vực đó thƣờng là 8bit (1 byte), 16bit, hoặc 32bit tùy thuộc vào cấu trúc từng loại vi xử lý/vi điều khiển. Hầu hết các vi điều khiển thƣờng đánh địa chỉ dữ liệu theo khối 8bit. Các loại vi xử lý 8bit, 16bit và 32bit nói chung cũng đều có thể làm việc trao đổi với kiểu dữ liệu 8bit và 16bit. Hiện nay các vi xử lý và vi điều khiển nói chung chủ yếu vẫn sử dụng phổ biến các bus dữ liệu có độ rộng là 16, 20, 24, hoặc 32bit. Nếu đánh địa 8
  11. chỉ theo byte thì một vi xử lý 16bit có thể đánh địa chỉ đƣợc 216 khu vực bộ nhớ tức là 65,536 byte = 64Kbyte. 2.1.1.5 Bus dữ liệu Bus dữ liệu là các kênh truyền tải thông tin theo hai chiều giữa CPU và bộ nhớ hoặc các thiết bị ngoại vi vào ra. Bus dữ liệu đƣợc điều khiển bởi CPU để đọc hoặc viết các dữ liệu hoặc mã lệnh thực thi trong quá trình hoạt động của CPU. Độ rộng của bus dữ liệu nói chung sẽ xác định đƣợc lƣợng dữ liệu có thể truyền và trao đổi trên bus. Tốc độ truyền hay trao đổi dữ liệu thƣờng đƣợc tính theo đơn vị là [byte/s]. Số lƣợng đƣờng bit dữ liệu sẽ cho phép xác định đƣợc số lƣợng bit có thể lƣu trữ trong mỗi khu vực tham chiếu trực tiếp. 2.1.1.6 Bus điều khiển Bus điều khiển Bus điều khiển phục vụ truyền tải các thông tin dữ liệu để điều khiển hoạt động của hệ thống. Thông thƣờng các dữ liệu điều khiển bao gồm các tín hiệu chu kỳ để đồng bộ các nhịp chuyển động và hoạt động của hệ thống. Bus điều khiển thƣờng đƣợc điều khiển bởi CPU để đồng bộ hóa nhịp hoạt động và dữ liệu trao đổi trên các bus. Trong trƣờng hợp vi xử lý sử dụng dồn kênh bus dữ liệu và bus địa chỉ tức là một phần hoặc toàn bộ bus dữ liệu sẽ đƣợc sử dụng chung chia sẻ với bus địa chỉ thì cần một tín hiệu điều khiển để phân nhịp truy nhập cho phép chốt lƣu trữ thông tin địa chỉ mỗi khi bắt đầu một chu kỳ truyền. 2.1.2 Giới thiệu về vi điều khiển 8051. Sau khi đã tìm hiểu qua về cấu trúc của hệ vi xử lý, tiếp theo em xin đƣợc đi sâu tìm hiểu một bộ vi điều khiển cụ thể đó là vi điều khiển 8051. Hiện nay các bộ vi điều khiển 8 bit đứng đầu là họ 8051 có số lƣợng lớn nhất các nhà cung cấp đa dạng (sáng chế của 8051 là Intel) nhƣng hiện nay có nhiều hãng sản xuất nhƣ Intel, Atmel, ADM, Siemens, Matra và Dallas, Philips/signe-tics, Semicndictior. [11] 9
  12. Vi điều khiển 8051 là một bộ xử lý 8 bít, có nghĩa là CPU chỉ có thể làm việc với 8 bít dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit đƣợc chia thành các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào ra (I/O) mỗi cổng rộng 8 bit. Bảng 2.2: Các đặc tính của 8051 đầu tiên: Đặc Tính Số Lƣợng ROM trên chip 4K byte RAM 128 byte Bộ định thời 2 Các chân vào – ra 32 Cổng nối tiếp 1 Nguồn ngắt 6 Sơ đồ khối của 8051 10
  13. Hình 2.3: Cấu tạo của vi diều khiển 8051 -VCC : Điện áp cung cấp -GND : Nối đất - RST : ngõ vào RESET, chân RESET ở mức cao trong 2 chu kỳ máy khi bộ dao động đang chạy sẽ RESET chip -PSEN (Program Store ENable): đƣợc nối với chân OE của chip dữ liệu bên ngoài -ALE : (ALE : Adress Latch Enable) là tín hiệu điều khiển xuất ra của 8051, nó cho phép phân kênh giữa bus địa chỉ và bus dữ liệu trên PORT0 -EA : (External Access): chọn bộ nhớ giao tiếp. EA=1: chọn bộ nhớ nội, EA=0: chọn bộ nhớ ngoại 11
  14. -PORT 0 : Port 0 là một cổng 8 bit I/O 2 chiều, Khi mức logic 1 đƣợc viết vào các PIN của PORT 0, Pin đó có thể đƣợc sử dụng là cổng vào trở kháng cao. Port 0 cũng có thể đƣợc cấu hình thành bus ghép kênh 8 bit địa chỉ/dữ liệu thấp trong quá trình truy nhập bộ nhớ ngoài, ở chế độ này các PIN của PORT 0 sẽ đƣợc kéo lên bên trong Ngoài ra PORT 0 cũng đƣợc sử dụng để nạp dữ liệu cho chip -PORT 1 : Port 1 là cổng I/O 2 chiều có trở treo bên trong. Khi mức logic 1 đƣợc viết vào PIN của PORT 1, PIN đó đƣợc kéo lên bởi 1 trở treo bên trong, và có thể đƣợc sử dụng là cổng vào. Ngoài ra các PIN P1.0 và P1.1 có thể đƣợc cấu hình là đầu vào của bộ Timer 2 (AT89S52, AT89C52). Các pin P1.5, P1.6, P1.7 (AT89S51, AT89S52) lần lƣợt là các PIN MOSI, MISO, SCK khi sử dụng để nạp cho chip qua ISP (In- System Programing) -PORT 2 : Port 2 là cổng I/O 2 chiều có trở treo bên trong. Khi mức logic 1 đƣợc viết vào PIN của PORT 2, PIN đó đƣợc kéo lên bởi 1 trở treo bên trong, và có thể đƣợc sử dụng là cổng vào. Port 2 cũng có thể đƣợc cấu hình thành bus ghép kênh 8 bit địa chỉ cao trong quá trình truy nhập bộ nhớ ngoài với 16 bit địa chỉ -PORT 3 Port 3 là cổng I/O 2 chiều có trở treo bên trong. Khi mức logic 1 đƣợc viết vào PIN của PORT 3, PIN đó đƣợc kéo lên bởi 1 trở treo bên trong, và có thể đƣợc sử dụng là cổng vào. 12
  15. Ngoài ra các Pin của PORT 3 cũng có thêm các chức năng đặc biệt khác: 2.1.2.1 Tổ chức bộ nhớ Các vi điều khiển thuộc họ 8051 đều tổ chức thành 2 không gian chƣơng trình và dữ liệu, hình 2.4 và hình 2.5 sẽ mô tả điều này. Kiến trúc vi xử lý 8 bit của 8051 này cho phép truy nhập và tính toán nhanh hơn đối với không gian dữ liệu nhờ việc phân chia 2 không gian bộ nhớ chƣơng trình và dữ liệu nhƣ trên. Tuy nhiên bộ nhớ ngoài đƣợc truy nhập bởi hệ thống 16 bit địa chỉ vẫn có thể thực hiện nhờ thanh ghi con trỏ. Bộ nhớ chƣơng trình (ROM, EPROM) là bộ nhớ chỉ đọc, có thể mở rộng tối đa 64Kbyte. Với họ vi điều khiển 89xx, bộ nhớ chƣơng trình đƣợc tích hợp sẵn trong chip có kích thƣớc nhỏ nhất là 4kByte. Với các vi điều khiển không tích hợp sẵn bộ nhớ chƣơng trình trên chip, buộc phải thiết kế bộ nhớ chƣơng trình bên ngoài. Ví dụ sử dụng EPROM: 2764 (64Kbyte), khi đó chân PSEN phải ở mức tích cực (5V). 13
  16. Hình 2.4: Cấu trúc vi điều khiển 8051 Bộ nhớ dữ liệu (RAM) tồn tại độc lập so với bộ nhớ chƣơng trình. Họ vi điều khiển 8051 có bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là 128byte và có thể mở rộng với bộ nhớ dữ liệu ngoài lên tới 64kByte. Với những vi điều khiển không tích hợp ROM trên chip thì vẫn có RAM trên chip là 128byte. Khi sử dụng RAM ngoài, CPU đọc và ghi dữ liệu nhờ tín hiệu trên các chân RD và WR. Khi sử dụng cả bộ nhớ chƣơng trình và bộ nhớ dữ liệu bên ngoài thì buộc phải kết hợp chân RD và PSEN bởi cổng logic AND để phân biệt tín hiệu truy xuất dữ liệu trên ROM hay RAM ngoài. 14
  17. a) Bộ nhớ chƣơng trình Hình 2.5: Cấu trúc bộ nhớ chƣơng trình 0023h 001Bh Interrupt Location 0013h 000Bh 0003h Reset 0000h Hình 2.6: Địa chỉ các ngắt trên bộ nhớ chƣơng trình Hình 2.5 mô tả cấu trúc bộ nhớ chƣơng trình. Sau khi khởi động, CPU bắt đầu thực hiện chƣơng trình ở vị trí 0000H. Hình 2.6 mô tả địa chỉ ngắt mặc định trên bộ nhớ chƣơng trình. Mối khi xảy ra ngắt, con trỏ của CPU sẽ nhảy đến đúng địa chỉ ngắt tƣơng ứng và thực thi chƣơng trình tại đó. Ví dụ 15
  18. ngắt ngoài 0 sẽ có địa chỉ là 0003H, khi xảy ra ngắt ngoài 0 thì con trỏ chƣơng trình sẽ nhảy đến đúng địa chỉ 0003H để thực thi chƣơng trình tại đó. Nếu trong chƣơng trình ứng dụng không xử dụng đến ngắt ngoài 0 thì địa chỉ 0003H vẫn có thể dùng cho mục đích khác (sử dụng cho bộ nhớ chƣơng trình). b) Bộ nhớ dữ liệu: Hình 2.7: Cấu trúc bộ nhớ dữ liệu Hình 2.7 mô tả cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài của họ vi điều khiển 8051. CPU sẽ dùng đến các chân RD và WR khi truy cập đến bộ nhớ dữ liệu ngoài. Hình 2.8 mô tả cấu trúc bộ nhớ dữ liệu trong chip, đƣợc chia thành 3 khối là 128 byte thấp, 128 byte cao và 128 byte đặc biệt. 16
  19. Hình 2.8: Cấu trúc bộ nhớ trong Hình 2.9 mô tả cấu trúc 128 byte thấp của bộ nhớ dữ liệu của họ vi điều khiển 8051. 32 byte đầu tiên (00H-1FH) đƣợc sử dụng cho 4 bộ 8 thanh ghi R0-R7. Hai bit của thanh ghi đặc biệt PSW sẽ lựa chọn 1 trong 4 bộ thanh ghi mà vi điều khiển sẽ dùng trong khi thực thi chƣơng trình. Hình 2.9: Cấu trúc 128 byte thấp của bộ nhớ dữ liệu trong 17
  20. 8051 chứa 210 vị trí bit đƣợc định địa chỉ trong đó 128 bit chứa trong các byte ở địa chỉ từ 20H đến 2FH (16 byte x 8 bit = 128 bit) và phần còn lại chứa trong các thanh ghi đặc biệt. Ngoài ra 8051 còn có các port xuất/nhập có thể định địa chỉ từng bit, điều này làm đơn giản việc giao tiếp bằng phần mềm với các thiết bị xuất/nhập đơn bit. Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bên dƣới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể đƣợc sử dụng tƣơng tự. Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể đƣợc truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp. Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể đƣợc truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp. Cũng nhƣ các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặc biệt SFR chiếm phần trên của Ram nội từ địa chỉ 80H đến FFH. Cần lƣu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều đƣợc định nghĩa mà chỉ có 21 địa chỉ đƣợc định nghĩa. 0FFH 80H Hình 2.10: 128 byte cao của bộ nhớ dữ liệu 18
  21. 2.1.2.2 Bên trong 8051 a) Các thanh ghi Trong bộ vi điều khiển các thanh ghi đƣợc dùng để lƣu cất thông tin tạm thời, những thông tin này có thể là một byte dữ liệu cần đƣợc sử lý hoặc là một địa chỉ đến dữ liệu cần đƣợc nạp. Phần lớn các thanh ghi của 8051 là các thanh ghi 8 bit. Trong 8051 chỉ có một kiểu dữ liệu: Loại 8 bit, 8 bit của một thanh ghi đƣợc trình bày nhƣ sau : D D D D D D D D D7 D6 D5 D4 D3 D2 D1 D0 Với MBS (Most Sigfican bit) là bit có giá trị cao nhất D7 cho đến LBS (Leart Significant bit) là bit có giá trị thấp nhất D0. Với một kiểu dữ liệu 8 bit thì bất kỳ dữ liệu nào lớn hơn 8 bit đều phải đƣợc chia thành các khúc 8 bit trƣớc khi đƣợc xử lý Thanh ghi 8 bit của 8051 Thanh ghi 16 bit của 8051 19
  22. Các thanh ghi đƣợc sử dụng rộng rãi nhất của 8051 là A (thanh ghi tích lũy), B, R0 – R7, DPTR (con trỏ dữ liệu) và PC (bộ đếm chƣơng trình). Tất cả các dữ liệu trên đều là thanh ghi 8 bit, trừ DPTR và PC là 16 bit. Thanh ghi tích lũy A đƣợc sử dụng cho tất cả mọi phép toán số học và logic. b)Các thanh ghi đặc biệt. 8051 có 21 thanh ghi chức năng đặc biệt SFR chiếm phần trên của Ram nội từ địa chỉ 80H đến FFH. Cần lƣu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều đƣợc định nghĩa mà chỉ có 21 địa chỉ đƣợc định nghĩa. Hình2.11 mô tả các thanh ghi đặc biệt trong vùng nhớ dữ liệu 80H đến FFH và giá trị của chúng sau khi Reset. 0F8H 0FFH 0F0H B 0F7H 00000000 0E8H 0EFH 0E0H ACC 0E7H 00000000 0D8H 0DFH 0D0H PSW 0D7H 00000000 0C8H T2CON T2MOD RCAP2L RCAP2H TL2 TH2 0CFH 00000000 XXXXXX00 00000000 00000000 00000000 00000000 0C0H 0C7H 0B8H IP 0BFH XX000000 0B0H P3 0B7H 11111111 0A8H IE 0AFH 0X000000 0A0H P2 AUXR1 WDTRST 0A7H 11111111 XXXXXXX0 XXXXXXXX 98H SCON S8UF 9FH 00000000 XXXXXXXX 90H P1 97H 11111111 88H TCON TMOD Tl0 TL1 TH0 TH1 AUXR 8FH 00000000 00000000 00000000 00000000 00000000 00000000 XXX00XX0 80H P0 SP DP0L DP0H DP1L DP1H PCON 87H 11111111 00000111 00000000 00000000 00000000 00000000 0XXX0000 Hình 2.11: Các thanh ghi đặc biệt và giá trị sau khi reset 20
  23. Thanh ghi chính: Thanh ghi tính toán chính của vi điều khiển 8051 ACC (Accumulator). Là thanh ghi đặc biệt của 8051 dùng để thực hiện các phép toán của CPU, thƣờng kí hiệu là A. Thanh ghi phụ: Thanh ghi tính toán phụ của vi điều khiển 8051 là B. Thanh ghi B ở địa chỉ F0H đƣợc dùng chung với thanh chứa A trong các phép toán nhân, chia. Lệnh MUL AB nhân 2 số 8 bit không dấu chứa trong A và B và chứa kết quả 16 bit vào cặp thanh ghi B, A (thanh chứa A cất byte thấp và thanh ghi B cất byte cao). Lệnh chia DIV AB chia A bởi B, thƣơng số cất trong thanh chứa A và dƣ số cất trong thanh ghi B. Thanh ghi B còn đƣợc xử lý nhƣ một thanh ghi nháp. Các bit đƣợc định địa chỉ của thanh ghi B có địa chỉ từ F0H đến F7H. Thanh ghi trạng thái chương trình (PSW): Thanh ghi trạng thái chƣơng trình PSW (địa chỉ: D0H) là thanh ghi mô tả toàn bộ trạng thái chƣơng trình đang hoạt động của hệ thống. Bảng 2.12 và Bảng 2.13 sẽ mô tả thanh ghi này. 21
  24. Bảng 2.12: Thanh ghi trạng thái chƣơng trình PSW 7 6 5 4 3 2 1 0 CY AC F0 RS1 RS0 OV - P Bảng 2.13: Chi tiết các bit trong thanh ghi PSW Ký Địa Bit Mô tả Bit Hiệu Chỉ Cờ nhớ (Carry Flag): đƣợc Set nếu có Bit nhớ từ PSW.7 CY D7H Bit 7 trong phép cộng hoặc có Bit mƣợn cho Bit 7 trong phép trừ. Cờ nhớ phụ: đƣợc Set trong phép cộng nếu có Bit PSW.6 AC D6H nhớ từ Bit 3 sang Bit 4 hoặc kết quả trong 4 Bit thấp nằm trong khoảng 0AH->0FH. PSW.5 FO D5H Cờ O: dành cho ngƣời sử dụng. PSW.4 RS1 D4H Chọn dãy thanh ghi (Bit 1) Chọn dãy thanh ghi (Bit 0) 00=Bank 0: Địa chỉ 00H->07H PSW.3 RS0 D3H 01=Bank 1: Địa chỉ 08H->0FH 10=Bank 2: Địa chỉ 10H->17H 11=Bank 3: Địa chỉ 18H->1FH Cờ tràn (Overflow Flag): đƣợc Set khi phép toán PSW.2 OV D2H có dấu có kết quả > +127 hoặc < -128. PSW.1 - D1H Chƣa dùng Cờ kiểm tra chẵn lẻ: đƣợc Set hoặc Clear bởi PSW.0 P D0H phần cứng sau mỗi 1 chu kỳ lệnh, để chỉ ra rằng có 1 số chẵn hoặc số lẻ Bit 1 trong thanh chứa. 22
  25. Thanh ghi ngăn xếp (Stack Pointer): Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H. SP chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack. Các lệnh liên quan đến satck bao gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack. Việc cất vào stack làm tăng SP trƣớc khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP. Vùng stack của 8051 đƣợc giữ trong RAM nội và đƣợc giới hạn đến các địa chỉ truy xuất đƣợc bởi kiểu định địa chỉ gián tiếp. Các lệnh PUSH và POP sẽ cất dữ liệu vào stack và lấy dữ liệu từ stack, các lệnh gọi chƣơng trình con (ACALL, LCALL) và lệnh trở về (RET, RETI) cũng cất và phục hồi nội dung của bộ đếm chƣơng trình PC (Program counter) Con trỏ dữ liệu DPTR: Con trỏ dữ liệu DPTR (data pointer) đƣợc dùng để truy xuất bộ nhớ chƣơng trình ngoài hoặc bộ nhớ dữ liệu ngoài. DPTR là một thanh ghi 16 bit có địa chỉ là 82H (DPL, byte thấp) và 83H (DPH, byte cao). Thanh ghi các cổng P0-P3: Các port xuất/nhập của 8051 bao gồm Port 0 tại địa chỉ 80H, Port 1 tại địa chỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H. Tất cả các port đều đƣợc định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh. Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer): Bộ đệm truyền thông đƣợc chia thành hai bộ đệm, bộ đệm truyền dữ liệu và bộ đệm nhận dữ liệu. Khi dữ liệu đƣợc chuyển vào thanh ghi SBUF, dữ liệu sẽ đƣợc chuyển vào bộ đệm truyền dữ liệu và sẽ đƣợc lƣu giữ ở đó cho đến khi quá trình truyền dữ liệu qua truyền thông nối tiếp kết thúc. Khi thực hiện việc chuyển dữ liệu từ SBUF ra ngoài, dữ liệu sẽ đƣợc lấy từ bộ đệm nhận dữ liệu của truyền thông nối tiếp. 23
  26. Thanh ghi của bộ định thời/bộ đếm: 8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảng thời gian hoặc để đếm các sự kiện. Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) là các thanh ghi của bộ đếm thời gian. Bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp) và 8CH (TH0, byte cao). Bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp) và 8DH (TH1, byte cao). Hoạt động của bộ định thời đƣợc thiết lập bởi thanh ghi chế độ định thời TMOD (Timer Mode Register) ở địa chỉ 88H. Chỉ có TCON đƣợc định địa chỉ từng bit. Các thanh ghi điều khiển: Các thanh ghi điều khiển đặc biệt nhƣ IP, IE, TMOD, TCON, SCON và PCON là các thanh ghi điều khiển và ghi nhận trạng thái của hệ thống ngắt, bộ đếm/định thời, truyền thông nối tiếp. 2.2 BÀN PHÍM SỐ Ta tìm hiểu về bàn phím số mà cụ thể là ma trận phím 4x4. 2.2.1 Cấu tạo của ma trận phím 4x4. 24
  27. Hình 2.14: Hình ảnh cụ thể của một bàn phím 4x4. 25
  28. Hình 2.15: Cấu tạo ma trận phím 4x4. Phím bấm đƣợc nối thành ma trận 4 hàng x 4cột, các hàng và cột đƣợc nối với các chân cổng vào ra của vi điều khiển Psoc. [14]Khi một phím đƣợc bấm, nó sẽ nối một hàng và một cột tƣơng ứng.Nhƣ vậy ta sẽ có 16 nút nhấn mà chỉ mất có 8 chân vi điều khiển còn muốn tiếp kiệm hơn nữa ta dùng giải mã 3 >> 8 (74138) hay dùng 74ls154. Đối với những bài toán lớn cần phải tiếp kiệm chân vi xử lý ta mới dùng thếm các IC giải mã hay mã hóa. Khi nút 0 đƣợc nhấn thì nó nối giữa cột 1 hàng 1. Còn nút 1 đƣợc nhấn thì cột 2 và hàng 1 đƣợc nối hay nút 2 đƣợc nhấn thì nối giữa cột 3 và hàng 1 cứ nhƣ vậy đến nút thứ 15. 2.2.2 Nguyên lý quét. Thuật toán quét phím đƣợc sử dụng là lần lƣợt tìm hàng và tìm cột (hoặc ngƣợc lại). Khi tìm hàng, các hàng sẽ đƣợc đặt làm đầu vào,các cột đƣợc đặt làm đầu ra mức thấp. Sau đó kiểm tra các hàng xem có hàng nào ở mức thấp hay không (có phím nào bấm gây ra nối với cột hay không)? Sau khi xác định đƣợc hàng sẽ đặt các cột làm đầu vào, hàng vừa tìm đƣợc làm 26
  29. đầu ra mức thấp. Việc kiểm tra đƣợc tiến hành với các cột. Sau khi xác định đƣợc hàng và cột sẽ suy ra phím đƣợc bấm. Cụ thể là : - Đầu tiên cho các hàng ở mức 1 và các cột ở mức 0 - Kiểm tra xem nào hàng nào đựoc nhấn (khi nút đƣợc nhấn) tức là đựoc nhận tín hiệu từ các cột - Nếu mà có 1 hàng bất kỳ đựoc nhấn sau đó ta lại chuyển giá trị 0 vào hàng đựoc nhấn và giá trị 1 vào các cột. Khi đó cột lại nhận nhiệm vụ làm tín hiệu vào. Nếu mà 1 trong các cột đựoc nhấn (Khi nút đƣợc nhấn) trong các trƣờng hợp này thì cho ra các giá trị tƣơng ứng. - Việc kiểm tra các hàng khác là tƣơng tự nhƣ trên 2.3 HIỂN THỊ LCD Có rất nhiều loại LCD với nhiều hình dạng và kích thƣớc khác nhau. Em xin tìm hiểu về LCD 16x2 mà cụ thể là LCD HD44780 2.3.1 Hình dáng và kích thƣớc. 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. 27
  30. Hình 2.16: Sơ đồ chân của LCD 2x16 LCD 2x16 là một màn hình hiển thi gồm 16 cột và 2 hàng dùng để hiển thị các thông số do ngƣời dùng nhập vào. 2.3.2 Chức năng các chân của LCD - Chân VCC, V và VSS: Các chân VEECC, V: Cấp dƣong nguồn 5v và đất tƣong ứng thì V0 đƣợc dùng để điều khiển độ tƣong phản của LCD. - Chân chọn thanh ghi RS (Register Select): Có hai thanh ghi trong LCD, chân RS(Register Select) đƣợc dùng để chọn thanh ghi, nhƣ sau: Nếu RS = 0 thì thanh ghi mà lệnh đƣợc chọn để cho phép ngƣời dùng gửi một lệnh chẳng hạn nhƣ xoá màn hình, đƣa con tr ỏ về đầu dòng v.v Nếu RS = 1 thì thanh ghi dữ liệu đƣợc chọn cho phép ngƣời dùng gửi dữ liệu cần hiển thị trên LCD. - Chân đọc/ ghi (R/W): Ðầu vào đọc/ ghi cho phép ngƣời dùng ghi thông tin lên LCD khi R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1. - Chân cho phép E (Enable): Chân cho phép E dƣợc sử dụng bởi LCD để chốt dữ liệu của nó. Khi dữ liệu đƣợc cấp dến chân dữ liệu thì một xung 28
  31. mức cao xuống thấp phải đƣợc áp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu. Xung này phải rộng tối thiểu là 450ns. - Chân D0 - D7: Ðây là 8 chân dữ liệu 8 bít, đƣợc dùng dể gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD. Ðể hiển thị các chữ cái và các con số, chúng ta gửi các mã ASCII của các chữ cái từ A đến Z, a đến f và các con số từ 0 – 9 đến các chân này khi bật RS = 1. Cũng có các mã lệnh mà có thể đƣợc gửi đến LCD để xoá màn hình hoặc đƣa con trỏ về đầu dòng hoặc nhấp nháy con trỏ. - Chú ý: Chúng ta cũng sử dụng RS = 0 để kiểm tra bít cờ bận để xem LCD có sẵn sàng nhận thông tin. Cờ bận là bít D7 và có thể đƣợc đọc khi R/W = 1 và RS = 0 nhƣ sau: Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thì LCD bận bởi các công việc bên trong và sẽ không nhận bất kỳ thông tin mới nào. Khi D7 = 0 thì LCD sẵn sàng nhận thông tin mới. Lƣu ý chúng ta nên kiểm tra cờ bận truớc khi ghi bất kỳ dữ liệu nào lên LCD 2.3.3 Cấu trúc của HD44780. 2.3.3.1 Các thanh ghi 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 đó. - 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 29
  32. từ 2 vùng RAM nay 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 chip 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 để chuyển cho MPU Bảng 2.17: Chức năng chân RS và R/W theo mục đích sử dụng RS R/W Chức năng 0 0 Ghi vào thanh ghi IR để ra lệnh cho LCD 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 2.3.3.2 Cờ báo bận BF: (Busy Flag): 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. 2.3.3.3 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. 30
  33. 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. 2.3.3.4 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. 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. 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ì 2^8 = 256 mẫu kí tự). Ngƣời dùng không thể thay đổi vùng ROM này. 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. 31
  34. 2.3.3.5 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. 2.3.4 Đặc tính điện của các chân giao tiếp. LCD sẽ bị hỏng nghiêm trọng, hoặc hoạt động sai lệch nếu chúng ta vi phạm khoảng đặc tính điện sau đây: Bảng 2.18: Đặc tính điện của các chân giao tiếp Chân cấp nguồn (Vcc-GND) Min:-0.3V , Max+7V Các chân ngõ vào (DBx,E, ) Min:-0.3V , Max:(Vcc+0.3V) Nhiệt độ hoạt động Min:-30C , Max:+75C Nhiệt độ bảo quản Min:-55C , Max:+125C Đặc tính điện làm việc điển hình: (Đo trong điều kiện hoạt động Vcc = 4.5V đến 5.5V, T = -30 đến +75C) 32
  35. Bảng 2.19: Miền làm việc bình thƣờng. Chân cấp nguồn Vcc-GND 2.7V đến 5.5V Điện áp vào mức cao VIH 2.2V đến Vcc Điện áp vào mức thấp VIL -0.3V đến 0.6V Điện áp ra mức cao (DB0-DB7) Min 2.4V (khi IOH = -0.205mA) Điện áp ra mức thấp (DB0-DB7) Max 0.4V (khi IOL = 1.2mA) Dòng điện ngõ vào (input leakage -1uA đến 1uA (khi VIN = 0 đến current) ILI Vcc) Dòng điện cấp nguồn ICC 350uA(typ.) đến 600uA 190kHz đến 350kHz (điển hình là Tần số dao động nội fOSC 270kHz) Chương 2 đã nghiên cứu các vi mạch như vi điều khiển 80C51, LCD2x16 hay bàn phím số4x4, các vi mạch trên chính là cơ sở để thiết kế thiếtbị 33
  36. CHƢƠNG 3. THIẾT KẾ HỆ THỐNG Chương này đưa ra mục đích và yêu cầu của thiết bị, trình bày chức năng các khối. Phân tích, lựa chọn các thiết kế từ đó đi thiết kế các khối thành phần, thiết kế tổng thể và nguyên lý hoạt động của thiết bị - Tốc độ xử lý nhanh. - Hiển thị rõ ràng. - Các thao tác trên thiết bị là thuận tiện, dễ dàng. 3.1 KHỐI XỬ LÝ TRUNG TÂM Khối xử lý trung tâm xử lý chung cho toàn bộ hệ thống, khối đƣợc thiết kế với vi điều khiển 8051. Nhƣ vậy khối xử lý trung tâm phải xử lý dữ liệu nhập vào từ bàn phím để điều khiển ma trận Rơ le đóng ngắt hợp lý đồng thời hiển thị yêu cầu đó ra khối hiển thị. Với yêu cầu đó ta sử dụng cả 4 Port của 8051 để nhận dữ liệu cũng nhƣ điều khiển hệ thống. Ta dùng Port 0 và Port 1 cùng một phần của Port3 cho việc điều khiển khối ma trận Rơ le 10x10 (sử dụng 20 chân của vi điều khiển 8051). Port 2 dùng để điều khiển khối hiển thị ( hiển thị LCD 16x2), P3.0(RxD) và P3.2(INT0) của Port 3 nhận và điều khiển dữ liệu vào từ bàn phím. Hoạt động của vi điều khiển 8051 cần có nguồn ổn định VDC +5 v, vì nếu nguồn không ổn định thì sẽ treo vi điều khiển hoặc chạy không đúng hoặc reset liên tục thậm chí là chết chíp. Ta sử dụng IC ổn áp 7805 để tạo nguồn 5v đầu vào: đầu vào > 7 v đầu ra 5v, 500mA. 34
  37. U6 LM7805/TO Vin Vout 1 3 GND 2 Hình 3.1: Sơ đồ chân IC 7805 U6 12VDC In LM7805/TO 5VDC Out Vin Vout 1 3 C2 C1 GND C3 104 104 10µF/25V 2 Hình 3.2: Sơ đồ nguyên lý mạch nguồn áp 5V 35
  38. Thiết kế cơ bản của khối xử lý trung tâm nhƣ sau: 5VDC 40 Vcc C3 10µF/25V RESET 9 19 X2 12Mhz C2 33p 80C51 R1 10K 18 C1 X1 33p 20 GND Hình 3.3: Mạch vi xử lý trung tâm 36
  39. 3.2 KHỐI BÀN PHÍM Khối bàn phím thực hiện việc nhập các yêu cầu của ngƣời sử dụng đƣa tới xử lý trung tâm. Thiết kế chính của khối này là một bàn phím số 4x4 và một IC mã hóa bàn phím EDE 1144. 3.2.1 IC mã hóa bàn phím EDE1144. Để thực hiện kết nối giữa bàn phím số 4x4 với vi điều khiển 8051 ta phải dùng hết 1 Port của vi điều khiển 8051. Tuy nhiên điều đó là khó khăn vì vi điều khiển 8051 có 4 Port và phải phân chia phần lớn cho ma trận rơ le, cho hiển thị LCD. Chính vì vậy cần thiết phải có IC mã hóa bàn phím. IC mã hóa bàn phím EDE 1144 đƣợc thiết kế để kết nối giữa bàn phím số 4x4 với vi điều khiển 8051. Dữ liệu qua EDE1144 đƣợc trả về theo một dây nối tiếp hoặc một giao diện song song 4 dây. Ngoài ra EDE1144 quét bàn phím điện yên tĩnh, nhiều bộ mã hóa bàn phím khác liên tục quét bàn phím, tiếng ồn phát ra từ EMI từ dây dẫn đến bàn phím. EDE1144 theo dõi bàn phím với các tín hiệu không thay đổi và sau đó quét một lần duy nhất mỗi lần một phím bấm đƣợc phát hiện. [13] Ra nố i tiếp RS232 1 XMIT Beep 18 Ra Loa 0=2400, 1=9600 Baud 2 Baud Valid 17 Dữ liệu ra hợp lệ Kết nối nguồn +5v 3 +5V OSC1 16 Kết nối bộ tạo dao động Kết nối nguồn +5v 4 +5V OSC2 15 Kết nối bộ tạo dao động Đất 5 GND +5V 14 Kết nối nguồn +5v Hàng 0 Ra 6 R0 C3 13 Cột 3 Vào Hàng 1 Ra 7 R1 C2 12 Cột 2 Vào Hàng 2 Ra 8 R2 EDE1144 C1 11 Cột 1 Vào Hàng 3 Ra 9 R3 C0 10 Cột 0 Vào Hình 3.4: Cấu trúc cơ bản của EDE1144 37
  40. - Chân 1: Tín hiệu dữ liệu ra nối tiếp RS232. - Chân 2: cài đặt tốc độ truyền nối tiếp, 0=2400 baud, 1=9600 baud. - Chân 3, chân 4 nối với nguồn 5V. - Chân 5 nối đất. - Chân 6 dến chân 9 là dữ liệu đầu ra tƣơng ứng với các hàng từ hàng 0 đến hàng 3. - Chân 10 dến chân 13 là các đầu vào tƣơng ứng với các cột từ cột 0 đến cột 3. - Chân 14 kết nối với nguồn 5 V. - Chân 15, chân 16 kết nối với bộ tạo dao động. - Chân 17 dữ liệu đầu ra hợp lệ. - Chân 18 đầu ra loa. 38
  41. +5V Loa 1K Data valid/Interrupt Output Đầu ra nối tiếp +5V Bàn phím 4x4 XMIT Beep 330 Onm Baud Valid +5V OSC1 4Mhz +5V OSC2 GND +5V R0 C3 R1 C2 R2 EDE1144 C1 R3 C0 4,7K D0 (LSB) D1 Đầu ra song song D2 D3 (MSB) Hình 3.5: Sơ đồ kết nối giữa bàn phím với vi điều khiển thông qua EDE1144 39
  42. Vi điều khiển nhận dữ liệu phím bấm thông qua 4 dữ liệu song song kết quả đầu ra (D0 – D3, chân 6 – chân 9) hoặc đầu ra dữ liệu nối tiếp (chân 1). Trong mỗi thiết kế ta sử dụng kết quả đầu ra dữ liệu song song bỏ qua các dữ liệu đầu ra nối tiếp và ngƣợc lại cung có thể sử dụng dữ liệu đầu ra nối tiếp bỏ qua các dữ liệu đầu ra song song. Bảng 3.6: Bảng kết quả đầu ra nối tiếp và song song của EDE1144 Key 0 1 2 3 4 5 6 7 RS-232 S30 S31 S32 S33 S34 S35 S36 S37 („0‟) („1‟) („2‟) („3‟) („4‟) („5‟) („6‟) („7‟) D3 D0 0000 0001 0010 0011 0100 0101 0110 0111 Key 8 9 10 11 12 13 14 15 RS-232 S38 S39 S41 S42 S43 S44 S45 S46 („8‟) („9‟) („A‟) („B‟) („C‟) („D‟) („E‟) („F‟) D3 D0 1000 1001 1010 1011 1100 1101 1110 1111 Các giá trị nối tiếp thể hiện bằng hệ thập lục phân Khi có phím ấn, trình tự hoạt động của IC nhƣ sau: 1. Bấm phím đƣợc phát hiện. 2. Một chu kỳ quét đƣợc thực hiện. 3. Đầu ra dữ liệu song song (D0 – D3). 4. Tín hiệu báo dữ liệu hợp lệ đƣợc kích hoạt (kéo mức thấp). 5. Tín hiệu nhắn (sóng vuông 1Khz) đƣợc kích hoạt trong thời gian 45mS. 6. Dữ liệu nối tiếp đƣợc truyền. Toàn bộ chu trình này mất khoảng 50mS (không phân biệt tốc độ truyền đƣợc lựa chọn). chu trình đƣợc lặp đi lặp lại với tốc độ 5 lần mỗi giây. 40
  43. Khi một phím đƣợc nhấn ED1144 có 50mS để xuất các tín hiệu ở các đầu ra. Đầu tiên các kết quả đầu ra song song (D0 – D3) ở chân 6 – 9 thể hiện giá trị bấm phím thích hợp, 1 micro giây sau đó tín hiệu báo đầu ra hợp lệ đƣợc kích hoạt ở mức thấp(nghĩa là có dữ liệu hợp lệ trên đầu ra song song). Sau đó đầu ra Beeper (chân 18) dòng xung đƣợc tạo ra cho 45mS để báo là đã có một phím đƣợc nhấn. Cuối cùng đầu ra nối tiếp RS 232 (chân 1) truyền dữ liệu phím bấm với tôc độ truyền 2400 baud hay 9600 baud theo sự lựa chọn của chân 2. 3.2.2 Thiết kế khối bàn phím. Trong thiết kế này ta sử dụng dữ liệu đầu ra nối tiếp và bỏ qua dữ liệu đầu ra song song của EDE1144. Các hàng R0 – R3 đƣợc kết nối với bàn phím thông qua điện trở 330Ω, các điện trở này có tác dụng ngăn chặn hiện tƣợng ngắn mạch trong một chu kỳ quét và làm giảm bức xạ từ các dây dẫn bàn phím. Điện trở 4,7kΩtrên các cột bàn phím ngăn chặn EDE1144 tự dao động. Để nhận dữ liệu nối tiếp từ EDE1144 ta sử dụng tín hiệu báo dữ liệu hợp lệ (chân 17), tín hiệu này đƣợc hỏi bởi vi xử lý thông qua các ngắt. Khi chân này hoạt động ở mức thấp các EDE1144 tạm dừng 45mS (trong khi các tín hiệu keybeep đƣợc tạo ra) sau đó dữ liệu nối tiếp đƣợc truyền đi. Các dữ liệu nối tiếp này đƣợc vi điều khiển xử lý để điều khiển các chức năng tiếp theo nhƣ đóng ngắt các rơ le và hiển thị ra LCD. 41
  44. +5V Loa 1K Data valid/Interrupt Output (P3.2 / INT0) Đầu ra nối tiếp (P3.0 RXD) +5V Bàn phím 4x4 XMIT Beep 330 Onm Baud Valid +5V OSC1 4Mhz +5V OSC2 GND +5V R0 C3 R1 C2 R2 EDE1144 C1 R3 C0 4,7K Hình 3.7: Mạch nguyên lý giao tiếp với ma trận phím 42
  45. 3.3 KHỐI HIỂN THỊ Trong phƣơng pháp này ta sử dụng LCD để hiển thị dữ liệu. LCD có thể hiển thị đƣợc cả dòng văn bản, chữ và số cho nên thông tin đƣợc hiển thị qua LCD đƣợc đầy đủ và rõ ràng hơn. Với những phân tích trên ta thấy phƣơng pháp hiển thị bằng LCD thể hiện đƣợc tính hiện đại và đáp ứng tốt việc hiển thị. Ta sẽ đi nghiên cứu kỹ phƣơng pháp này và ứng dụng vào trong thiết kế. 43
  46. 3.3.1 Thiết kế khối hiển thị LCD. 5V P2.5 CONTRAST P2.4 P2.3 P2.2 P2.1 P2.0 VĐK 8051 5V 333KΩ A K D7 D6 D5 D4 D3 D2 D1 D0 E R/W RS VEE VCC GND LCD 2x16 Hình 3.8: Kết nối vi điều khiển 8051 với LCD 2x16 Trong đó các chân D7 đến D4 của LCD đƣợc kết nối lần lƣợt tới các chân P2.0 đến P2.3 của vi điều khiển 8051. Các chân D3 đến D0 và chân R/W, chân GND của LCD đƣợc nối chung với mức điện áp thấp. Chân E nối 44
  47. với P2.4, chân RS nối với P2.5, chân Vee dùng điều chỉnh độ nét bằng cách điều chỉnh biến trở. 3.4 KHỐI MA TRẬN RƠ LE Khối ma trận Rơ le dùng để đóng ngắt các usb đƣợc lựa chọn và đảm bảo yêu cầu tại một thời điểm chỉ có 1 usbđƣợc kết nối với máy tính. Trong thiết kế ta sử dụng Rơ le LH1546AEF, là loại Rơ le bán dẫn 4 chân dùng để cấp nguồn cho cổng USB. 3.4.1 Ma trận rơ le. 3.4.1.1 Rơ le LH1546AEF Trƣớc khi đi vào thiết kế khối ma trận Rơ le ta tìm hiểu qua về Rơ le đƣợc sử dụng trong thiết kế đó là Rơ le LH1546AEF. Đây là loại Rơ le bán dẫn 4 chân hoạt động theo nguyên lý cảm quang. Hình 3.9: Hình ảnh cho rơ le LH1546AEF. Cấu tạo cơ bản của Rơ le là một điôt phát quang và một thiết bị cảm quang. Hình 3.10: Cấu tạo của Rơ le LH1546AEF. 45
  48. Trong cấu tạo của Rơ le LH1546AEF đƣợc bố trí hai Tranzito trƣờng, với thiết kế đặc biệt này dòng điện có thể chạy đƣợc theo hai chiều từ S qua S1 và ngƣợc lại. Điều này rất phù hợp cho thiết kế đó là việc điều khiển và lấy dữ liệu giữa máy tính và khóa. [10] Khi điện áp đặt vào A ở mức cao và K ở mức thấp điôt phát quang và cảm quang sẽ hoạt động và nối chân S với S1, còn các trƣờng hợp khác Rơ le không hoạt động. Ưu điểm của Rơ le bán dẫn: - Dòng tiêu thụ nhỏ (khoảng 1 vài mA) - Kích thƣớc nhỏ - Độ bền cao 3.4.1.2 Ma trận rơ le Ta bố trí 100 Rơ le theo ma trận 10 hàng và 10 cột, các hàng và cột của ma trân này đƣợc điều khiển bởi 20 chân của vi điều khiển 8051. 46
  49. Cột 0 Cột 1 Cột 9 usb1 usb2 usb10 K K K Máy tính Máy tính Rơle 1 Rơle 2 Rơle 10 Hàng 0 A A A usb11 Khóa12 usb20 K K K Máy tính Máy tính Máy tính Rơle 11 Rơle 12 Rơle 20 Hàng 1 A A A usb91 usb92 usb100 K K K Máy tính Máy tính Máy tính Rơle 91 Rơle 92 Rơle 100 Hàng 9 A A A Hình 3.11: Sơ đồ kết nối Rơ le 47
  50. Các chân A (chân 1) của Rơ le đƣợc nối với các hàng, các chân K (chân 2) của Rơ le đƣợc nối với các cột. Chân S (chân 4) của Rơ le nối với đƣờng nguồn của cổng USB máy tính, chân S1 (chân 3) của Rơ le nối với đƣờng nguồn của cổng USB của các usb. Các hàng và các cột của ma trận Rơ le đƣợc nối với các chân của vi điều khiển theo thứ tự lần lƣợt nhƣ sau: Bảng 3.12: Kết nối hàng, cột ma trận Rơ le với Vi điều khiển Hàng 0 kết nối với P0.0 Cột 0 kết nối với P1.2 Hàng 1 kết nối với P0.1 Cột 1 kết nối với P1.3 Hàng 2 kết nối với P0.2 Cột 2 kết nối với P1.4 Hàng 3 kết nối với P0.3 Cột 3 kết nối với P1.5 Hàng 4 kết nối với P0.4 Cột 4 kết nối với P1.6 Hàng 5 kết nối với P0.5 Cột 5 kết nối với P1.7 Hàng 6 kết nối với P0.6 Cột 6 kết nối với P3.4 Hàng 7 kết nối với P0.7 Cột 7 kết nối với P3.5 Hàng 8 kết nối với P1.0 Cột 8 kết nối với P3.6 Hàng 9 kết nối với P1.1 Cột 9 kết nối với P3.7 Nguyên lý hoạt động: nguyên lý hoạt động cơ bản nhƣ sau: - Để usb 1 đƣợc kết nối với máy tính nghĩa là usb 1 đƣợc cấp nguồn việc này đồng nghĩa với Rơ le 1 đƣợc đóng còn các Rơ le khác ngắt ta có: * Hàng 0 có giá trị 1. * Hàng 1 đến hàng 9 có giá trị 0. 48
  51. * Cột 0 có giá trị 0. * Cột 1 đến cột 9 có giá trị 1. - Để usb 2 đƣợc kết nối với máy tính nghĩa là usb2 đƣợc cấp nguồn việc này đồng nghĩa với Rơ le 2 đƣợc đóng còn các Rơ le khác ngắt ta có: * Hàng 0 có giá trị 1. * Hàng 1 đến hàng 9 có giá trị 0. * Cột 0 có giá trị 1. * Cột 1 có giá trị 0. * Cột 2 đến cột 9 có giá trị 1. - Cứ lần lƣợt nhƣ vậy cho đến usb 99 nhƣ sau: * Hàng 9 có giá trị 1. * Hàng 0 đến hàng 8 có giá trị 0. * Cột 8 có giá trị 0. * Cột 1 đến cột 7 có giá trị 1. * Cột 9 có giá trị 1. - Để usb100 đƣợc kết nối với máy tính nghĩa là usb 100 đƣợc cấp nguồn việc này đồng nghĩa với Rơ le 100 đƣợc đóng còn các Rơ le khác ngắt ta có: * Hàng 9 có giá trị 1. * Hàng 0 đến hàng 8 có giá trị 0. * Cột 1 đến cột 8 có giá trị 1. * Cột 9 có giá trị 0. Nếu ta sắp xếp các chân của Port 0, Port 1, Port 3 của vi điều khiển 8051 theo một dãy có thứ tự nhƣ sau: 49
  52. Port0: P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Port1: P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 Port3: P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 - Nhƣ vậy để usb 1 đƣợc kết nối với máy tính thì các chân của các PORT có giá trị lần lƣợt là : Port 0: 0 0 0 0 0 0 0 1 biểu diễn theo hệ 16 sẽ là: 01H Port 1: 1 1 1 1 1 0 0 0 biểu diễn theo hệ 16 sẽ là: F8H Port 3: 1 1 1 1 x x x x biểu diễn theo hệ 16 sẽ là: FxH - Để usb 2 đƣợc kết nối với máy tính thì các chân của các PORT có giá trị lần lƣợt là : Port 0: 0 0 0 0 0 0 0 1 biểu diễn theo hệ 16 sẽ là: 01H Port 1: 1 1 1 1 0 1 0 0 biểu diễn theo hệ 16 sẽ là: F4H Port 3: 1 1 1 1 x x x x biểu diễn theo hệ 16 sẽ là: FxH Tính toán lần lƣợt với tất cả các usb ta có bảng kết quả nhƣ sau: 50
  53. Bảng 3.13 : Bảng kết quả usb đƣợc kết nối usb 1 usb 2 usb 3 với máy tính Port P0 P1 P3 P0 P1 P3 P0 P1 P3 Giá trị 01H F8H FxH 01H F4H FxH 01H ECH FxH Usb 4 Usb5 Usb 6 Usb 7 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 01H DCH FxH 01H BCH FxH 01H 7CH FxH 01H FCH ExH Usb 8 Usb 9 Usb10 Usb11 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 01H FCH DxH 01H FCH BxH 01H FCH 7xH 02H F8H FxH Usb 12 Usb13 Usb14 Usb15 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 02H F4H FxH 02H ECH FxH 02H DCH FxH 02H BCH FxH 51
  54. Usb16 Usb17 Usb18 Usb 19 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 02H 7CH FxH 02H FCH ExH 02H FCH DxH 02H FCH BxH Usb 20 Usb 21 Usb 22 Usb23 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 02H FCH 7xH 04H F8H FxH 04H F4H FxH 04H ECH FxH Usb24 Usb 25 Usb 26 Usb 27 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 04H DCH FxH 04H BCH FxH 04H 7CH FxH 04H FCH ExH Usb 28 Usb29 Usb 30 Usb 31 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 04H FCH DxH 04H FCH BxH 04H FCH 7xH 08H F8H FxH 52
  55. Usb 32 Usb 33 Usb 34 Usb 35 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 08H F4H FxH 08H ECH FxH 08H DCH FxH 08H BCH FxH Usb36 Usb 37 Usb 38 Usb 39 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 08H 7CH FxH 08H FCH ExH 08H FCH DxH 08H FCH BxH Usb 40 Usb 41 Usb 42 Usb 43 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 08H FCH 7xH 10H F8H FxH 10H F4H FxH 10H ECH FxH Usb 44 Usb 45 Usb 46 Usb47 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 10H DCH FxH 10H BCH FxH 10H 7CH FxH 10H FCH ExH 53
  56. Usb 48 Usb 49 Usb 50 Usb 51 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 10H FCH DxH 10H FCH BxH 10H FCH 7xH 20H F8H FxH Usb 52 Usb 53 Usba 54 Usb55 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 20H F4H FxH 20H ECH FxH 20H DCH FxH 20H BCH FxH Usb 56 Usb 57 Usb 58 Usb 59 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 20H 7CH FxH 20H FCH ExH 20H FCH DxH 20H FCH BxH Usb 60 Usb 61 Usb 62 Usb 63 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 20H FCH 7xH 40H F8H FxH 40H F4H FxH 40H ECH FxH 54
  57. Usb 64 Usb65 Usb66 Usb 67 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 40H DCH FxH 40H BCH FxH 40H 7CH FxH 40H FCH ExH Usb 68 Usb 69 Usb70 Usb 71 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 40H FCH DxH 40H FCH BxH 40H FCH 7xH 80H F8H FxH Usb 72 Usb 73 Usb74 v 75 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 80H F4H FxH 80H ECH FxH 80H DCH FxH 80H BCH FxH Usb 76 Usb77 Usb78 Usb 79 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 80H 7CH FxH 80H FCH ExH 80H FCH DxH 80H FCH BxH 55
  58. Usb80 Usb 81 Usb82 Usb83 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 80H FCH 7xH 00H F9H FxH 00H F5H FxH 00H EDH FxH Usb 84 Usb 85 Usb 86 Usb 87 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 00H DDH FxH 00H BDH FxH 00H 7DH FxH 00H FDH ExH Usb 88 Usb89 V 90 Usb 91 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 00H FDH DxH 00H FDH BxH 00H FDH 7xH 00H F2H FxH Usb 92 Usb 93 Usb94 Usb 95 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 00H F6H FxH 00H EEH FxH 00H DEH FxH 00H BEH FxH 56
  59. Usb 96 Usb 97 Usba 98 Usba 99 Po P1 P3 P0 P1 P3 P0 P1 P3 P0 P1 P3 00H 7EH FxH 00H FEH ExH 00H FEH DxH 00H FEH BxH Usb 100 P0 P1 P3 00H FEH 7xH Nhƣ vậy muốn Usb nào đƣợc kết nối tới máy tính ta chỉ việc điều khiển vi điều khiển xuất ra các Port 0, Port 1, Port 3 giá trị các chân theo thứ tự lần lƣợt nhƣ trong bảng kết quả. 3.4.2 Cách kết nối cổng USB từ máy tính đến cổng USB của các Usb qua rơ le. Trong thiết kế ta sử dụng rơ le bán dẫn 4 chân, điều này đồng nghĩa với việc ta sẽ phải đấu chung các đƣờng tín hiệu và đƣờng âm của cổng USB và chỉ đấu qua Rơ le đƣờng cung cấp nguồn cho cổng USB. Chân 4 (chân S) của Rơ le nối với đƣờng nguồn của cổng USB máy tính, chân 3 (chân S1) của Rơ le nối với đƣờng nguồn của cổng USB của các Usb 57
  60. Sơ đồ đấu nối nhƣ sau: Cổng USB - - D- D- máy tính Usb1 D+ D+ + + 4 Rơ le 1 3 - D- D+ 2 + 4 Rơ le 2 3 - D- 99 D+ + 4 Rơ le 99 3 - D- 100 D+ + 4 Rơ le 100 3 Hình 3.14: Sơ đồ đấu nối 58
  61. D- D+ + - - 10 D- D- D+ Usb 1 D+ + + 3 3 Rơle 1 Rơle 10 4 4 Hàng 0 - - 100 - - D 91 D D+ D+ + + 3 3 Rơle 91 Rơle 100 4 4 Hàng 9 Hình 3.15: Sơ đồ thiết kế khối ma trận Rơ le 59
  62. 3.4.3 Kết nối ma trận Rơ le với vi điều khiển 8051. +5V 4,7KΩ 4,7KΩ Hàng 0 Hàng 1 Hàng 2 Hàng 3 Hàng 4 Hàng 5 MA TRẬN RƠ LE 10x10 Hàng 6 Hàng 7 Hàng 8 Hàng 9 Cột Cột Cột Cột Cột Cột Cột Cột Cột Cột 0 1 2 3 4 5 6 7 8 9 P0.0P0.1P0.2 P0.3 P0.4P0.5 P0.6P0.7P1.0P1.1 P1.2 P1.3P1.4P1.5P1.6P1.7P3.4P3.5P3.6P3.7 VI ĐIỀU KHỂN 8051 Hình 3.16: Sơ đồ kết nối ma trận Rơ le với vi điều khiển 8051 60
  63. Trên sơ đồ ta nhận thấy có hai chân P0.0 và P0.1 đƣợc lắp thêm điện trở 4,7KΩ và nối với nguồn +5V. Bởi vì Port P0 là Port có cực máng hở (chân P0.0 và P0.1) muốn thực hiện đƣợc IO thì phải có điện trở treo. 3.5 SƠ ĐỒ THIẾT KẾ TỔNG THỂ VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA THIẾT BỊ 3.5.1 Sơ đồ thiết kế tổng thể của thiết bị. Từ các thiết kế thành phần nhƣ thiết kế khối xử lý trung tâm, thiết kế khối hiển thị , thiết kế khối bàn phím, thiết kế khối ma trận Rơ le ta lắp ghép lại để đi đến một thiết kế tổng thể của thiết bị. Trong thiết kế tổng thể này ta chỉ đƣa ra những mô hình khối mà không chi tiết các thành phần (các thiết kế thành phần đã đƣợc trình bày ở trên). 61
  64. MÁY TÍNH P0.0 ÷ P0.7 P1.0 ÷ P1.1 MA TRẬN RƠ LE 10x10 P1.2 ÷ P1.7 P3.4 ÷ P3.7 P2.0 ÷ P2.5 VI ĐIỀU KHIỂN 8051 HIỂN THỊ LCD 16x2 P3.0 (RxD) P3.2 (INTO) BÀN PHÍM SỐ 4x4 EDE 1144 Hình 3.17: Sơ đồ thiết kế tổng thể của thiết bị 62
  65. 3.5.2 Nguyên lý hoạt động của thiết bị. Theo lƣu đồ thuật toán, khi một phím bất kỳ đƣợc ấn, vi điều khiển hoạt động để điều khiển hệ thống nhƣ sau: - IC ma trận phím báo cho vi điều khiển biết rằng có phím đƣợc ấn thông qua tín hiệu ngắt INT0. - Vi điều khiển nhận tín hiệu ngắt nên sẽ thực hiện chƣơng trình ngắt INT0, trình tự thực hiện chƣơng trình ngắt (giống hệ lƣu đồ của nó) +Chặn ngắt: tức là trong lúc chƣơng trình này đang chạy sẽ không nhận yêu cầu ngắt mới nữa. +Gọi chƣơng trình Đọc bàn phím, chƣơng trình đọc bàn phím thực hiện chức năng giống hệt lƣu đồ thuật toán của nó, tức là sau khi chƣơng trình này thực hiện xong thì vị trí mới của Rơ le Pxy sẽ đƣợc xác định +Gọi chƣơng trình điều khiển ma trận Rơ le: Sau khi thực hiện chƣơng trình này thì vị trí Rơ le mới Pxy đƣợc đóng + Gọi chƣơng trình hiển thị LCD: chƣơng trình này hiển thị vị trí của kênh mới đƣợc liên lạc +Kích hoạt ngắt INT0 trở lại, tức là sẵn sang phát hiện phím mới đƣợc ấn. - Chu trình hoạt động của bộ điều khiển lại quay vòng lại bƣớc đầu tiên. 63
  66. KẾT LUẬN Nghiên cứu tìm hiểu lý thuyết hệ vi xử lý, vi điều khiển 8051, bàn phím ma trận 4x4, LCD 2x16 HD44780. Thực hiện thiết kế hệ thống chuyển mạch của bộ thu thập dữ liệu phục vụ trong lực lƣợng Cơ yếu Công An Nhân Dân. Kết quả thu đƣợc giúp ngƣời dùng có đƣợc sự ổn định, ít thao tác, thiết bị nhỏ gọn, độ chính xác cao, tốc độ nhanh hiển thị rõ ràng. Tuy nhiên do thời gian cũng nhƣ trình độ còn hạn chế nên vẫn còn nhiều thiếu sót em mong quý thầy cô bổ sung chỉ bảo. Sau cùng em xin trân thành cảm ơn các thầy cô trong khoa Điện – Điện Tử, thầy Nguyễn Trọng Thắng đã nhiệt tình giúp đỡ em thực hiện đồ án này. Em xin trân thành cảm ơn. 64
  67. TÀI LIỆU THAM KHẢO 1. Phạm Tuấn Giáo. (2012). Kỹ Thuật Vi Xử Lý và Lập Trình Hệ Thống. Nhà xuất bản Văn Hóa Thông tin. 2. Phƣơng Xuân Nhàn-Hồ Anh Túy. (2009). Lý Thuyết Mạch. Nhà xuất bản Khoa học Kỹ thuật. 3. Văn Thế Minh. (1997). Kỹ Thuật Vi Xử Lý Nhà xuất bản Giáo dục. 4. HD44780.html. 5. collector-datasheet.html. 6. tap.rar. 7. thieu-ve-ho-vid 8. 9. 65