GIỚI THIỆU VỀ ATMEL AT90S2313 VÀ ỨNG DỤNG KHÓA MÃ HÓA
Chuẩn bị bởi: Metin ÇINAR có thông tin giá trị cho những người biết giá trị của mạch khóa mã hóa sang một bên, nhờ những người đi qua.
Vi điều khiển vi điều
khiển (MCU) có thể được xem như một loại CPU. MCU có khả năng giải quyết chậm hơn và ít bộ nhớ hơn, được gọi là MIB, nhưng chúng rẻ hơn và dễ sử dụng hơn vì chúng được thiết kế để thực hiện các vấn đề kiểm soát thời gian thực. Sự khác biệt quan trọng nhất giữa MCU và MCU là thiết bị bên ngoài cần thiết cho việc sử dụng chúng. MCU hầu như luôn luôn không cần thiết bị bên ngoài khác với một tinh thể hoặc dao động. CPU không thể làm bất cứ điều gì mà không có các thành phần bên ngoài. Ví dụ, bạn cần rất nhiều thiết bị bổ sung, chẳng hạn như giao diện truyền thông song song, giao diện truyền thông nối tiếp, bộ nhớ, v.v.
khiển (MCU) có thể được xem như một loại CPU. MCU có khả năng giải quyết chậm hơn và ít bộ nhớ hơn, được gọi là MIB, nhưng chúng rẻ hơn và dễ sử dụng hơn vì chúng được thiết kế để thực hiện các vấn đề kiểm soát thời gian thực. Sự khác biệt quan trọng nhất giữa MCU và MCU là thiết bị bên ngoài cần thiết cho việc sử dụng chúng. MCU hầu như luôn luôn không cần thiết bị bên ngoài khác với một tinh thể hoặc dao động. CPU không thể làm bất cứ điều gì mà không có các thành phần bên ngoài. Ví dụ, bạn cần rất nhiều thiết bị bổ sung, chẳng hạn như giao diện truyền thông song song, giao diện truyền thông nối tiếp, bộ nhớ, v.v.
Một số MCU tiêu chuẩn có thể được tìm thấy trong các gói MCU với các bộ chỉ dẫn và tốc độ riêng của chúng, theo cách này, CPU có thể được sử dụng như một MCU với nhiều tính năng hữu ích và bổ sung hơn. Một vi điều khiển có bốn tính năng cơ bản. Đó là: tốc độ, kích thước, dung lượng bộ nhớ và một số tiện ích bổ sung được cung cấp.
Tốc độ được xác định bởi tần số của đồng hồ được sử dụng và thường được đo bằng hàng triệu chu kỳ trên giây (Mega-Hertz, MHz). Đối với các MCU khác nhau, tốc độ này khác nhau và làm cho tốc độ của các bộ xử lý khác nhau. Bộ máy tính đặt lệnh phức tạp (CISC) - Chu trình đồng hồ cần thiết để xử lý lệnh trên máy tính có bộ lệnh phức tạp khác nhau đối với mỗi lệnh. Một số lệnh được hoàn thành trong một chu kỳ đồng hồ, trong khi một số lệnh có thể được hoàn thành vào cuối chu kỳ đồng hồ, có thể được biểu diễn bằng nhiều cách.
Vì lý do này, nó không phải là dễ dàng để nói làm thế nào nhanh chóng máy tính với kiến trúc CISC được. Giảm Instuction Set Computers (RISC) hướng dẫn thiết lập kiến trúc máy tính -RISC là khả năng thực hiện ít hơn và đơn giản hơn hoạt động sahiptir.genellikl lệnh này có thể được thực hiện trong một hoặc nhiều chu kỳ đồng hồ. Một số lượng lớn các lệnh RISC có thể được yêu cầu để thực hiện một lệnh CISC.
Kích thước được xác định bởi số bit mà MCU có thể xử lý trong một bước. MCU được sản xuất dưới dạng 4, 8, 16, 32 bit, nhưng ngày nay, các loại được sử dụng phổ biến nhất là 8 bit.
Trong các máy tính cá nhân, kích thước bộ nhớ được đo theo thứ tự MB (Mega-Byte) trong khi kích cỡ ROM của các bộ vi điều khiển được đo theo thứ tự KB (Bin-Byte), giá trị RAM khoảng vài trăm byte. Vi điều khiển sử dụng ký ức của họ khác với máy tính để bàn. Bộ nhớ trong máy vi tính được tổ chức theo kiến trúc Von Neuman. Vì vậy, tất cả các chương trình và dữ liệu được lưu giữ trong cùng một bộ nhớ. Ngược lại, nhiều tổ chức bộ nhớ MCU dựa trên kiến trúc Harvard.
Trong kiến trúc này, chương trình được thực hiện trong một bộ nhớ riêng biệt (thường là ROM, Flash hoặc bộ nhớ không bay hơi khác), và các biến tạm thời được lưu trữ trong một bộ nhớ riêng biệt (thường là SRAM bên trong hoặc bên ngoài). Đây không chỉ là một sự phân biệt chức năng (dữ liệu cố định trong ROM, dữ liệu tạm thời trong RAM), mà còn cho phép bộ vi xử lý truy cập vào những kỷ niệm riêng biệt hiệu quả hơn.
Cấu hình bộ nhớ
Máy tính cá nhân lưu trữ các chương trình của họ trên đĩa cứng từ, đĩa mềm hoặc đĩa CD-ROM quang. Khi các chương trình này cần được chạy, các chương trình được chuyển từ RAM sang RAM và chạy ở đó. Vi điều khiển lưu trữ các chương trình của họ trong các loại ký ức khác nhau. Khi điện áp áp dụng bị cắt, MCU giữ mã chương trình trong bộ nhớ vĩnh viễn thay vì DRAM mà chương trình bị mất và cần được làm mới thường xuyên (làm mới).
Máy tính cá nhân lưu trữ các chương trình của họ trên đĩa cứng từ, đĩa mềm hoặc đĩa CD-ROM quang. Khi các chương trình này cần được chạy, các chương trình được chuyển từ RAM sang RAM và chạy ở đó. Vi điều khiển lưu trữ các chương trình của họ trong các loại ký ức khác nhau. Khi điện áp áp dụng bị cắt, MCU giữ mã chương trình trong bộ nhớ vĩnh viễn thay vì DRAM mà chương trình bị mất và cần được làm mới thường xuyên (làm mới).
Rom (Bộ nhớ chỉ đọc)
Một loại bộ nhớ cho phép đọc dữ liệu trong Bộ nhớ chỉ đọc (ROM) nhưng không cho phép thay đổi dữ liệu. Lập trình các ký ức chỉ đọc được thực hiện bằng các kỹ thuật đặc biệt, những ký ức này thường được lưu trữ trong xe hơi, lò vi sóng, máy giặt, vv được sử dụng trong các hệ thống MCU được sử dụng.
Một loại bộ nhớ cho phép đọc dữ liệu trong Bộ nhớ chỉ đọc (ROM) nhưng không cho phép thay đổi dữ liệu. Lập trình các ký ức chỉ đọc được thực hiện bằng các kỹ thuật đặc biệt, những ký ức này thường được lưu trữ trong xe hơi, lò vi sóng, máy giặt, vv được sử dụng trong các hệ thống MCU được sử dụng.
OTP ROM (One Time Programmable ROM)
ROM như vậy có thể được lập trình một lần 's cho phép các nhà sản xuất công việc lập trình được thực hiện bằng cách thay vì khách hàng với thiết bị lập trình sağlar.özel tải đang lập trình trong ROM, bao gồm một lần.
ROM như vậy có thể được lập trình một lần 's cho phép các nhà sản xuất công việc lập trình được thực hiện bằng cách thay vì khách hàng với thiết bị lập trình sağlar.özel tải đang lập trình trong ROM, bao gồm một lần.
EPRom
Erasable / ROM lập trình cho phép người dùng xóa ROM và lập trình lại nó. Việc tẩy xoá được thực hiện bằng ánh sáng cực tím và được thực hiện trong khoảng thời gian từ 5 phút đến nửa giờ.
Erasable / ROM lập trình cho phép người dùng xóa ROM và lập trình lại nó. Việc tẩy xoá được thực hiện bằng ánh sáng cực tím và được thực hiện trong khoảng thời gian từ 5 phút đến nửa giờ.
EEPROM
PROM erasable bằng điện (Elecrically-xóa được PROM) 's chương trình vì nó là dễ dàng hơn để sử dụng, và xóa các hoạt động có thể được thực hiện đồng thời và không xóa các phương pháp sử dụng sử dụng một quá trình chậm với ánh sáng. EPROM và EEPROM có khả năng lập trình nhất định. Khoảng 1000 lần lập trình là có thể.
PROM erasable bằng điện (Elecrically-xóa được PROM) 's chương trình vì nó là dễ dàng hơn để sử dụng, và xóa các hoạt động có thể được thực hiện đồng thời và không xóa các phương pháp sử dụng sử dụng một quá trình chậm với ánh sáng. EPROM và EEPROM có khả năng lập trình nhất định. Khoảng 1000 lần lập trình là có thể.
Flash là
một loại EEPROM trong bộ nhớ flash Lập trình EEPROM yêu cầu một thiết bị lập trình đặc biệt và mức điện áp cao hơn mức yêu cầu của mạch trong đó ROM được sử dụng
. Khoảng 1000 lần lập trình là có thể. Các ký ức flash không thể được sử dụng làm RAM vì việc ghi vào bộ nhớ flash mất nhiều thời gian hơn nó được đọc.
một loại EEPROM trong bộ nhớ flash Lập trình EEPROM yêu cầu một thiết bị lập trình đặc biệt và mức điện áp cao hơn mức yêu cầu của mạch trong đó ROM được sử dụng
. Khoảng 1000 lần lập trình là có thể. Các ký ức flash không thể được sử dụng làm RAM vì việc ghi vào bộ nhớ flash mất nhiều thời gian hơn nó được đọc.
SRAM
RAM tĩnh (SRAM) cũng là một loại bộ nhớ không liên tục như RAM động (DRAM). SRAM không bị mất miễn là nó có nguồn điện áp thông tin mà nó có. Ngay cả với một pin nhỏ, nó có thể giữ lại thông tin của nó trong nhiều năm DRAM, như SRAM, đòi hỏi một nguồn điện áp không đổi và một đồng hồ liên tục để lưu trữ thông tin bên cạnh nó.Mọi MCUs có một SRAM nội bộ. một số cho phép SRAM được thêm vào bên ngoài
RAM tĩnh (SRAM) cũng là một loại bộ nhớ không liên tục như RAM động (DRAM). SRAM không bị mất miễn là nó có nguồn điện áp thông tin mà nó có. Ngay cả với một pin nhỏ, nó có thể giữ lại thông tin của nó trong nhiều năm DRAM, như SRAM, đòi hỏi một nguồn điện áp không đổi và một đồng hồ liên tục để lưu trữ thông tin bên cạnh nó.Mọi MCUs có một SRAM nội bộ. một số cho phép SRAM được thêm vào bên ngoài
Các tính năng cơ bản của vi điều khiển
MCU có thể có nhiều tính năng khác nhau. Một số tính năng tiêu chuẩn sẽ được thảo luận ở đây.
Uart (Asia)
Giao tiếp truyền thông nối tiếp không đồng bộ (Bộ thu và phát không đồng bộ). ASIA sử dụng các giao thức truyền thông chuẩn để cho phép bộ vi xử lý giao tiếp với thế giới bên ngoài. Tính năng này được sử dụng trong các tình huống mà MCU cần giao tiếp với thiết bị bên ngoài, có thể thiết lập giao tiếp bằng màn hình LCD hoặc với một máy tính khác thông qua ASIA. Bằng cách này, một ASI có thể được thêm vào một chip không có giao diện thông qua SPI, hoặc phần mềm có thể thực hiện các nhiệm vụ ASI có thể được sử dụng.
Giao tiếp truyền thông nối tiếp không đồng bộ (Bộ thu và phát không đồng bộ). ASIA sử dụng các giao thức truyền thông chuẩn để cho phép bộ vi xử lý giao tiếp với thế giới bên ngoài. Tính năng này được sử dụng trong các tình huống mà MCU cần giao tiếp với thiết bị bên ngoài, có thể thiết lập giao tiếp bằng màn hình LCD hoặc với một máy tính khác thông qua ASIA. Bằng cách này, một ASI có thể được thêm vào một chip không có giao diện thông qua SPI, hoặc phần mềm có thể thực hiện các nhiệm vụ ASI có thể được sử dụng.
Spi
Giao tiếp với các hệ thống bên ngoài Trường hợp ASIA được sử dụng, Giao tiếp ngoại vi nối tiếp (SPI) được sử dụng để giao tiếp với các chip khác.
Giao tiếp với các hệ thống bên ngoài Trường hợp ASIA được sử dụng, Giao tiếp ngoại vi nối tiếp (SPI) được sử dụng để giao tiếp với các chip khác.
Có nhiều loại chip với cổng SPI: ASIA, bộ chuyển đổi A / D và thậm chí là chip bộ nhớ là một số trong số đó. Mặc dù nó không nhanh như giao tiếp song song, việc sử dụng giao tiếp SPI rất dễ dàng. Thay vì sử dụng tất cả các dòng địa chỉ và dữ liệu, 3 hoặc 4 dòng có thể được truyền đạt.
I2C (Inter Integrated Circuit)
Thực hiện chức năng tương tự như SPI chỉ sử dụng hai dòng. Giao thức I2C cho phép nhiều thiết bị giao tiếp cùng một lúc.Trong SPI, chỉ có hai thiết bị có thể giao tiếp cùng một lúc.
Thực hiện chức năng tương tự như SPI chỉ sử dụng hai dòng. Giao thức I2C cho phép nhiều thiết bị giao tiếp cùng một lúc.Trong SPI, chỉ có hai thiết bị có thể giao tiếp cùng một lúc.
CAN (Mạng vùng điều khiển)
CÓ THỂ là một dự án truyền thông mạng nối tiếp được thiết kế để sử dụng trong ô tô.Một lĩnh vực cụ thể thực hiện nhiệm vụ tương tự như SPI và I2C.
CÓ THỂ là một dự án truyền thông mạng nối tiếp được thiết kế để sử dụng trong ô tô.Một lĩnh vực cụ thể thực hiện nhiệm vụ tương tự như SPI và I2C.
I / O bến (I / O Ports)
Digital Input / Output là một özelliktir.b rất quan trọng đối với tất cả các bộ điều khiển để các nhà sản xuất kỹ thuật số số cổng I / O là çalışmaktadırlar.h tăng càng nhiều càng tốt một G / một chân phải trên chip cho O dòng. Ví dụ, một chip 8 chân chỉ có thể có một vài dòng I / O. Trong một con chip 40 chân thường là bốn 8-bit I / O dòng có (tổng cộng 32-bit I / O).
Digital Input / Output là một özelliktir.b rất quan trọng đối với tất cả các bộ điều khiển để các nhà sản xuất kỹ thuật số số cổng I / O là çalışmaktadırlar.h tăng càng nhiều càng tốt một G / một chân phải trên chip cho O dòng. Ví dụ, một chip 8 chân chỉ có thể có một vài dòng I / O. Trong một con chip 40 chân thường là bốn 8-bit I / O dòng có (tổng cộng 32-bit I / O).
Các dòng I / O thường có thể lập trình được. Trong các hoạt động I / O có thể lập trình, việc chia tỷ lệ được xác định bởi phần mềm được sử dụng làm đầu vào hoặc đầu ra. Đối với điều này nó là cần thiết cho mỗi đăng ký kiểm soát giàn giáo được điều chỉnh thích hợp.
Dấu hiệu đầu vào tương tự trong thế giới thực thường bao gồm các dấu hiệu liên tục mà máy tính không thể hiểu được. Vì lý do này, các bộ chuyển đổi số tương tự (MAS) hoặc các bộ so sánh tương tự có sẵn trên MCU để giám sát các thay đổi tương tự trong thế giới vật lý.
Nếu MCU cung cấp là không đủ cho ứng dụng, nó có thể được gắn bên ngoài với MCU thông qua một cổng SPI ADIC.
Timer / Counter
Timer hoạt động với tín hiệu đồng hồ bên trong của MCU. Tín hiệu đồng hồ này cũng có thể được chia tỷ lệ và sử dụng với các tín hiệu xung nhịp khác nhau (/ 2, / 4, / 16, / 256 ...) Trong trường hợp tràn, có thể thực hiện các điều chỉnh khác nhau bằng cách sử dụng thanh ghi điều khiển để tạo ngắt. Bộ hẹn giờ có tầm quan trọng sống còn đối với các ứng dụng trong đó các tác vụ nhất định phải được thực hiện trong các khoảng thời gian nhất định.
Timer hoạt động với tín hiệu đồng hồ bên trong của MCU. Tín hiệu đồng hồ này cũng có thể được chia tỷ lệ và sử dụng với các tín hiệu xung nhịp khác nhau (/ 2, / 4, / 16, / 256 ...) Trong trường hợp tràn, có thể thực hiện các điều chỉnh khác nhau bằng cách sử dụng thanh ghi điều khiển để tạo ngắt. Bộ hẹn giờ có tầm quan trọng sống còn đối với các ứng dụng trong đó các tác vụ nhất định phải được thực hiện trong các khoảng thời gian nhất định.
Các bộ đếm cũng hoạt động theo cách tương tự như bộ hẹn giờ, ngoại trừ việc bộ đếm được đếm bằng tín hiệu đến từ bên ngoài thay vì tín hiệu đồng hồ. Các nội dung truy cập có thể được đọc bằng phần mềm để xác định có bao nhiêu xung nhận được.Mỗi MCU nhất có một hoặc nhiều bộ đếm thời gian / bộ đếm.
Ngắt gián đoạn
là một tín hiệu khiến MCU ngừng hoạt động và thực thi mã chương trình đặc biệt. Máy cắt có thể đến từ bên ngoài cũng như cắt từ bên trong. Địa chỉ đầu tiên của phần chương trình của dịch vụ ngắt được lưu trong bộ nhớ tại một địa điểm nhất định.
là một tín hiệu khiến MCU ngừng hoạt động và thực thi mã chương trình đặc biệt. Máy cắt có thể đến từ bên ngoài cũng như cắt từ bên trong. Địa chỉ đầu tiên của phần chương trình của dịch vụ ngắt được lưu trong bộ nhớ tại một địa điểm nhất định.
Tiện ích cắt thường được sử dụng để thực hiện một nhiệm vụ nhỏ. nói chung là ngăn ngừa sự cắt tự bất hoạt được cắt giảm liên tục khi sự trở lại trước khi đi làm gián đoạn địa chỉ khi cắt thường cắt phần cứng chồng saklanır.eg Nếu thanh ghi được sử dụng trong tiện ích đi với họ trong chương trình tiện ích các saklanmalıdır.kes stack. Khi kết thúc quá trình cắt, chương trình sẽ sẵn sàng hoạt động từ điểm cắt được nhận. Nếu cắt các thanh ghi chồng ném ngay trong một hàng được khử hoạt tính để đổi lấy thu hồi mà không gereklidir.kes cũng hoạt động trở lại.
Nếu máy cắt không được sử dụng, MCU sẽ bận làm một số công việc hữu ích, nhưng nó sẽ bận với việc phát hiện một số sự cố. Đồng thời, nó cũng có thể là misshots bị bỏ lỡ trong một thời gian rất ngắn vì nó được thực hiện với phần mềm bỏ phiếu.
Watchdog Timer
Microcontrollers là các thiết bị thực tế. Nếu có một vấn đề trong MCU vì bất kỳ lý do gì, MCU có thể tự khắc phục nó.
Microcontrollers là các thiết bị thực tế. Nếu có một vấn đề trong MCU vì bất kỳ lý do gì, MCU có thể tự khắc phục nó.
Khi bộ đếm thời gian giám sát hoạt động, nó được giữ trong kiểm tra để đảm bảo rằng ứng dụng tiếp tục trôi chảy. Nếu chương trình không đạt đến một điểm nhất định trong thời gian được chỉ định bởi phần mềm, nó được xác định rằng có một vấn đề và ngắt được tạo ra bởi vì thời gian của bộ đếm thời gian watchdog bị vượt quá. Do đó, hệ thống có thể được liên lạc và vấn đề có thể được giải quyết.
Atmel AT90S2313 Vi điều khiển
AT90S2313 là một vi điều khiển công suất thấp với cơ sở kiến trúc máy tính được thiết lập giảm (RISC). Giống như nhiều vi điều khiển, AT90S2313 sử dụng kiến trúc Harvard. Trong kiến trúc này, bộ nhớ dữ liệu và bộ nhớ lệnh độc lập với nhau. Không giống như kiến trúc này, dữ liệu và các lệnh nằm trong cùng một bộ nhớ trong kiến trúc Von Neuman.
Mặc dù có sự khác biệt về cấu trúc này, cả hai kiến trúc đều có các vùng bộ nhớ đặc biệt được gọi là các thanh ghi. Thanh ghi cơ bản nằm trong bộ vi xử lý và là một khối xây dựng rất quan trọng của bộ vi xử lý. Thời gian truy cập của thanh ghi nhanh hơn nhiều so với những kỷ niệm. Vì lý do này, nhiều lệnh được sử dụng trong MCU được thực hiện bằng cách sử dụng các thanh ghi này. Vì các thanh ghi được sử dụng trong S2313 được bao gồm trong bản đồ bộ nhớ, chúng cũng có thể được sử dụng làm bộ nhớ dữ liệu.
Trong AT90S2313 một phần khác của bản đồ bộ nhớ được dành riêng cho điều khiển phần cứng. Các cổng này được gọi là các cổng điều khiển đầu vào / đầu ra (I / O) hoặc các thanh ghi I / O. Các thanh ghi khác nhau của phần cứng có thể được điều khiển bằng các thanh ghi này.
Bộ vi điều khiển (MCU) 32 có bộ lệnh phong phú với 32 thanh ghi đa năng. Tất cả 32 thanh ghi được kết nối trực tiếp với Đơn vị Logic số học (ALU). Vì lý do này, hai thanh ghi khác nhau có thể được truy cập bằng một lệnh và một xung nhịp đơn.
AT90S2313 Các tính năng chung
- Bộ nhớ chương trình 2048 * 16 bit (2K * 16)
- 128 byte EEPROM
- 128 Byte SRAM
- 20 dòng I / O có mục đích chung
- 32 lưu trữ công việc mục đích chung
- Hai giờ / quầy
- Cơ sở cắt bên trong và bên ngoài
- Watchdog timer
- Bộ so sánh tương tự
- ASIA lập trình (UART)
- Cổng nối tiếp SPI
- Chế độ tiết kiệm năng lượng (chế độ Chờ và chế độ Tắt nguồn)
Chân nhận dạng
VCC: Chân được áp dụng với nguồn điện áp
GND: Nối đất
VCC: Chân được áp dụng với nguồn điện áp
GND: Nối đất
Cổng B (PB7..PB0): Cổng B là chòm sao I / O hai chiều 7 bit. Đối với mỗi bit có một tính năng kéo lên bên trong (nội bộ) tùy chọn. Vì bộ đệm đầu ra của cổng B có thể cung cấp 20mA dòng điện, chúng có thể lái trực tiếp chỉ thị diode LED.
Cổng D (PD6..PC0): Cổng D là cổng I / O hai chiều 7 bit. Có sẵn tùy chọn kéo lên bên trong cho mỗi bit. Kể từ khi bộ đệm đầu ra Port D có thể cung cấp 20mA của hiện tại, họ có thể lái xe chỉ dẫn diode LED trực tiếp. Port D có một số tính năng khác ngoài các tính năng này. Các tính năng này sẽ được đề cập ở đây.
Reset: (Đặt lại) để logic 0 nếu áp dụng từ bên ngoài vào dòng được phát hiện resetlenir.reset MCU đã được áp dụng trong các giá trị logic 0 ít nhất là 50ns. 50ns' hơn tác động ngắn hạn không được đảm bảo để được phát hiện.
XTAL1, XTAL2: Các chân được sử dụng để kết nối bộ dao động tinh thể với MCU.
Kiến trúc Tổng quan
truy cập tốc độ cao có thể 32 * 8-bit đăng ký lắp ráp có thể olmaktadır.y MỚI với một chu kỳ đồng hồ truy cập duy nhất cho mỗi yếu tố của chỉ một chu kỳ đồng hồ của một hoạt động ALU được hoàn thành hoạt động trong một khoảng thời gian trong một quá trình trong đó các toán hạng của gerçeklenebilmektedir.i các thanh ghi và một trong những thanh ghi kết quả nó được viết.
truy cập tốc độ cao có thể 32 * 8-bit đăng ký lắp ráp có thể olmaktadır.y MỚI với một chu kỳ đồng hồ truy cập duy nhất cho mỗi yếu tố của chỉ một chu kỳ đồng hồ của một hoạt động ALU được hoàn thành hoạt động trong một khoảng thời gian trong một quá trình trong đó các toán hạng của gerçeklenebilmektedir.i các thanh ghi và một trong những thanh ghi kết quả nó được viết.
6 trong số 32 thanh ghi có thể được sử dụng làm con trỏ 16 bit. Các thanh ghi này được gọi là các thanh ghi X, Y và Z. ALU có thể thực hiện các phép toán số học và logic giữa các thanh ghi hoặc giữa một thanh ghi và một thanh ghi. 32 thanh ghi mục đích chung cũng có thể được sử dụng như các vùng nhớ bình thường. Bởi vì những người giữ này cũng được bao gồm trong bản đồ bộ nhớ dữ liệu. Truy cập vào các thanh ghi này có thể sử dụng các địa chỉ $ 00 đến $ 1F. Hình 1 cho thấy kiến trúc của vi điều khiển AT90S2313.
Cấu trúc bộ nhớ
Bộ nhớ dữ liệu (SRAM): AT90S2313 có 128 byte bộ nhớ dữ liệu. Địa chỉ đầu tiên của bộ nhớ dữ liệu này là $ 0060 và địa chỉ cuối cùng là $ 00DF. Thông thường, địa chỉ bắt đầu bộ nhớ phải là $ 0000. Tuy nhiên, 32 địa chỉ đầu tiên được dành riêng để truy cập vào các thanh ghi bên trong và 64 địa chỉ tiếp theo được dành riêng cho các thanh ghi liên quan đến I / O. Như có thể thấy, các thanh ghi này cũng được xem xét trong bản đồ bộ nhớ, nhưng các thanh ghi vật lý không nằm trong SRAM.
Thông tin được lưu trữ trong SRAM có thể được lưu trữ miễn là có áp dụng áp dụng áp dụng. Do đó, SRAM được sử dụng cho mục đích lưu trữ dữ liệu tạm thời.
AT90S2313 Bản đồ bộ nhớ

