Телефонный номеронабиратель

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    656,43 Кб
  • Опубликовано:
    2014-03-27
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Телефонный номеронабиратель

Министерство образования и науки Российской Федерации

Самарский государственный аэрокосмический университет

имени академика С.П. Королева

(национальный исследовательский университет) (СГАУ)

Факультет №5

кафедра радиотехнических устройств







Пояснительная записка

к курсовому проекту

Телефонный номеронабиратель


Выполнил

Студент Евдокимов Н.М.

группа 542

Руководитель проекта

Корнилин Д.В.



Самара 2012

Реферат

Курсовой проект.

Пояснительная записка: 27 с., 21 рис., 6 источников, 1 приложение.

Графическая документация: 1Л А4.

Сигнал, микроконтроллер, цап, клавиатура, схема, алгоритм, программа, файл, блок питания.

Производится выбор микроконтроллера для устройства формирования положительных прямоугольных импульсов, а так же выполняется разработка принципиальной схемы. Выбор вспомогательных элементов конструкции и расчет токов и напряжений в устройстве. Составлен алгоритм программы. Разработана программа для микроконтроллера. Была произведена разработка блока питания для данного устройства.

Содержание

Введение

. Разработка структурной схемы устройства

. Разработка принципиальной схемы устройства

.1 Микроконтроллер PIC18F2550

.2 Клавиатура

.3 Формирующее устройство

.4 Блок питания

. Разработка алгоритма управляющей программы

. Разработка управляющей программы

Заключение

Список использованной литературы

Приложение

Введение

Первые микроконтроллеры компании MICROCHIP PIC16C5x появились в конце 80-х годов и благодаря своей высокой производительности и низкой стоимости составили серьёзную конкуренцию производимым в то время 8-разрядным МК с CISC-архитектурой.

Первое, что привлекает внимание в PIC-контроллерах - это простота и эффективность. В основу концепции PIC, единую для всех выпускаемых семейств, была положена RISC-архитектура с системой простых однословных команд, применение встроенной памяти программ и данных и малое энергопотребление.

Система команд базового семейства PIC18 содержит только 75 команд. Это сыграло свою роль в популяризации PIC-контроллеров. Все команды (кроме команд перехода) выполняются за один машинный цикл (или четыре машинных такта) с перекрытием по времени выборок команд и их исполнения, что позволяет достичь производительности до 5 MIPS при тактовой частоте 48 МГц.

Микроконтроллеры PIC имеют симметричную систему команд, позволяющую выполнять операции с любым регистром, используя любой метод адресации. Разработчики MICROCHIP так и не смогли отказаться от структуры с регистром-аккумулятором, необходимым участником всех операций с двумя операндами. Зато теперь пользователь может сохранять результат операции на выбор, где пожелает, в самом регистре-аккумуляторе или во втором регистре, используемом для операции.

Большинство PIC-контроллеров выпускаются с однократно программируемой памятью программ OTP с возможностью внутрисхемного программирования или масочным ROM. Для целей отладки предлагаются версии с ультрафиолетовым стиранием. Полное количество выпускаемых модификаций PIC-контроллеров составляет порядка пятисот наименований. Как утверждает MICROCHIP, продукция компании перекрывает весь диапазон применений 8-разрядных микроконтроллеров.

Особый акцент MICROСHIP делает на максимально возможное снижение энергопотребления для выпускаемых микроконтроллеров. При работе на частоте 4 МГц PIC-контроллеры, в зависимости от модели, имеют ток потребления меньше 1,5 мА, а при работе на частоте 32,768 КГц - ниже 15 мкА. Поддерживается "спящий" режим работы. Диапазон питающих напряжений PIC-контроллеров составляет 2,0...6,0 В.

Из программных средств отладки наиболее известны и доступны различные версии ассемблеров, а также интегрированная программная среда MPLAB. Российские производители программаторов и аппаратных отладочных средств также уделяют внимание PIC-контроллерам. Выпускаются как специализированные программаторы, такие как PICPROG, программирующие почти весь спектр PIC-микроконтроллеров, так и универсальные: UNIPRO, СТЕРХ, поддерживающие наиболее известные версии PIC.

1. Разработка структурной схемы устройства

Составим структурную схему проектируемого устройства.

Рисунок 1 - Структурная схема устройства

Основной задачей решаемой при составлении структурной схемы является определение, и рациональное совмещение блоков устройства, которые подключаются к микроконтроллеру.

