Кодовый замок
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
> 40 лет
Технология КМОП:
Экономичная, высокоскоростная технология КМОП
Полностью статическая архитектура
Широкий рабочий диапазон напряжений питания - от 2,0В до 5,5В
Промышленный и расширенный температурный диапазоны
Низкое потребление энергии
3. Структурная схема устройства и её описание
.1 Структурная схема
3.2 Назначение отдельных функциональных блоков
Назначение микроконтроллера PIC16F676: осуществляет управление всей системой, а именно: осуществляет цикл по сканированию клавиатуры, исходя из полученных сканированием данных, определяет код нажатой клавиши и выполняет некоторые запрограммированные действия.
Назначение светодиодов: сообщение и правильности введенного кода.
Назначение клавиатуры: ввод кода.
3.3 Алгоритм работы структурной схемы
нет
нетнет
да
да
4. Разработка функциональной и принципиальной схемы
.1 Описание принципиальной схемы устройства
Описание схемы:
Данная принципиальная электрическая схема - графическое изображение с помощью условных графических и буквенно-цифровых обозначений (пиктограмм) связей между элементами проектируемого устройства - кодового замка.
На ней видно как между собой связанны составные элементы системы: микроконтроллер, клавиши и светодиоды.
В отличие от разводки печатной платы эта схема не показывает взаимного (физического) расположения элементов, эта лишь указывает на то, какие элементы с какими соединяются.
электронный кодовый замок микроконтроллер
4.2 Описание функциональной схемы устройств
Описание схемы:
Выше представлена функциональная схема проектируемого устройства. Устройство управляется микроконтроллером PIC16F676.
Контроллер сканирует подключенную к его портам клавиатуру по определенному принципу и в случае нажатой клавиши анализирует код нажатой клавиши (который складывается из номера строки и столбца) запуская по его значению определенные процедуры.
. Разработка рабочей программы
.1 Текст программы
#DEFINE CONFIG_REQ 1
LIST P = 16F676, F = INHX8M, W = 2, X = ON, R = DEC, MM = ON, N = 0, C = 255EQU 0X0000EQU 0X0001EQU 0X0002EQU 0X0003EQU 0X0004EQU 0X0005EQU 0X0006EQU 0X0007EQU 0X000AEQU 0X000BEQU 0X000CL EQU 0X000ELH EQU 0X000FH EQU 0X000FCON EQU 0X0010EQU 0X0019EQU 0X001EEQU 0X001EEQU 0X001F_REG EQU 0X0081EQU 0X0085EQU 0X0086EQU 0X0087EQU 0X008CEQU 0X008EEQU 0X0090EQU 0X0091EQU 0X0095EQU 0X0095EQU 0X0096EQU 0X0096EQU 0X0099EQU 0X009AEQU 0X009AEQU 0X009AEQU 0X009BEQU 0X009CEQU 0X009DEQU 0X009EEQU 0X009F=7=6=5_TO=4_PD=3=2=1=0=7=6IE=5=4=3IF=2=1=0=7=6=3IF=0IF=0GE=6CKPS1=5CKPS0=4OSCEN=3_T1SYNC=2CS=1ON=0=6=4=3=2=1=0=7=6=4=3=2=1_DONE=1_DONE=1_GO_DONE=1=0_GPPU=7_RAPU=7=6CS=5SE=4=3=2=1=0=7=6=3IE=0IE=0_POR=1_BOD=0=7=6=5=4=3=2=7=6=5=4=3=2=1=0=7=5=3=2=1=0=3=2_WREN=2=1_WR=1=0_RD=0=6=5=4
__MAXRAM 0XFF
__BADRAM 0X06, 0X08-0X09, 0X0D, 0X11-0X18, 0X1A-0X1D, 0X60-0X7F
__BADRAM 0X86, 0X88-0X89, 0X8D, 0X8F, 0X92-0X94, 0X97-0X98, 0XE0-0XFFEQU 0X3EFF_OFF EQU 0X3FFFEQU 0X3F7F_OFF EQU 0X3FFFEQU 0X3FFF_OFF EQU 0X3FBF_ON EQU 0X3FFF_OFF EQU 0X3FDF_OFF EQU 0X3FFF_ON EQU 0X3FEF_ON EQU 0X3FFF_OFF EQU 0X3FF7_OSC EQU 0X3FF8_OSC EQU 0X3FF9_OSC EQU 0X3FFA_OSC EQU 0X3FFB_OSC_NOCLKOUT EQU 0X3FFC_OSC_CLKOUT EQU 0X3FFD_OSC_NOCLKOUT EQU 0X3FFE_OSC_CLKOUT EQU 0X3FFF
#DEFINE __16F676 1
#DEFINE XTAL 4
#DEFINE _CORE 14
#DEFINE _MAXRAM 64
#DEFINE _RAM_END 64
#DEFINE _MAXMEM 1024
#DEFINE _ADC 8
#DEFINE _ADC_RES 10
#DEFINE _EEPROM 128
#DEFINE _PAGES 1
#DEFINE _BANKS 2
#DEFINE RAM_BANKS 1
#DEFINE _USART 0
#DEFINE _USB 0
#DEFINE _FLASH 0
#DEFINE _CWRITE_BLOCK 0
#DEFINE BANK0_START 32
#DEFINE BANK0_END 95
#DEFINE _SYSTEM_VARIABLE_COUNT 14_BANK = 0@PAGE = 0@PAGE = 0
#DEFINE LCD#TYPE 0@CALL MACRO DEST(DEST = 0X1800) &a