Bộ nhớ chương trình (Flash) bộ nhớ chương trình với cả hai loại bộ nhớ sử dụng và sẽ được sử dụng như một loạt chuyên dụng các địa chỉ khác nhau về bộ nhớ gösterir.progra bộ nhớ SRAM, việc cung cấp điện áp bị gián đoạn giữ lại dữ liệu chứa trong các chương trình mới thậm chí edebilmelidir.y lưu trữ dữ liệu trong bộ nhớ Điểm khác là bộ nhớ chương trình không thể truy cập được trong khi bộ nhớ dữ liệu đang được truy cập. Không thể truy cập vào bộ nhớ dữ liệu khi bộ nhớ chương trình được truy cập theo cùng một cách. Tại AT90S2313 kích thước của bộ nhớ chương trình là 2048 * 16 bit. Địa chỉ bộ nhớ là từ $ 000 đến $ 3FF.
Stack: chồng, thường là PUSH, POP, CALL, RET được sử dụng bởi các lệnh tùy chỉnh như, đặc biệt là nơi mà một bộ nhớ dữ liệu của dữ liệu được định nghĩa trong bộ nhớ dữ liệu theo quy định của yapısıdır.yıg lập trình viên sẽ được bố trí. Kể từ khi ngăn xếp phát triển từ địa chỉ thấp hơn đến địa chỉ thấp hơn, nó là thích hợp hơn rằng địa chỉ đầu tiên là một địa chỉ lớn trong quá trình nhận dạng.
Ngăn xếp một dữ liệu ném khi con trỏ ngăn xếp để các dữ liệu tiếp theo, có thể được kéo dữ liệu từ sağlanır.yıg cho thấy các tế bào bộ nhớ có thể được viết như con trỏ ngăn xếp được tăng lên bởi một và hiển thị con trỏ đến một giảm sút đặt vào một trong những thanh ghi.
Ngăn xếp đã thực hiện một nhiệm vụ rất quan trọng trong các cuộc gọi chương trình con và xử lý các ngắt. Khi một cuộc gọi chương trình con được thực hiện hoặc một ngắt được nhận, chương trình được ném vào bộ đếm. Sau khi mã được gọi được xử lý, địa chỉ trả về trước đó được đẩy vào ngăn xếp bằng lệnh RET hoặc RETI được lấy từ ngăn xếp và tiếp tục từ thời gian luồng chương trình bị gián đoạn.
Kích thước ngăn xếp có thể thay đổi hoặc không đổi. Tuy nhiên, cấu trúc ngăn xếp có chiều dài biến là thuận lợi hơn vì số lượng các chương trình con có thể được lồng trong trường hợp của một ngăn xếp không đổi bị giới hạn.
đăng ký
Mục đích chung Thanh ghi: AT90S2313 32 thanh ghi mục đích chung (R0, R1, R2, ... R31) nằm đội. Đây là một cấu trúc rất hữu ích vì nhiều lệnh trong số này sử dụng các thanh ghi này. Tất cả các thanh ghi là 8 bit và mỗi thanh ghi có một adrese riêng biệt vì chúng nằm trong bản đồ bộ nhớ dữ liệu. 32 địa chỉ đầu tiên trong bản đồ bộ nhớ được cấp phát cho bộ lưu trữ.
Các cache mục đích chung được chia thành hai lớp là R0-R15 và R16-R31. Sổ đăng ký và dữ liệu ngay lập tức để được xử lý bằng lệnh trong (SBC là, SUB, CPU, Andi, ORI, L) chỉ R16 ... ba phải được giải quyết bằng R31 ghi kullanılabilmektedir.belleg cấu trúc chân thanh ghi 16-bit cụ thể (X, Y, Z) được sử dụng. Mỗi thanh ghi này có được bằng cách sử dụng hai thanh ghi 8 bit.
Nhà lưu trữ đa năng