Проектируемое устройство содержит следующие узлы:

Кварцевый резонатор, работает как тактирующее устройство микроконтроллера. Резонатор обеспечивает наиболее удобную, подходящую частоту тактового генератора.

Матричная клавиатура на 12 клавиш со схемой организации 3х4.

МК - микроконтроллер PIC18F2550.

Формирователь - представляющий собой электронный ключ.

Блок питания - для преобразования постоянного напряжения 12В в напряжение 5В.

2. Разработка принципиальной схемы устройства

Принципиальная электрическая схема и перечень использованных элементов приведены в приложении А.

Устройство состоит из:

–      микроконтроллера;

–              клавиатуры;

–              формирователя;

–              блока питания.

2.1 Микроконтроллер PIC18F2550


Характеристики PIC18F2550:

·        Высокоскоростная RISC архитектура.

·        75 инструкций.

·        Все команды выполняются за один цикл, кроме инструкций переходов, выполняемых за два цикла.

·        Тактовая частота (макс.)

       DC - 48 МГц, тактовый сигнал,

·        32к FLASH памяти программ.

256 байт EEPROM памяти данных.

·        Система прерываний (13 источников).

·        8-уровневый аппаратный стек.

·        Сброс по включению питания (POR).

·        Таймер сброса (PWRT) и таймер ожидания запуска генератора (OST) после включения питания.

·        Сторожевой таймер WDT с собственным RC генератором.

·        Режим энергосбережения SLEEP.

·        Выбор параметров тактового генератора.

·        Высокоскоростная, энергосберегающая CMOS FLASH/EEPROM технология.

·        Программирование в готовом устройстве (используется два вывода микроконтроллера).

·        Широкий диапазон напряжений питания от 2,0 В до 5,5 В.

·        Повышенная нагрузочная способность портов ввода/вывода (25мА).

·        Малое энергопотребление:

-      < 0.6 мА 3.0В, 4.0МГц,

       20 мкА 3.0В. 32кГц,

       < 1мкА в режиме энергосбережения (SLEEP).

Характеристики периферийных модулей:

·        Таймер 0: 8-разрядный таймер/счетчик с 8-разрядным программируемым предделителем.

·        Таймер 1: 16-разрядный таймер/счетчик с возможностью подключения внешнего резонатора.

·        Таймер 2: 8-разрядный таймер/счетчик с 8-разрядным программируемым предделителем и выходным делителем.

·        Два модуля сравнение/захвата/ШИМ (ССР):

-      16-разрядный захват (макс. разрешающая способность 12,5 нс),

       16-разрядное сравнение (макс. разрешающая способность 200 нс),

       10-разрядный ШИМ.

·        Многоканальный 10-разрядный АЦП.

·        Последовательный синхронный порт MSSP (ведущий/ведомый режим), SPI (ведущий/ведомый режим), I2C.

·        Последовательный синхронно-асинхронный приемопередатчик USART с поддержкой детектирования адреса.

·        Детектор пониженного напряжения (BOD) для сброса по снижению напряжения питания (BOR).

Основные температурные и электрические характеристики МК PIC18F2550 приведены в таблице 2.1.

Таблица 2.1 Температурные и электрические характеристики МК PIC16F876

Название параметра (характеристики)

Значение

Предельная рабочая температура

от -55°С до +125єС

Температура хранения

от -65°С до +150єС

Напряжение VDD относительно VSS

от -0,3 В до +7,5 В

Напряжение  относительно VSSот 0 В до +14 В


Напряжение на остальных выводах относительно VSS

от -0,3 В до VDD+0,3 В

Максимальный ток вывода VSS

300 мА

Максимальный ток вывода VDD

250 мА

Макс. выходной ток стока канала ввода/вывода

25 мА

Макс. выходной ток истока канала ввода/вывода

25 мА

Макс. выходной ток стока портов ввода/вывода PORTA, PORTB и PORTС

200 мА

Максимальный выходной ток истока  портов ввода/вывода PORTA, PORTB и PORTС

200 мА


Цоколёвка МК приведена на рисунке 2.1.

Рисунок 2 - Цоколевка PIC18F2550

Назначение используемых выводов приведены в таблице 2.2.

Таблица 2.2 Назначение используемых выводов МК

Обозн. вывода

Номер выв.

Назначение вывода

OSC1, OSC2

9, 10

