BTL vi xư lý ThiÕt kÕ khãa ®iƯn tư Trêng đại học Bách khoa Hà Nội Khoađiện tử viễn thông Bài tập lớn môn vi xử lý Giảng viên:Phạm Ngọc Nam Nhóm lớp ĐT9_K47: 1.Vũ Tiến Công 2.Vũ Ngọc Hà 3.Nguyễn Văn Hoàng 4.Thái Trờng 5.Trơng Khánh Toàn Lời nói đầu Trong xà hội đại, phát triển ngành điện tử viễn thông yêu cầu thiếu để thúc đẩy kinh tế phát triển góp phần nâng cao đời sống xà hội Ngày nay, giới, điện tử viễn thông không ngừng phát triển với tốc độ cao thâm nhập ngày sâu vào tất lĩnh vực đời Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa ®iƯn tư sèng x· héi Cïng víi sù ph¸t triĨn nh vũ bÃo đó, ngành điện tử viễn thông Việt Nam nỗ lực đờng tìm chỗ đứng cho Trong đó, lĩnh vực bảo mật mảng lớn mà cần quan tâm Chính thế, với mục đích làm quen bớc đầu với việc thiết kế mạch điện tử nói chung với hệ thống an toàn, bảo mật nói riêng, chúng em chọn đề tài Thiết kế hệ thống khóa mà điện tử để nghiên cứu thực Hệ thống cho phép ta quản lý hạn chế đợc số ngời vào theo mà số khu vực cần bảo mật với độ an toàn cao.Đề tài không lớn song mặt nguyên lý phát triển thành ứng dụng quản lý theo thẻ từ, mà vạch,mà hoá khu vực đặc biệt cần phải có may tính đại với CSDL,ngoài mật mà kiểm tra tần số giọng nói camera kiểm tra hình ảnh mà mà cần thiết Vì thế, chúng em bớc sở để nghiên cứu ứng dụng lớn sau Trong trình thực đề tài, đà cố gắng song hạn chế thời gian tìm hiểu, kiÕn thøc cịng nh kinh nghiƯm thùc tÕ nªn chóng em không tránh khỏi nhiều thiếu sót Chúng em mong nhận đợc ý kiến đóng góp thầy cô bạn để đề tài chúng em đợc hoàn thiện hơn, với nhiều chức Hà Nội ngày 25 tháng 11 năm 2005 PHầN1: Giới thiệu chức hệ thống Đây hệ thống đóng më theo m· cho phÐp mét sè Ýt ngêi cã thĨ vµo theo m· cđa hä Nã cã thĨ đợc áp dụng làm cửa vào hệ thống cần mang tính bảo mật, giới hạn số ngời vào nh: Cửa vào quan, nhà máy, khu quan trọng Trên sở đó, hệ thống phải đảm bảo đợc hai yêu cầu sau: -Tính an toàn: cửa nên phải có chức bảo vệ -Tính bảo mật Do chúng em đà đa yêu cầu hệ thống có chức đóng mở nh sau: Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa điện tử I Chức hệ thống: HƯ thèng qu¶n lÝ mét sè m· øng víi mét số ngời đợc cho phép vào hoạt động sở mà M· gåm cã ch÷ sè HƯ thèng giao tiếp với ngời sử dụng thông qua bàn phím điều khiển hiển thị hình Bàn phím gồm phím số 0-9 phím chức năng: ON, Change, Enter, backspace(< ) Khi bắt đầu , ngời điều khiển chọn chức thực hiện: NÕu chän Open: sau ®ã sÏ nhËp m· KÕt thóc nhập mà băng nút Enter -Nếu mà đúng: cửa mở(mô mạch việc bật hay tắt đèn LED xanh) -Nếu mà sai: tợng Nếu nhập mà sai lần liên tiếp chuông báo động (mô mạch việc bật hay tắt đèn LED đỏ) Nếu chọn Change: Kiểm tra xem mà cũ có hay không -Nếu mà đúng: cho phép thay đổi mà cách nhập vào mà xác nhận mà lần -Nếu mà sai: tợng Nếu nhập mà sai ba lần liên tiếp chuông báo động Trong trình nhập mÃ, có nhầm lẫn nhập lại cách sử dụng nút Backspace(< ) II Phân tích hệ thống: II.1.Khả đáp ứng yêu cầu hệ thống: Hệ thống giao tiÕp víi ngêi sư dơng chØ b»ng bµn phÝm vµ hiển thị hạn chế đợc tác động ngời sử dung vào nội dung bên khoá Với số lợng mà không lớn (cỡ 10 mÃ), mà dài sáu chữ số xác suất tìm thấy mà là: 10/1.000.000 = 0,0001%.Thêm vào khả báo động nhập ba mà sai liên tiÕp lµm cho hƯ thèng cã tÝnh an toµn cao Mỗi ngời có mà riêng Nếu nghi ngờ lộ m·, ngêi dïng cã thĨ thay ®ỉi m· theo mong muốn Nhờ mà khả bảo mật hệ thống tăng cao II.2 Phân tích hệ thống: Do giới hạn tập, chúng em tập trung vào thiêt kế phần mạch điện tử để điều khiển hệ thống Theo yêu cầu đa ra, hệ thống gồm khối bản: Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Khối bàn phím Thiết kế khóa điện tử Khối mạch xử lí Khối hiển thị Khối bàn phím: cần 14 nút gåm: - C¸c nót sè tõ 0-9 - C¸c nót chức năng: Open, Change, < - Sử dụng cácphím bấm tự nhả để nhập vào Khối mạch xử lí: Xử lí hoạt động đà nêu yêu cầu hệ thống Khối hiển thị: Giúp cho việc giao tiếp với ngời sử dụng trở nên dễ dàng ngời sử dụng biết thực thao tác với cửa PHầN 2: Các phơng án Trên sở yêu cầu đà đặt phân tích sơ bộ, khối có phơng án giải nh sau: I Khối bàn phím: Bàn phím gồm nút Mỗi nút phận đóng mở khí Các mà bàn phím tạo đợc tạo trực tiếp phép quét hàng quét cột Số đầu dây từ bàn phím phải phù hợp với đầu vào mạch xử lí Đồng thời với dây khả ổn định bàn phím tăng §Ĩ thùc hiƯn bµn phÝm 14 nót ta cã thĨ có phơng án sau: I.1.Phơng án 1: Bố trí thành hàng cột: Số đầu từ bàn phím 14 dây Tốn diện tích Hình thức không đẹp I.2.Phơng án 2: Bố trí thành hàng cột hàng cột: Số đầu từ bàn phím dây Khả để giải mà khó Tốn diện tích Hình thức không đẹp I.3.Phơng án :Bè trÝ thµnh hµng vµ cét: Sè đầu từ bàn phím dây Hình dáng đẹp, cân đối Còn d nút để mở rộng chức tơng lai Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa điện tử Sơ đồ bàn phím nh sau II Khối hiển thị: Yêu cầu đặt khối hiển thị thân thiện với ngời sử dụng Trên sở ta có phơng ¸n sau: II.1.Ph¬ng ¸n 1: Dïng LED thanh: Ưu điểm: Đơn giản, rẻ Nhợc điểm: Không dẫn cụ thể.Giới hạn kí tự hiển thị Nếu muốn hiển thị dẫn dài cần nhiều LED kèm với giải mà Điều làm cho hệ thống trở nên cồng kềnh, phức tạp.Việc lập trình quét hàng quét cột để hiển thị phức tạp II.2.Phơng án 2: Dùng LCD Ưu điểm: Hiển thị rõ ràng có kèm theo dẫn Thay đổi nội dung linh hoạt.Xử lý lập trình đơn giản LED7 ma trận điểm Nhợc điểm: Giá thành đắt III Mạch xử lí: Dùng vi điều khiển: Ưu điểm: - Vi điều khiển có khả ®iỊu khiĨn linh ho¹t theo mong mn cđa ngêi sư dụng dựa vào phần mềm đợc viết - Khả thay đổi mà thực đợc - Hệ thống đơn giản nhiều, kích thức nhỏ Hơn giảm đợc độ ổn định nhiều linh kiện gây - Có thể thay đổi, thêm chức cách thay đổi phần mềm Nhợc điểm: Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xư lý ThiÕt kÕ khãa ®iƯn tư - ChÊt lợng hệ thống phụ thuộc vào chất lợng chơng trình đợc nạp cho vi điều khiển IV Kết luận: Sau cân nhắc phơng án đà đa ra, khả phối hợp khối, chúng em chọn giải pháp: - Sử dụng bàn phím 4x4 - Khối hiển thị dùng LCD - Khối mạch xử lí dùng vi điều khiển PHầN 3: phơng án dùng vi điều khiển I Thiết kế phần cứng: Định hớng thiết kÕ: ThiÕt kÕ mét hƯ vi ®iỊu khiĨn bao gåm việc thiết kế tổ chức phần cứng viết phần mềm cho phần cứng mà ta thiết kế Việc xem xét tổ chức phần cứng chơng trình phần mềm cho thiết kế vấn đề cần phải cân nhắc Vì tổ chức phần cứng phức tạp, có nhiều chức hỗ trợ cho yêu cầu thiết kế phần mềm đợc giảm bớt dễ dàng thực nhng lại đẩy cao giá thành chi phí cho phần cứng, nh chi phí bảo trì Ngợc lại với phần cứng tối thiểu lại yêu cầu chơng trình phần mềm phức tạp hơn, hoàn thiện hơn; nhng lại cho phép bảo trì hệ thống dễ dàng nh việc phát triển tính hệ thống Từ yêu cầu nhận định ta có định hớng s¬ bé cho thiÕt kÕ nh sau: I.1.Chän bé vi điều khiển: Từ yêu cầu đề ta dự kiến dùng chip vi điều khiển thuộc họ MCS-51 Intel, mà cụ thể dùng chip 8051 lý sau: Thứ 8051 thuộc họ MCS-51, chip vi điều khiển Đặc điểm chip vi điều khiển nói chung đợc tích hợp với đầy đủ chức hệ VXL nhỏ, thích hợp với thiết kế hớng điều khiển Tức bao gồm: mạch VXL, nhớ chơng trình liệu, đếm, tạo xung, cổng vào/ra nối tiếp song song, mạch điều khiển ngắt Thứ hai là, vi ®iỊu khiĨn 8051 cïng víi c¸c hä vi ®iỊu khiĨn khác nói chung năm gần đợc phát triển theo hớng sau: Giảm nhỏ dòng tiêu thụ Tăng tốc độ làm việc hay tần số xung nhịp CPU Giảm điện áp nguồn nuôi Có thể mở rộng nhiều chức chip, mở rộng cho thiết kế lớn Những đặc điểm dẫn đến đạt đợc hai tính quan trọng là: giảm công suất tiêu thụ cho phép điều khiển thời gian thực nên mặt ứng dụng thích hợp với thiết kế hớng điều khiển Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa điện tử Thứ ba là, vi điều khiển thuộc họ MCS-51 đợc hỗ trợ tập lệnh phong phú nên cho phép nhiều khả mềm dẻo vấn đề viết chơng trình phần mềm điều khiển Cuối là, chip thuộc họ MCS-51 đợc sử dụng phổ biến đợc coi chuẩn công nghiệp cho thiết kế khả dụng.Với sinh viên làm quen với VĐK 8051 có nhiều tài liệu tham khảo,đồng thời sử dụng đơn giản Mặt khác, qua việc khảo sát thị trờng linh kiện việc có đợc chip 8051 dễ dàng nên mở khả thiết kế thực tế Vì lý mà việc lựa chọn vi điều khiển AT89C51 hÃng Atmel, vi điều khiển thuộc họ MCS-51 Cấu hình hoạt động chip AT89C51: -ROM trong: Flash ROM - 4KBytes -RAM trong: 128 bytes I.2 Tæ chức ngoại vi: - Chip: AT89C51 - Ghép nối hình LCD: 16x2 Ngoài còn: - LED báo hiệu chơng trình chạy - Tín hiệu cho phép chạy đợc xử lý cách dùng nút ấn Reset hệ thống - Tín hiệu báo động, mở cửa, đóng cửa đợc đa led Sơ đồ khối hệ thống nh sau: Hiển thị LCD Bàn phím Khối vi xử lý AT89C51 Báo động II Vi điều khiển AT89C51: Nguồn ngắt Điều khiển ngắt Lớp điện tử 9-K47 Đếm sù kiƯn Ngn ng¾t 8Kbytes ROM 256byte RAM 2bộ đếm / Giảng viên:Phạm Ngọc Nam định thời BTL vi xử lý Khối đ.khiển quản lý Bus Bộ tạo dao động XTAL 1.2 /PSEN/ALE Port Port Cổng I/O Đchỉ thấp Dữ liệu bit Port Cổng I/O Cổng I/O bit Đchỉ cao Dữ liƯu bit ThiÕt Giao®iƯn tư Port kÕ khãa diện nối tiép Cổng I/O Các chức đắc biệt Dữ liệu bit Hình 2.1: Cấu trúc vi điều khiển 8051 Chức khối : Khối xử lý trung tâm CPU: Phần vi xử lý khối xử lý trung tâm (CPU=Central Processing Unit ), khối có chứa thành phần chÝnh : Thanh chøa ACC (ký hiƯu lµ A) Thanh ghi chứa phụ (ký hiệu B) thờng đợc dùng cho phép nhân phép chia Khối logic số học (ALU=Arithmetic Logical Unit) Từ trạng thái chơng trình (PSW= Program Status Word) Bốn băng ghi (Blank) Con trỏ ngăn xếp (SP=Stack Point) nh trỏ liệu để định địa cho nhớ liệu bên Ngoài ra, khối xử lý trung tâm chứa: Thanh ghi đếm chơng trình (PC= Progam Counter ) Bộ giải mà lệnh Bộ điều khiển thời gian logic Sau đợc Reset, CPU bắt đầu làm việc địa 0000h, địa đầu đợc ghi ghi chứa chơng trình (PC) sau đó, ghi tăng lên đơn vị đến lệnh chơng trình Bộ tạo dao động: Khối xử lý trung tâm nhận trực tiếp xung nhịp từ tạo dao động đợc lắp thêm vào, linh kiện phụ trợ khung dao động làm tụ gốm thạch anh Ngoài ra, đa tín hiệu giữ nhịp từ bên vào Khối điều khiển ngắt: Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa điện tử Chơng trình ®ang ch¹y cã thĨ cho dõng l¹i nhê mét khèi logic ngắt bên Các nguồn ngắt là: biến cố bên ngoài, tràn đếm/ định thời giao diện nối tiếp Tất ngắt đợc thiết lập chế độ làm việc thông qua hai ghi IE (Interrupt Enable) vµ IP (Interrupt Priority) Khèi điều khiển quản lý Bus : Các khối vi điều khiển liên lạc với thông qua hệ thống Bus nội đợc điều khiển khối điều khiển quản lý Bus Các đếm/định thời: Vi ®iỊu khiĨn 8051 cã chøa hai bé ®Õm tiÕn 16 bit hoạt động nh định thời hay đếm kiện bên nh phát tốc độ Baud dùng cho giao diện nối tiếp Trạng thái tràn đếm đợc kiểm tra trực tiếp đợc xoá ngắt Các cổng vào/ra: Vi điều khiển 8051 có bốn cổng vào/ra (P0 mà P3), cổng chứa bit, độc lập với Các cổng đợc sử dụng cho mục đích điều khiển đa dạng Ngoài chức chung, số cổng đảm nhận thêm số chức đặc biệt khác Giao diÖn nèi tiÕp: Giao diÖn nèi tiÕp cã chøa truyền nhận không đồng làm việc độc lập với Bằng cách đấu nối đệm thích hợp, ta hình thành cổng nối tiếp RS-232 đơn giản Tốc độ truyền qua cổng nối tiếp đặt đợc vùng rộng phụ thuộc vào định thời tần số dao động riêng thạch anh Bộ nhớ chơng trình: Bộ nhớ chơng trình thờng nhớ ROM (Read Only Memory), nhớ chơng trình đợc sử dụng để cất giữ chơng trình điều khiển hoạt ®éng cđa vi ®iỊu khiĨn Bé nhí sè liƯu: Bé nhí sè liƯu thêng lµ bé nhí RAM (Ramdom Acces Memory), nhớ số liệu dùng để cất giữ thông tin tạm thời trình vi điều khiển làm việc Sự xếp chân vi điều khiển 8051: Phần lớn vi điều khiển 8051 đợc đóng vào vỏ theo kiểu hai hàng DIL (Dual In Line) với tổng số 40 chân ra, số lại đợc đóng vỏ theo kiểu hình vuông PLCC (Plastic Leaded Chip Carrier) với 44 chân loại thờng đợc dùng cho hệ thống cần thiết phải tiết kiệm diện tích Trong chơng trình ta sử dụng loại 89C51 kiểu hàng với 40 ch©n III Chi tiÕt tõng khèi: III.1 Khèi phÝm sè: HƯ thèng sư dơng bµn phÝm 4x4 cã giao diện nh sau: Lớp điện tử 9-K47 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Trong đó: Thiết kế khóa điện tử Các phím bàn phím Phím 0-9 dùng để nhập mà Các phím chọn chức năng: open(phÝm ON),®ỉi password(phÝm change),xãa ký tù võa nhËp(< ) Líp điện tử 9-K47 10 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa điện tử Sơ đồ nguyên lý bàn phím theo hình vẽ sau: Nguyên lý hoạt động bàn phím: Khi phím đợc nhấn làm thông transistor cho đầu phím từ +5V 0V tức từ mức lôgic mức lôgic Sau ta đ a tÝn hiƯu qua hƯ thèng cỉng NAND xư lÝ xung từ bàn phím vào P3.10 Ta giải mà bàn phím đợc tín hiệu có bít nhấn bàn phím ta lấy tín hiệu đa vào Port2 VĐK.Trong vi điều khiển ta lập trình nạp mà số dạng bit nh bàn phím mà hoá đợc vào lần lợt sáu ghi ROM Ta đem so sánh mà bàn phím nhấn với mà đợc nạp Để mở rộng ta giải mà bàn phím dạng phức tạp để tính bảo mật đợc tốt Bảng mà hóa trạng thái bàn phím Phím ON Lớp điện tử 9-K47 Trạng thái Ên phÝm 1 11 1 Gi¶ng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa ®iƯn tư Change < 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 III.2 Khèi xư lý trung t©m: NhiƯm vơ cđa khối xử lý trung tâm: Đọc mà phím từ bàn phím để kiểm tra xem phím đà đợc ấn thực chức phím Lu giá trị mà để mở khóa Lu chơng trình xử lý phím ấn: mở khóa, đổi mÃ, báo động mà Lu chơng trình điều khiển LCD Chức chân VĐK trung tâm: -Vcc: Chân cung cấp nguồn -GND: Chân nối đất -Port1:dùng làm bus liệu bit tới chân liệu LCD -Port 2:dùng để nhận liệu đầu vào mà bàn phím -Port 3: Chân 3.6 nèi víi ch©n RS cđa LCD Ch©n 3.4 nèi víi ch©n E cđa LCD Ch©n 3.5 nèi víi ch©n RW cđa LCD Ch©n 3.5 nèi víi khèi tạo tiếng bíp có phím đựơc nhấn -Chân số nối với mạch reset, hoạt động mức High(1) -Chân số 18,19:nối với dao động thạch anh,tụ 33p để tạo dao động cho vi AT89C51 XTAL1, XTAL2 tạo tín hiệu giữ nhịp với tần số đợc xác định cộng hởng thạch anh đợc lắp thêm vào, tần số xác định tốc độ làm vi điều khiển Thông thờng lệnh đợc thực 1/12 tần số dao động thạch anh -Chân số 20: Vss nối đất -Chân số 31: EA Đóng vai trò định xem vi điều khiển làm việc với chơng trình bên hay bên Với loại 8051 ROM chân phải đợc nối với mát Loại thông thờng làm việc tuỳ theo cách lựa chọn ROM hay ROM ngoài, chế độ làm viƯc víi bé nhí ROM trong, lo¹i cã chøa bé nhớ ROM truy nhập tự động lên nhớ chơng trình bên Trong mạch ta nối lên nguồn không sử dụng ROM bên -Chân số 40: Vdd nguồn dơng( +5V) Lớp điện tử 9-K47 12 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa điện tử III.3 Khối hiển thị LCD: Với u điểm nh: tiêu thụ dòng thấp, hiển thị đợc hình ảnh/ký tự linh hoạt tốt nhiều so với LED ,màn hình tinh thể lỏng LCD (Liquid Crystal Display) đợc sử dụng hầu hết thiết bị điều khiển công nghiệp để hiển thị trạng thái máy móc Ngày với công nghệ phát triển giá thành LCD giảm nhiều Do có nhiều chủng loại khác nhau, nên LCD đợc sử dụng rộng rÃi Tất LCD đợc sản xuất theo chuẩn chung, tích hợp module điều khiển (cho LCD) nên việc sử dụng không phức tạp Bộ điều khiển LCD cung cấp tập lƯnh dïng ®Ĩ diỊu khiĨn LCD Trong øng dơng thể này, không yêu cầu hiển thị phức tạp nên em chọn loại LCD kiểu ký tự, với 16 ký tù, hµng (16characters x 2lines) LCD sư dơng ma trận chữ 5x8 (font 5x8), module điều khiển HD44780 Tên LCD DM1602B Vss Vdd Vo RS RW E 15 16 D0D1D2D3D4D5D6D7 + LED 10 11 12 13 14 CHARACTER TYPE LCD MODULE OD-DM 1602B 16charsX2lines LCD : DM 1602B Bảng : Chức chân ghép nối chi tiết LCD- 89C51 : STT Ký hiệu Vss Vcc Vee Nối với Mức logic vi xử lý Chức R/W E P3.5 xung L-H-L V (Ground) V (Supply) điều khiển độ sáng tối cho LCD H: chọn ghi vào liệu L: chọn ghi cho lênh điều khiển chọn chế độ đọc viết: H: cho biết đọc từ LCD vào VXL L: cho biết đọc từ VXL vào LCD t ín hiệu cho phép LCD hoạt động 10 11 12 DB0 DB1 DB2 DB3 DB4 DB5 P1.0 P1.1 P1.2 P1.3 P1.4 H/L H/L H/L H/L H/L H/L Bit liệu Bit liệu Bit liệu Bit liệu Bit liệu Bit liệu P3.7 RS H/L P3.6 H/L P1.5 Lớp điện tử 9-K47 13 Giảng viên:Phạm Ngọc Nam BTL vi xử lý 13 14 15 16 DB6 DB7 ThiÕt kÕ khãa ®iƯn tư P1.6 P1.7 H/L H/L Bit liệu Bit liệu V (Ground) V nguồn cấp cho đèn backline Điều khiển hoạt động LCD: Hoạt động LCD đợc điều khiển thông qua tín hiệu E, RS, RW -TÝn hiƯu E lµ tÝn hiƯu cho phÐp gưi liệu Để gửi liệu đến LCD, chơng trình phải thiết lập E=1, sau đặt trạng thái điều khiển thích hợp lên RS, RW bus liệu, cuối đa E Hoạt động chuyển đổi từ caoxuống-thấp cho phép LCD nhận liệu thời đờng điều khiển nh bus liệu xem nh lệnh -TÝn hiƯu RS lµ tÝn hiƯu cho phÐp chän ghi (Register Select ) Khi RS=0, liệu đợc coi nh lệnh hay thị đặc biệt (nh xóa hình, đặt vị trí trỏ mà) Khi RS=1, liệu đ ợc coi liệu dạng văn đợc hiển thị hình -Tín hiệu RW tín hiệu Đọc/Ghi Khi RW=1, thông tin bus liệu đợc ghi vào LCD Khi RW=0, chơng trình đọc LCD -Bus liệu gồm đờng tùy thuộc vào chế độ hoạt động mà ngời sử dụng lựa chọn (ở chơng trình sử dụng bus liệu 8-bít) Mà lƯnh ®iỊu khiĨn cđa LCD: Command Binary Hex D7 D6 D5 D4 D3 D2 Clear Display 0 0 0 01 Display & Cursor Home 0 0 0 X 02 or 03 Chacractor Entry Mode 0 0 I/D S 04 to 07 Display On/Off & Cursor 0 0 D U B 08 to 0F Display/Cursor Shift 0 D/C R/L X X 10 to1F Funtion Set 0 8/4 2/1 10/7 X X 20 to 3F Set Ggram Address A A A A A A 40 to 7F Set Display Address A A A A A A A 80 to FF Lớp điện tử 9-K47 14 D1 D0 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kế khóa ®iƯn tư I/D:1= Increment*, 0=Decrement R/L: = Right Shift, = Left Shift S : 1= Display Shift on, 0= Display Shift off* 8/4: = bit interface*, = bit interface D: 1= Display On, 0= Display Off* 2/1: = line mode, 0= line mode D/C :1=Display Shift, 0=Cursor move x = Don’t care 10/7 :1= 5x10 dot format, 0= 5x7 dot format * = initialisation settings III.4 Khối báo động: Khi ngời sử dụng nhập mà sai lần kích cho tín hiệu báo động Để đơn giản, tín hiệu báo động đợc đa đèn led để quan s¸t Më réng thiÕt kÕ thêi gian nhiỊu chúng em mắc rơle điều khiển động III.5 Sơ đồ khối toàn mạch: IV.2 Mà nguồn:đợc viết dịch sang hex phần mền READS51 Lớp điện tử 9-K47 15 Giảng viên:Phạm Ngọc Nam BTL vi xử lý ThiÕt kÕ khãa ®iƯn tư ; - READS51 generated header -; #include ;Cong P1 duoc ket noi voi LCD ;Cong P2 dung de nhan du lieu gui tu ban phim ;Chan P3.6 noi voi chan ENcua LCD ;Chan P3.4 noi voi chan RS cua LCD ;Chan P3.5 noi voi chan RW cua LCD ;Chan P3.7 noi voi khoi tao tin hieu nhay den LED nhan phim ORG ;| -| ;Chuong trinh phuc vu ngat cho ban phim MAIN: MOV 50,#4H CLR P3.7 MAIN_ENABLE_LOOP: LCALL INIT_LCD ;Khoi tao trang thai ban dau cho LCD LCALL CLEAR_LCD LCALL DELAY1S ;Viet "Password: " MOV A,#'P' LCALL TEXT_LCD MOV A,#'a' LCALL TEXT_LCD MOV A,#'s' LCALL TEXT_LCD MOV A,#'s' LCALL TEXT_LCD MOV A,#'w' LCALL TEXT_LCD MOV A,#'o' LCALL TEXT_LCD MOV A,#'r' LCALL TEXT_LCD MOV A,#'d' LCALL TEXT_LCD MOV A,#':' LCALL TEXT_LCD MOV A,#'-' LCALL TEXT_LCD MOV A,#'-' LCALL TEXT_LCD MOV A,#'-' LCALL TEXT_LCD MOV A,#'-' LCALL TEXT_LCD MOV A,#'-' LCALL TEXT_LCD Líp ®iƯn tư 9-K47 16 Giảng viên:Phạm Ngọc Nam BTL vi xử lý MOV A,#'-' LCALL TEXT_LCD MOV A,R7 MOV R7,#06H SHIFT_L6: LCALL SHIFT_LEFT LCALL DELAY DJNZ R7,SHIFT_L6 MOV R7,A LCALL SET_PASSWORD ThiÕt kÕ khãa ®iƯn tư ;Dich chuyen vi tri tro doi ve vi tri dau ;| -| ;111111111111111111111111111111111111111111111111111 ;Doan chuong trinh thuc hien viec nhap vao ki tu ma ;Ghi du lieu nhan duoc vao cac ghi tu R1 den R6 cua bang ;thanh ghi thu hai ;Viet ki tu * moi du lieu tren cac dau vao P2 duoc ghi ;hoan chinh vao cac ghi tuong ung; ;Lap lai qua trinh lan, neu co xoa, an phim CLEAR, thi ;phai co xu li ;Moi mot phim duoc nhan thi chuong trinh se dung lai ;trong mot khoang thoi gian nhat dinh, de tranh tinh trang ;co nhung dot bien xung khong theo y muon ;xay mach ;Sau no se nhan du lieu tu cong P2 dua vao ghi tuong ung ;Ma thu nhat ghi vao ghi R1; ;Ma thu hai ghi vao ghi R2; ; ; ;Ma thu ghi vao ghi R6; ;Tat ca deu la ghi bang ;Sau ghi xong thi se lien tuc kiem tra xem bit P3.0 da ve muc ;chua, neu van dang nhan phim, tuc la van dang muc thi doi, ;cho den bit P3.0 tro ve muc cao, phat tin hieu len ;bit P3.7 de nguoi su dung biet la minh vua tha phim xong, ;va co the thuc hien viec nhap ma tiep theo ;Vi vay qua trinh su dung nguoi dung phai giu phim nhan ;trong mot thoi gian nhat dinh sau nha phim co tin hieu bao ;thi moi tien hanh nhap mot ma moi duoc, khong the nhap phim qua ;nhanh, dieu se khong dung nhu mong muon cua nguoi dung ;CTC thiet lap password SET_PASSWORD: MOV R4,#6H MOV R0,#35H HERE: Líp ®iƯn tư 9-K47 17 Giảng viên:Phạm Ngọc Nam BTL vi xử lý LCALL DELAY1S muon SETB P3.0 JB P3.0,HERE MOV A,#FFH MOV P2,A MOV A,P2 ThiÕt kÕ khãa ®iƯn tư ;Doi mot luc de tranh xung bat thuong, ngoai mong ;Dung bit P3.0 de kiem tra co phim nhan khong ;Doi cho den luc nao phim duoc nhan, chan P3.0 ;ve muc ;Dat cong P2 lam cong vao ;Kiem tra xem co phai la phim Clear khong ;Neu phai thi xoa lui lai mot ki tu, va giam gia tri R0 xuong CJNE A,#E7H,LABEL_CONTINUOUS LCALL CLEAR_SHIFT_L SJMP CONTINUOUS LABEL_CONTINUOUS: MOV @R0,A ;Tang dia chi cua ghi len tuong ung voi ghi R1 bang WAIT_HERE:JNB P3.0,WAIT_HERE;Doi neu nhu chua nha phim MOV A,#'*' LCALL TEXT_LCD;Viet len LCD ki tu '*' LCALL DELAY1S INC R0 CONTINUOUS:DJNZ R4, HERE LCALL DELAY1S ;So sanh mat khau nhap voi mat khau truoc LCALL COMP_PASSWORD RET ;111111111111111111111111111111111111111111111111111 ;111111111111111111111111111111111111111111111111111 ;Chuong trinh xoa mot ki tu va giam R0 xuong CLEAR_SHIFT_L: CJNE R4,#6,CLEAR_CONTINUOUS SJMP CONSTANT CLEAR_CONTINUOUS: LCALL SHIFT_LEFT LCALL DELAY1S MOV A,#'-' LCALL TEXT_LCD LCALL SHIFT_LEFT DEC R0 INC R4 CONSTANT: INC R4 RET ;111111111111111111111111111111111111111111111111111 ;111111111111111111111111111111111111111111111111111 ;Chuong trinh thuc hien viec so sanh ma nhap vao voi ma thuc Líp ®iƯn tư 9-K47 18 Giảng viên:Phạm Ngọc Nam BTL vi xử lý ThiÕt kÕ khãa ®iƯn tư COMP_PASSWORD: ORG 200H MY_PASS_WORD: DB 7BH,7BH,7BH,7BH,7BH,7BH MOV R1,#35H MOV DPTR,#MY_PASS_WORD MOV R6,#6 LOOP_COMP: CLR A MOVC A,@A+DPTR XRL A,@R1 JNZ LABEL_ERROR INC R1 INC DPTR DJNZ R6, LOOP_COMP LCALL WRITE_STRING_OPEN SJMP CON LABEL_ERROR: LCALL WRITE_STRING_ERROR CON: RET ;111111111111111111111111111111111111111111111111111 ;111111111111111111111111111111111111111111111111111 ;Chuong trinh viet len mot thong WRITE_STRING_OPEN: LCALL CLEAR_LCD;Xoa man hinh truoc viet LCALL DELAY1S MOV A,#'Y' LCALL TEXT_LCD MOV A,#'O' LCALL TEXT_LCD MOV A,#'U' LCALL TEXT_LCD MOV A,#' ' LCALL TEXT_LCD MOV A,#'A' LCALL TEXT_LCD MOV A,#'R' LCALL TEXT_LCD MOV A,#'E' LCALL TEXT_LCD MOV A,#' ' LCALL TEXT_LCD MOV A,#'W' LCALL TEXT_LCD MOV A,#'E' LCALL TEXT_LCD MOV A,#'L' LCALL TEXT_LCD Líp ®iƯn tư 9-K47 19 Giảng viên:Phạm Ngọc Nam BTL vi xử lý Thiết kÕ khãa ®iƯn tư MOV A,#'C' LCALL TEXT_LCD MOV A,#'O' LCALL TEXT_LCD MOV A,#'M' LCALL TEXT_LCD MOV A,#'E' LCALL TEXT_LCD SETB P3.7 DUNG:SJMP DUNG RET ;111111111111111111111111111111111111111111111111111 ;111111111111111111111111111111111111111111111111111 ;Chuong trinh viet len mot thong WRITE_STRING_ERROR: LCALL CLEAR_LCD LCALL DELAY1S MOV A,#'I' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'N' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'C' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'O' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'R' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'R' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'E' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'C' LCALL TEXT_LCD LCALL DELAY1S MOV A,#'T' LCALL TEXT_LCD LCALL DELAY1S LCALL DELAY1S LCALL DELAY1S LCALL CLEAR_LCD LCALL DELAY1S Lớp điện tử 9-K47 20 Giảng viên:Phạm Ngọc Nam