Status Register: Một thanh ghi chứa thông tin về kết quả của một số lệnh. Ngoài ra, có một vài tính năng hơn như có thể thấy trong bảng 2.1. Ví dụ, bit kích hoạt ngắt toàn cầu, cho phép MCU loại bỏ hoàn toàn sự gián đoạn, được chứa trong thanh ghi này. Mỗi 8 bit trong SREG có một ý nghĩa đặc biệt. Địa chỉ bộ nhớ I / O của SREG có thể được giải quyết với địa chỉ $ 003F.
Bảng 2.1

Cửa hàng đầu vào / đầu ra: Còn được gọi là cổng I / O. Một bản sao của các thanh ghi đặc biệt như SREG và toán tử ngăn xếp được giữ trong thanh ghi I / O để được truy cập bằng các lệnh đặc biệt. Các thanh ghi I / O có thể được truy cập bằng các lệnh đặc biệt như IN và OUT.
Ngoài ra, địa chỉ bộ nhớ của các thanh ghi này cũng có thể được truy cập bằng cách giải quyết chúng bằng các lệnh chung. Khi sử dụng lệnh IN và OUT, địa chỉ đăng ký I / O nằm trong khoảng từ $ 00 đến $ 3F. Đối với địa chỉ bộ nhớ, thanh ghi I / O là từ $ 20 đến $ 5F.
Loại địa chỉ
Loại địa chỉ
Ngay lập tức Addressing: Trong loại địa chỉ, các dữ liệu khẩn cấp được đặt trong lệnh, và vì nó là một phần của lệnh, địa chỉ không được tính.
Người nhận trực tiếp địa chỉ, duy nhất lưu trữ dữ liệu được lưu trữ trong một trong những mục đích chung đăng ký. Mã của thanh ghi Rd được đặt trực tiếp vào từ lệnh. Rd có thể là đích hoặc nguồn đăng ký (hình 2.4)
LDI RD, K ; Hằng số K được kẹp vào cửa hàng Rd.
PUSH RD ;
Bật nội dung của cửa hàng RD POP RD ; Đặt dữ liệu ở trên cùng của ngăn xếp trong cửa hàng Rd.
PUSH RD ;
Bật nội dung của cửa hàng RD POP RD ; Đặt dữ liệu ở trên cùng của ngăn xếp trong cửa hàng Rd.
Hình 2.4: Địa chỉ trực tiếp của người nhận, đăng ký một lần