Подключается кварцевый резонатор

1

Вход сброса МК


Vdd

20

Положительное напряжение питания

Vss

8, 19

Общий вывод

RA0

Порт A

RB0…RB6

21..27

Порт B

RX

18

Выход последовательного порта, используется как выход генератора


Кварцевый резонатор (ZQ1) служит для увеличения стабильности генерируемой частоты. Конденсаторы C1 и C2 предназначены для согласования работы кварцевого резонатора и микроконтроллера. Их емкость составляет 15 пФ для частоты 4 МГц.

Вывод MCLR МК соединен с питанием для сброса при включении питания.

2.2 Клавиатура


Клавиатура представляет собой матрицу клавиш размером 3х4, в ячейках которой находятся кнопки.

При опросе клавиатуры микроконтроллер работает следующим образом. На линиях RB3-RB6 логические единицы, как и на RB0-RB2. Через порты RB3-RB6 осуществляется перебор строк клавиатуры низкими логическими уровнями. Каждый раз после переключения строки считывается состояние линий RB0-RB2. Низкий уровень на этих линиях может появиться, только если нажата клавиша. Зная номер текущего активной строки, и определив номер столбца, в которой обнаружен нулевой уровень, можно определить номер нажатой клавиши.

Организация клавиш представлена на рисунке 3.

Рисунок 3 - Организация клавиатуры

Клавиша "#" служит для воспроизведения последнего набранного номера.

2.3 Формирующее устройство


В качестве формирующего устройства будем использовать электронный ключ. Исходя из задания, на нагрузке в 100Ом должен формироваться меандр амплитудой 25В. Используя эти данные рассчитаем ключ.

=Uкэ нас+U; E=1+25=26Ввх0+Iкб0maxRmax > Uбэотс

Uвх1= Uбэотс + IбRб

Iб > =2,5млА



Исходя из расчётов, можно выбрать транзистор КТ3117A(Iкmax=400мА), R2=100Ом,3=750Ом (выбираем из ряда E24)

2.4 Блок питания


Для преобразования напряжения с12В на 5В а так же его стабилизации выберем стабилизатор компенсационного типа КР142ЕН5А, функциональная схема которого приведена на рисунке 4.

Рисунок 4 - стабилизатор компенсационного типа КР142ЕН5А

Схема включения К142ЕН5А приведена на рисунке 5.

Рисунок 5 - схема включения КР142ЕН5А

 

3. Разработка алгоритма управляющей программы


При включении устройства происходит его инициализация. По умолчанию длительность импульса равна 100мс.

Из переменной NewKey считывается номер нажатой кнопки.

По линии RA0 выдается логическая единица и организуется модуляция заданного тона, в зависимости от номера нажатой кнопки, с помощью таймера 2 организуется постоянная длительность импульса 100мс.

Опрашивается клавиатура. Если есть нажатые клавиши, то их коды заносятся в память. По нажатию клавиши "#" из памяти воспроизводятся последний набранный номер длиной 24 символа. После этого процесс повторяется.

Общий алгоритм управляющей программы представлен на рисунке 6.

Рисунок 6 - Общий алгоритм управляющей программы

Рисунок 7 - Алгоритм подпрограммы инициализации портов

Рисунок 8 - Алгоритм подпрограммы инициализации таймера

Рисунок 9 - Алгоритм подпрограммы опроса клавиатуры

Рисунок 10- Алгоритм подпрограммы сканирования клавиатуры

Рисунок 11 - Алгоритм подпрограммы генерации

 

4. Разработка управляющей программы

EQU 0x0c ; Временные регистры общего примененияEQU 0x0dEQU 0x0eEQU 0x20EQU 0x21EQU 0x0f ; Счетчик,EQU 0x10 ; Старший байт.EQU 0x11 ; Младший байт,EQU 0x12 ; Флаг клавиатуры,EQU 0 ; Бит 0 - значит, клавиша нажата,EQU 1EQU 2 ; Нет клавиши = 0.EQU 3 ; Бит 3 - значит, обработка клавиши.EQU 0x13EQU 0x14EQU 0x2fEQU 100_IMPULS EQU 0x15EQU 0x17EQU 0x18EQU 0x2eEQU 1EQU 2

; Макрос сохранения байта состояния и содержимого рабочего регистра в буфере

push macroWBufferWBufferSTATUS, wStatBuffer; Макрос считывания байта состояния и содержимого рабочего регистра из буфера,