Đăng ký trực tiếp, hai đăng ký (Rd và rr): chế độ địa chỉ này được sử dụng khi nó là cần thiết để hoạt động trên hai thanh ghi. Mỗi mã đăng ký được tích hợp vào từ lệnh. Quá trình này được đặt trong hồ chứa thứ ba (hình 2.5)
MOV Rd, Rr; Rd Rr
SUB Rd, Rr; Rd (Rr )
SUB Rd, Rr; Rd (Rr )
Hình 2.5: Địa chỉ trực tiếp của người nhận, hai thanh ghi

I / O Direct Addressing: Lệnh sử dụng thanh ghi I / O sử dụng chế độ địa chỉ này. Nếu lệnh cũng được đặt trong một mã số đăng ký mục đích chung của từ hướng dẫn vào sổ đăng ký sử dụng. (Hình 2.6)
IN Rd, P ; Đặt dữ liệu vào cổng P trong cửa hàng Rd.
SBI P, b ; Bộ điều khiển PG / O b. bitwise
SBI P, b ; Bộ điều khiển PG / O b. bitwise
Hình 2.6: Nhập địa chỉ trực tiếp vào / ra

Direct Addressing bộ nhớ dữ liệu: dữ liệu trong chế độ địa chỉ này, các MCU alınır.16 bộ nhớ SRAM bit địa chỉ, ngay lập tức theo sau là từ hướng dẫn 16-bit. Các lệnh sử dụng chế độ địa chỉ này chiếm 2 từ trong bộ nhớ chương trình (2 * 16 bit) (Hình 2.7)
Hình 2.7: Giải quyết trực tiếp bộ nhớ dữ liệu

LD Rd, K ; Đặt dữ liệu tại vị trí bộ nhớ trong cửa hàng Rd.
Bộ nhớ dữ liệu Gián tiếp địa chỉ : Địa chỉ của bộ nhớ dữ liệu được lưu giữ trong một trong các thanh ghi đặc biệt 16 bit (Hình 2.8).
LD Rd, X ; Viết tập dữ liệu X được đánh dấu bằng dấu X thành Rd.
ST Z, Rr ; Viết nội dung của rr adrese được trỏ tới bởi con trỏ Z.
ST Z, Rr ; Viết nội dung của rr adrese được trỏ tới bởi con trỏ Z.
Hình 2.8: Giải quyết bộ nhớ dữ liệu gián tiếp

Bộ nhớ dữ liệu gián tiếp, lan truyền: Chế độ địa chỉ này tương tự như địa chỉ gián tiếp của bộ nhớ dữ liệu. Địa chỉ được lưu giữ trong một trong các thanh ghi Y hoặc Z. Giá trị off-set cố định được sử dụng cho bản dịch địa chỉ này. Chế độ địa chỉ này cũng rất hữu ích cho các ngôn ngữ cấp cao. Trong các ứng dụng mà con trỏ chỉ ra địa chỉ cơ sở của một bảng hoặc một cấu trúc bản ghi, giá trị mong muốn có thể dễ dàng được truy cập với giá trị tickle và bảng hoặc bản ghi (Hình 2.9).
STD Z + q, R r; (Z + q) Rr (nội dung của cửa hàng Z không thay đổi).
Hình 2.9: Định địa chỉ bộ nhớ dữ liệu, thay đổi