pop macroStatBuffer,wSTATUSWBuffer, w0

goto Start ; Старт;4; Сохраняем рабочий регистр и регистр состояния в момент прерывания.

pushWBufferWBufferSTATUS, wStatBuffer

;extern ServiceInterruptsServiceInterruptsStatBuffer,wSTATUSWBuffer, wInitPortsInitTimersKeyFlag,ServKey ; Проверка флага нажатия,ServiceKey ; Да, тогда обработкаGenerate; выдача импульса

goto loop

; Подпрограмма обработки нажатия клавиши. Msd - старшая цифра, Lsd - младшая цифра.NewKey,w ; Считывание регистра NewKey.TempE ; Сохранение в TempE.MsdTime,w ; Считывание Msd и перестановка полубайтов.B'11110000'; Обнуление младшего полубайта,MsdTime ; Сохранение,LsdTime,w ; Считывание Lsd и перестановка полубайтов,B'00001111' ; Обнуление старшего полубайта.MsdTime ; Логическое сложение с Msd.LsdTime,w ; Считывание Lsd и перестановка полубайтов.B'11110000' ; Обнуление младшего полубайта,TempE,w ; Логическое сложение с TempE.LsdTime ; Сохранение,KeyFlag,ServKey ; Сброс флага нажатии.; Возврат

InitPortsSTATUS,RP0 ; Банк 1.

movlw 1 ; RAO цифровые порты,TRISA ; RA0 - выходы,TRISB ; RB0-RB7 - выходы,STATUS,RP0 ; банк 0PORTA ; Обнуление порта APORTB ; Обнуление порта В; Возврат

Частота тактового генератора - 4,096 MГц, частота командных циклов - 1,024 МГц что с предварительным делителем на 32 осуществляет инкрементацию RTCC каждые 31,25 мс.

Модуль счета таймера - 96, поэтому прерывание будет происходить каждые 5 мс.

InitTimersMsdTime ; Сброс MsdTime

clrf LsdTime ; и IsdTime.KeyFlag ; Сброс флагов,STATUS,RP0 ; Банк 1.B'10000100' ; Предварительное деление на 32.OptionReg ;STATUS,RP0 ; Банк 0.B'00100000' ; Разрешение прерывания таймера,INTCON;.96 ; Предзагрузка таймера,TMR0 ; Начало счета,; Выход из прерывания.

ServiceInterruptsINTCON, T0IF ; Прерывание таймера?

goto ServiceRTCC ; Да, обработка.INTCON ; Нет, сброс INTC0N,INTCON,T0IF ; Разршение прерывания от таймера.;.96 ; Инициализация таймера,TMR0 ;INTCON,T0IF ; Сброс флага прерываний таймера,PORTA, 0 ; Если бит 0 порта А равен единице,ScanKeys ; быстрое сканирование клавиатуры

Сканируем клавиатуру 4x3 и выдаем номер клавиши в NewKey, ели клавиша была нажата. Если нет, обнуляем указатель keyhit. Подпрограмма устраняет "дребезг контактов". Клавиатура сканируется каждые 20 м

KeyFlag, DebnceOn ; Задержка окончена?Scan1 ; Да, тогда сканирование клавиатуры.Debnce ;Нет, тогда уменьшаем счетчик задержки; Возвращаемся, если не 0KeyFlag, DebnceOn ; Сброс флага; и возврат.SavePorts ; Сохранение портов,B'1110111' ; Загрузка TempD.TempD ;PORTB, w ;INTCON,RBIF ; Сброс флага прерывания от порта BTempD ; Правый сдвиг TempD.STATUS,C ; Перенос = 1?

;goto NoKey ; Нет, тогда окончаниеTempD,w ; ИЛИ TempD и wPORTB ; и выдача в P0RT_B.INTCON,RBIF ; Значение флага прерывания от порта В равно 1?ScanNext ; Нет, тогда продолжаем,KeyFlag, keyhit ; Последняя клавиша отпущена?SKreturn ; Нет, тогда выход.KeyFlag,keyhit ; Устанавливаем флаг нажатия новой клавиши,PORTB,w ; Считывание порта 8-TempE ; Сохранение в TempE.GetKeyValue ; Считывание значения клавиши от 0 до F,NewKey ; Сохранение в NewKey.KeyFlag, ServKey ; Установка флага обработки клавиш,KeyFlag,DebnceOn ;4Debnce ;: Изменение времени задержки.RestorePorts ; Возмещение портов,; NoKeyKeyFlag,keyhit ; Сброс флага,SKreturn