Bộ nhớ dữ liệu gián tiếp, Pre-Reduced: Làm việc theo cách tương tự như chế độ địa chỉ trước đó Sự khác biệt là nội dung của thanh ghi được giảm ngay trước khi xử lý. Thông tin địa chỉ đã thay đổi được lưu trữ trong cùng một thanh ghi và địa chỉ được thực hiện với nội dung mới của thanh ghi (Hình 2.10).
LD Rd, -X ; Giảm X thành một và ghi dữ liệu trong bộ nhớ được chỉ ra bởi X thành Rd. (Đường (X-1)
Hình 2.10: Bộ đệm dữ liệu gián tiếp, địa chỉ gia tăng trước

Tăng tốc gián tiếp bộ đệm dữ liệu: Trong chế độ địa chỉ này, sau khi lệnh được xử lý, nội dung của thanh ghi được tăng lên và giá trị mới được giữ trong cùng thanh ghi (Hình 2.11).
ST X +, Rr ; Hãy để Rr theo bộ nhớ được chỉ ra bởi X, sau đó tăng X một chút.
Hình 2.11: Bộ nhớ dữ liệu gián tiếp, địa chỉ gia tăng

Giải quyết các giá trị không đổi được xác định: Chế độ địa chỉ này cũng có thể được gọi là chế độ địa chỉ gián tiếp bộ nhớ chương trình. Kiểu địa chỉ này chỉ được sử dụng bởi lệnh LPM. Địa chỉ của bộ nhớ chương trình (Flash) được lưu trữ trong bộ nhớ Z 16 ký tự đặc biệt. Vì bộ nhớ chương trình có một dòng 16 bit, bit ít quan trọng nhất của thanh ghi Z chỉ ra tám bộ nhớ nào cần được giải quyết. Nếu bit có ý nghĩa thấp nhất của cửa hàng Z là logic 0, nó được giải quyết với một octet và logic 1 có ý nghĩa thấp với một octet bậc cao (Hình 2.12).
Bất cứ khi nào lệnh LPM được sử dụng, dữ liệu đọc luôn được đặt trong thanh ghi R0.
Hình 2.12: Định địa chỉ các hằng số được định nghĩa trong bộ nhớ chương trình

Chương trình gián tiếp Addressing: Chế độ địa chỉ được sử dụng bởi các lệnh IJMP và ICALL. Dòng chảy của chương trình tiếp tục từ địa chỉ được chỉ ra bởi cửa hàng Z (Hình 2.13).
IJMP ; Tiếp tục luồng chương trình từ nơi Z trỏ đến (PC = Z)
Hình 2.13: Địa chỉ gián tiếp của bộ nhớ chương trình

Địa chỉ chương trình tương đối: Thực thi với lệnh RJMP và RCALL. Luồng chương trình được chuyển lên đến số lượng lỗi chính tả được chỉ định trong lệnh (-2048 đến +2047). Hướng dẫn phân nhánh cũng sử dụng chế độ địa chỉ này (Hình 2.14).
RJMP K ; Di chuyển luồng của chương trình bằng lệnh k.
BRMI K ; Nếu cờ phủ định là một, các lệnh K thay đổi luồng chương trình
BRMI K ; Nếu cờ phủ định là một, các lệnh K thay đổi luồng chương trình
Hình 2.14: Địa chỉ tương đối của bộ nhớ chương trình

Đặt lại và cắt
AT90S2313 có 11 nguồn cắt khác nhau. Một vector cắt riêng biệt cho mỗi lần cắt được lưu trữ trong bộ nhớ chương trình (Bảng 2.2) Đồng thời, có một bit cắt riêng biệt cho mỗi lần cắt. Để cho phép một máy cắt được chấp nhận, cả bit cho phép cắt và bit cấp phép cắt bỏ toàn cục của việc cắt có liên quan phải là các giá trị logic 1.
AT90S2313 có 11 nguồn cắt khác nhau. Một vector cắt riêng biệt cho mỗi lần cắt được lưu trữ trong bộ nhớ chương trình (Bảng 2.2) Đồng thời, có một bit cắt riêng biệt cho mỗi lần cắt. Để cho phép một máy cắt được chấp nhận, cả bit cho phép cắt và bit cấp phép cắt bỏ toàn cục của việc cắt có liên quan phải là các giá trị logic 1.
Bảng 2.2: Đặt lại và cắt vectơ

11 địa chỉ đầu tiên của bộ nhớ chương trình được tự động chia thành các vectơ đặt lại và ngắt. Danh sách đầy đủ các vectơ này được đưa ra trong bảng dưới đây: Các vectơ cắt ngắn trong danh sách dưới có ưu tiên cao hơn.
Đặt lại tài nguyên
- Bật lại nguồn
- Đặt lại bên ngoài (bên ngoài)
- Watchdog reset (thiết lập lại giám sát)
Khi MCU được đặt lại, tất cả các thanh ghi I / O được khởi tạo và chương trình bắt đầu chạy với giá $ 000. Vì vậy, $ 000 địa chỉ được yêu cầu trong sự hiện diện của mã chương trình RJMP (tương nhánh đến địa chỉ đầu tiên của chương trình ngắt dịch vụ reset) .Nếu chương trình bất cứ lúc nào không cho phép làm gián đoạn mà vectơ ngắt không được sử dụng để các khu vực này có thể được đặt trên một mã chương trình bình thường. Sơ đồ mạch cho logic đặt lại được đưa ra dưới đây.
Logic reset AT90S2313

Power-on Reset (POR): Xung được tạo ra bởi một mạch cảm biến trên chip. Mức ý nghĩa là 2.2 volts, trong mọi trường hợp điện áp Vcc nằm dưới mức phát hiện, POR đang hoạt động. Mạch POR có thể được sử dụng để kích hoạt thiết lập lại ban đầu hoặc để phát hiện suy giảm điện áp nguồn. Trong thực tế, POR được
sử dụng để ngăn chặn thiệt hại cho MCU nếu nó dưới mức an toàn của VCC, xem hình 2.16 bên dưới để có cái nhìn rõ ràng hơn.
sử dụng để ngăn chặn thiệt hại cho MCU nếu nó dưới mức an toàn của VCC, xem hình 2.16 bên dưới để có cái nhìn rõ ràng hơn.
Hình 2.16: Đầu MCU, thiết lập lại kết nối với VCC

Khi Vcc đạt đến ngưỡng điện áp, bộ đếm thời gian trễ được thiết lập lại bởi mạch POR và thời gian trễ được bắt đầu. MCU được đặt lại bằng cách tạo tín hiệu đặt lại nội bộ trong thời gian trễ. MCU cũng có thể được khởi tạo bằng điều khiển đặt lại bên ngoài. Quá trình này được đưa ra trong hình 2.17 dưới đây.
Hình 2.17: Đầu MCU, được điều khiển từ thiết lập lại bên ngoài

Thiết lập lại bên ngoài: MCU có thể được thiết lập lại với một dấu hiệu logic 0 trên chân External (Reset). Hoạt động đặt lại bên ngoài được thể hiện trong hình 2.18.
Hình 2.18: Quy trình đặt lại bên ngoài

Cơ quan giám sát Đặt lại: Nếu bộ hẹn giờ giám sát hoạt động, xung sẽ được tạo trong chu kỳ xem. Với cạnh giảm của xung này, bộ đếm thời gian trễ bắt đầu đếm khoảng thời gian chờ. MCU được đặt lại bằng cách tạo tín hiệu đặt lại nội bộ cho đến khi thời gian này trôi qua. Hình 2.19 dưới đây cho thấy các bước của quá trình phát hiện đặt lại cơ quan giám sát.
Hình 2.19: Quá trình đặt lại cơ quan giám sát

Quản lý ngắt: AT90S2313 có hai thanh ghi gián đoạn 8-bit gián đoạn, đây là thanh ghi gián đoạn chung của mặt nạ ngắt (GIMSK) và thanh ghi gián đoạn bộ đếm thời gian gián đoạn / bộ đếm thời gian gián đoạn (CIMM).
Khi một ngắt được nhận, bit kích hoạt ngắt toàn cầu (I) trong thanh ghi Trạng thái được đặt lại và tất cả các quyền ngắt được loại bỏ. Khi chương trình dịch vụ ngắt được đặt đúng chỗ, lập trình viên có thể thiết lập bit này thành 1 để cung cấp các yêu cầu ngắt.
Công cụ phát triển dự án và bộ lệnh
Bộ hướng dẫn và công cụ phát triển cho vi điều khiển có thể được lấy từ nhà sản xuất cập nhật nhất. Cách thức các lệnh và vi điều khiển làm việc có thể được học tốt hơn nhiều thông qua thực hành công việc.
Các công cụ phát triển chương trình như trình biên dịch và trình soạn thảo, các chương trình trình gỡ rối, thông tin vi điều khiển và các cụm lệnh có thể được lấy từ nhà sản xuất. Vì nó nằm ngoài ranh giới làm việc ở đây, nên không có các tính năng chi tiết hơn của kiểm soát đã được đưa ra.
Các công cụ phát triển chương trình như trình biên dịch và trình soạn thảo, các chương trình trình gỡ rối, thông tin vi điều khiển và các cụm lệnh có thể được lấy từ nhà sản xuất. Vì nó nằm ngoài ranh giới làm việc ở đây, nên không có các tính năng chi tiết hơn của kiểm soát đã được đưa ra.
Ứng dụng khóa cửa được mã hóa
Trong ứng dụng này, người dùng có thể giao tiếp với vi điều khiển thông qua bàn phím, người dùng có thể thông báo cho người điều khiển thông qua giao diện cho dù muốn thay đổi mật khẩu hay thay đổi mật khẩu. Bộ điều khiển có thể giải quyết ý nghĩa của các mã được đọc từ bàn phím và thực hiện các thao tác cần thiết theo yêu cầu của người dùng. Trong phần này của hội thảo, thông tin đã được đưa ra về các giai đoạn phần cứng và phần mềm thực hiện. Tất cả các phần mềm được bao gồm trong phụ lục cùng với các giải thích cần thiết và sơ đồ dòng chảy.
Danh sách vật liệu
- 1 Tụ điện 0,1 microF - Dung tích lọc
- 2 Tụ điện 18pf - Tụ điện dao động
- 1 Tinh thể, 4 Mhz - Tinh thể dao động
- 1 AT90S2313 - Atmel MCU
- 6 đèn LED
- 4 Điện trở, 4K - Điện trở hàng bàn phím
- 1 Điện trở, 1K - Đặt lại điện trở kéo lên
- 6 Điện trở, 330 Ohm - Điện trở hạn chế LED hiện tại
- 1 công tắc, SPST tức thì - Phím khôi phục
- 1 12 V, 1A Relay - Liên hệ duy nhất
- 1 Diode - Relay cho dòng ngược
- 1 74LS40 (Cổng NAND) Để cắt
- Bàn phím 1 4 × 3 - Giao diện người dùng
Giao diện người dùng (Bàn phím)
Bàn phím thường bao gồm các phím được đặt dưới dạng ma trận. Bàn phím được sử dụng để ứng dụng khóa cửa bị khóa là ma trận 4 x 3.
Hình 3.2 cho thấy cấu trúc phần cứng giữa 4 × 3 bàn phím tiêu chuẩn và vi điều khiển. Như bạn có thể thấy, 4 dòng ma trận bàn phím được kết nối trực tiếp với vi điều khiển. Nó không được kết nối với các dòng, và cổng (NAND) được kết nối để tạo ra một vết cắt khi nhấn phím bất kỳ.
Hình 3.1: Bàn phím tiêu chuẩn 4 × 3

Các cánh cửa giàn giáo mà các hàng được kết nối được gắn với tư cách người nhận để có thể đọc các hàng của bàn phím. Nếu không có phím nào được bấm, giá trị logic 1 được đọc từ các cửa mà 4 đường này được kết nối. Bởi vì mỗi dòng được kết nối với cổng thông qua một điện trở. Tuy nhiên, nếu bất kỳ phím nào được nhấn, dòng mà khóa này được kết nối sẽ trở thành giá trị logic 0, vì vậy nếu cửa được đọc, 1111 không được đọc.
Hình 3.2: Kết nối bàn phím với vi điều khiển

Sẽ thuận tiện hơn khi chọn các giá trị của các điện trở được kết nối với các hàng của bàn phím. Bởi vì một mạch ngắn xảy ra khi một phím được nhấn, các giá trị điện trở phải lớn để dòng điện được rút ra và do đó mức tiêu thụ điện năng thấp. Ngoài ra, nếu các giá trị điện trở được chọn nhỏ (<1000 c="" font="" kh="" m="" n="" nbsp="" nh="" ohm="" r="" s="" t.="" t="" v="">Vì điện áp mức đầu vào phải dưới một mức nhất định để đầu vào của cửa có thể được coi là logic 0. 3 trụ cột của bàn phím được điều khiển bởi 3 cửa một lần nữa. Nếu bạn nghĩ rằng các cột này được giữ trong trạng thái logic 0, nếu bạn nhấn bất kỳ phím nào, điện áp của hàng về cột và hàng sẽ giảm xuống mức logic 0. Vì các dòng không phải là tất cả - và cổng và vi điều khiển được kết nối với đầu vào ngắt, nhấn phím sẽ tạo ra ngắt. Trong chương trình cắt dịch vụ, nhấn phím nào được xác định. Để các thiết bị trên được bộ điều khiển phát hiện, bộ điều khiển phải được điều chỉnh đúng cách. Các điều kiện sau đây phải được đáp ứng cho điều này.1000>
.EQU SATIR_1 = 0; Bằng cách gán phương trình với biểu thức biểu thức EQU, chương trình .EQU SATIR_2 = 1; một cấu trúc dễ hiểu hơn có thể được mang đến. .EQU SATIR_3 = 2 .EQU SATIR_4 = 3 .EQU SUTUN_1 = 4 .EQU SUTUN_2 = 5 .EQU SUTUN_3 = 6 cbi DDRB, SATIR_1; nơi cổng để đọc các hàng như người nhận cbi DDRB, SATIR_2; Đó là điều hòa. cbi DDRB, SATIR_3; cbi (bit rõ ràng) cbi DDRB, SATIR_4; Giám đốc cho bến tàu DDRB B cbi PORTD, ROW_1; Những điều kiện này có liên quan đến các dòng được đọc cbi PORTD, ROW_1; cho phép các cánh cửa sử dụng kéo nội bộ. cbi PORTD, SATIR_1 cbi PORTD, SATIR_1 sbi DDRB, SUTUN_1, nơi bàn phím phụ thuộc vào các điều kiện Sbi DDRB, SUTUN_2, điều kiện của cánh cửa làm bộ phát sbi DDRB, SUTUN_3; ldi temp, 3, cho phép cắt và cắt cạnh ra MCUCR, tạm thời, các điều kiện cần thiết để được kích hoạt. ldi temp, 64; MCUCR (thanh ghi điều khiển MCU) ra GIMSK, temp, GIMSK (Cửa hàng mặt nạ gián đoạn chung) Cấp quyền cắt bỏ toàn cầu
Trong những điều kiện này, ban đầu tất cả các dòng cột được giữ ở mức logic 0. Trong trường hợp này, nếu một phím được nhấn, phần cắt được phân nhánh cho chương trình dịch vụ vì đầu ra của cổng NAND sẽ là 0 đến 1 và cạnh cắt sẽ được phát hiện. Trong chương trình dịch vụ ngắt, các dòng cột được điều khiển theo cách mà chỉ một trong số chúng hoạt động (lôgic 0). Trong mỗi trường hợp, các dòng được đọc và các dòng trong mức 0 được cố gắng để được tìm thấy. Khi tìm thấy hàng ở mức 0, phím được nhấn được chỉ định và giá trị khóa được ghi vào thanh ghi.
Trong chương trình con đọc khóa, các cột được đẩy đầu tiên trong một thời gian nhất định và các hàng được đọc. Ngay lập tức sau khi lái xe của các cột, một chương trình chậm trễ được chạy. Nếu chương trình chậm trễ này không chạy, nó sẽ không thể truy xuất thông tin chính xác nếu các dòng được đọc. Bởi vì chỉ vài giờ sau khi một cơn đột quỵ dòng 1 mức độ sẽ giảm xuống 0, mặc dù trong trường hợp này, không thể được cảm nhận của chương trình. Bởi vì quá trình chuyển đổi từ logic 0 sang logic 1 hoặc ngược lại xảy ra với một độ trễ nhất định.
Chương trình trì hoãn đảm bảo rằng quá trình chuyển đổi này có thể được nhận biết chính xác nếu có sự chuyển đổi. Ở đây câu hỏi có thể xuất hiện trong đầu, "có khả năng là chìa khóa có thể không được phát hiện do chương trình trì hoãn khi nhấn một phím?" Không chắc rằng khóa sẽ được phát hiện vì chương trình trì hoãn chỉ cung cấp sự chậm trễ vài ms. Thời gian tối thiểu 200ms là cần thiết để một người bấm phím và kéo tay.
Phần mềm được sử dụng cho ứng dụng
Trong phần mềm của ứng dụng khóa cửa bị khóa, chương trình chờ trong vòng lặp vô hạn sau khi xác định các điều kiện đầu tiên. được một phím được nhấn dallanıl đến một chương trình phục vụ ngắt được cắt và sau đó chìa khóa ép để chỉ ra các thủ tục sau đây cần được thực hiện xong, cắt trở lại và tất cả các hoạt động như chờ đợi trong vòng lặp vô tận edilmektedir.görül được thực hiện trong chương trình phục vụ ngắt.
Phần mềm này thực sự hoạt động giống như một máy trạng thái hữu hạn. Sau khi nhấn phím được đặt, nếu phím là '*', trạng thái thay đổi mật khẩu được nhập và các đèn LED liên quan được bật và người dùng được thông báo. Khi mật khẩu được thay đổi, đèn LED trạng thái thay đổi mật khẩu sẽ sáng và đèn LED trạng thái, cho biết rằng mật khẩu cũ được nhập vào, được thắp sáng. Sau khi nhập mật khẩu cũ, người dùng nhấn phím '#' để thông báo cho họ rằng mục nhập đã hoàn tất. ký tự được nhập được lưu giữ trong một bảng mật khẩu và các ký tự '#' chìa khóa trong bảng này bằng cách đọc các ký tự trong mật khẩu được so sánh với EEPROM.
EEPROM da 25 adet 5 uzunluklu şifre bulunmaktadır. Yani yapı çok kullanıcılı olarak tasarlanmıştır. Bu nedenle şifre tablosundaki veri ile 25 farklı şifre bloğu karşılaştırılır. Eğer girilen şifre ile EEPROM şifreleri arasında uyuşma söz konusu değilse yine ilk koşullara dönülmektedir. Ayrıca kullanıcının hatalı, eksik ya da fazla veri girişi yaptığı durumlarda da ilk koşullara dönülmektedir. Eski şifrenin doğru olarak okunması halinde ise yeni şifrenin okunması durumuna geçilmektedir ve bu durum bir led ile kullanıcıya iletilmektedir.
Mật khẩu mới gồm 5 ký tự cũng được lưu trên bàn. Nếu không có lỗi trong mục nhập dữ liệu, mật khẩu mới sẽ được nhập để được xác nhận lại. Điều này cũng sẽ được chỉ ra bởi một người lãnh đạo để thông báo cho người dùng. Bằng cách so sánh hai mật khẩu mới được người dùng nhập vào, chúng được kiểm tra xem chúng có giống nhau hay không, nếu mật khẩu mới được nhập giống nhau, mật khẩu trong EEPROM được thay đổi bằng mật khẩu này.
Nếu người dùng bắt đầu nhập mật khẩu trực tiếp, mật khẩu sẽ được đọc. Trong trường hợp này, các ký tự được người dùng nhập vào được giữ trong bảng mã và vẫn ở trạng thái này cho đến khi '#' được đọc. Nếu ký tự '#' đúng và định dạng mật khẩu đã nhập là chính xác, mã này được so sánh với 25 mã trong EEPROM. Nếu mật khẩu chính xác, đầu ra cổng cổng tương ứng được kéo đến mức logic 1 để mở cửa. Sau khi áp dụng logic 1 trong khoảng 1 giây, các điều kiện ban đầu được khôi phục.
Như đã thấy từ biểu đồ, ký tự đầu ra ('#') vẫn ở trạng thái cho đến khi nhận và nhập dữ liệu được kiểm tra sau ký tự đầu ra. Mục nhập dữ liệu không chính xác làm cho các điều kiện ban đầu được đảo ngược.Trong trường hợp đầu tiên, các giá trị ban đầu được nạp vào tất cả các thanh ghi và hệ thống thực sự được đặt lại. Do đó, tính liên tục của việc xây dựng được đảm bảo.
Trong phần mềm, giao cắt giữa các trạng thái được kiểm soát bởi cờ. Phần mềm và sơ đồ lưu lượng cho ứng dụng được đưa ra trong các phụ lục.
Cấu trúc phần cứng của dự án : Sơ đồ phần cứng của dự án đáp ứng các điều kiện được đưa ra trong Hình 3.5
Mã chương trình của dự án
.bao gồm "2313def.inc" .DEF temp = R16 .DEF tus = R17 .DEF delay1 = R18 .DEF delay2 = R19 .DEF base = R20 .DEF count = R21 .DEF dữ liệu = R22 .DEF EEVeri = R23 .DEF EEAdres = R24 .DEF temp2 = R25 .DEF s1 = R0 để đọc mật khẩu và .DEF s2 = R1 để thay đổi mật khẩu .DEF s3 = R2, các bộ đếm được sử dụng trong các chương trình con .DEF s4 = R3 .DEF sifre_dogru = R4, cờ đăng ký .DEF e_s_dogru = R5
Post a Comment