; Соответствие номеров клавиш, строк, столбцов и портов.TempC ;TempD,3 ; Первая строка,RowValEnd ;TempC;TempD,2 ; Вторая строка.RowValEnd ;TempC ;TempD, 1 ; Третья строка.TempE,0 ; Первый столбец?GetValCom ; Да, считывание клавишей 1,2,3TempE, 1 ; Второй столбец?Get456 ; Да. считывание 4,5,6TempE, 2 ; Третий столбец?Get789 ; Да, считывание 7,8,9TempC,2 ;TempC, 3 ;GetValCom ;TempC,2 ;TempC, w ; Таблица номеров клавиш.PCL;1;2;3;4;5;6;7;8;9;0A ;0;

;Восстанавливаем порты А и B после сканирования клавиатуры,PBBuf,w; Восстановление содержимогоPORTB,w; порта В.PABuf,w; Восстановление содержимогоPORTA ; порта А.STATUS, RP0; Банк. 1.OptionReg, 7 ; Запрет "подтягивающих" резисторов,TRISA ; Все линии порта А - выходы,TRISB ; Все линии порта B выходы.STATUS,RP0 ; Банк 0

;загрузка в таймер значения 100мс-d'255'

;загрузка в таймер 1 значения константыTMR2L;0xffTMR2H

;запуск таймераT1CON,TMR1ON

;ожидание переполнения

;загрузка в таймерLsdTime

;загрузка в таймер 2 значения нажатой кнопкиTMR2L;0xffTMR2H

;выдать лог. 1 на RC7TRISA,1

;запуск таймераT2CON,TMR2ON

;ожидание переполненияTMR2H,wSTATUS,Zwait1TRISA,1

;выдать лог 0 на RC7T2CON,TMR2ON

;сброс переполненияSTATUS,TMR1IF

;останов таймера-d'155';сразу отнимаем 100 от константыTMR2L,w

;загрузка длительности паузыTMR1L;0xffTMR2H

;запуск таймераT2CON,TMR2ON;

;ожидание переполненияTMR1H,w;STATUS,Z;wait2

;останов таймераT2CON,TMR2ON

;сброс переполненияSTATUS,TMR2IF

;останов таймераT1CON,TMR1ON

;сброс переполненияSTATUS,TMR1IF

Заключение

В результате выполнения курсового проекта был разработан электронный телефонный номеронабиратель, а так же следующая документация:

·        структурная схема,

·        принципиальная электрическая схема,

·        алгоритм функционирования устройства,

·        алгоритм работы программы МК,

·        листинг программы.

Разработанная конструкция отличается простотой схемотехнического решения, небольшим количеством использованных в схеме комплектующих элементов, является практически универсальной и может легко изменяться и расширяться.

Список использованной литературы

1. Фрунзе А.В. Микроконтроллеры? Это же просто! [Текст] / А.В. Фрунзе Т. 1 - М.: ООО "ИД СКИМЕН", 2002. - 336 с.

2. Ульрих В.А. Микроконтроллеры PIC18X7XX. [Текст] / В.А. Ульрих Изд. 2-е - М.: Наука и техника, 2002. - 320 с.

Приложение

 

Схема электрическая принципиальная

телефонный номеронабиратель микроконтроллер ток

Поз. обозн.

Наименование

Кол.

Примечание


Конденсаторы



С1, С2

К10-17-1-50 В - 15 пФ±5%

2


С3, С4

К10-17-1-50 В - 1 мкФ±5%

2


С5

C К10-17-1-50 В - 2,2 мкФ±5%

1



Микросхемы



DA1

КР142ЕН5А

1


DD1

PIC18F2550

1



Резисторы



R1

C2-33H-0,5-4,7 кОм±5%

1


R2

C2-33H -0,5-100 Ом±5%

1


R3

C2-33H -0,5-750 Ом±5%

1



Кнопки



SB1..SB12

КПМ8-4

12



Диоды



VD1..VD4

4



Транзистор



VT1

KT3117A

1



Разъёмы



X1..X3

TD-7

3



Резонатор кварцевый



ZQ1

ECS ECS-40-20-1

1



Похожие работы на - Телефонный номеронабиратель

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!