Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Изм.
Лист
№ докум.
Подпись
Дата
Лист
18
Федеральное агентство связи
Сибирский государственный университет телекоммуникаций и информатизации
Кафедра САПР
Курсовая работа
«Устройство сбора дискретной информации»
Выполнила: Даутова М. Г.
Проверил: Микушин А. В.
Новосибирск 2007
Содержание
Стр.
Введение ……………………………………..…………………………………..3
и программную часть………………………………………………………...6
Заключение…………………………………………………………….……………...14
Приложение А
Принципиальная схема устройства сбора информации…….….15
Приложение Б
Листинг программы……………………………………………………….……….16
Приложение В
НЕХ-файл…………………………………………………….……………………………20
Приложение Г
Библиография……………………………………………………………………… ….21
Введение
В наш век информации крайне важно уметь собирать информацию и желательно в цифровом виде. А если не получается получить ее в цифровом виде используют аналогово-цифровые преобразователи.
Для сбора информации часто используют датчики различного назначения температуры, давления, движения, скорости, различных излучении в разном диапазоне волн. В данной курсовой необходимо собирать информацию о температурах мест, где находятся эти датчики температур.
Студенту группы РТ-44 Даутовой М.Г.,
спроектировать устройство: Устройство сбора дискретной информации
1. Назначение устройства: Сбор информации от датчиков и передача её по двухпроводной линии связи
2. Режимы работы:
3. Время реакции на изменение информации от датчиков: 0.1сек
4. Напряжение питания: 5В.
Содержание проекта.
1. Разработка алгоритма работы устройства
2. Распределение алгоритма на аппаратную и программную часть
3. Разработка функциональной схемы контроллера
4. Разработка принципиальной схемы устройства
5. Разработка программы
Дата выдачи задания 10.11 . Дата защиты 22.12 .
Срок сдачи проекта 15.12 . Руководитель
Рисунок 1 Алгоритм работы устройства
Алгоритм состоит в том, чтобы по очереди считывать значение преобразованного напряжения с аналогового на цифровой, которое генерируется на выходе датчика и выводить эти данные тоже по очереди на последовательный порт.
Датчики температурные. Есть датчики, которые выдают информацию в цифровом и аналогом виде. Цифровые датчики имеют встроенный АЦП. Но можно выбрать микроконтроллер с встроенным АЦП. В данной курсовой рассматривается вариант : температурный датчик микроконтроллер с АЦП ADUC842.
АЦП оцифровывает значения напряжении в интервале от 0 до 2,5 В. Датчик выбран LM20. На выходе он выдает напряжения от 0,3 до 2б485 В. Укладываемся в этот интервал.
Выбранный температурный датчик на выходе выдает значения в виде напряжения. Эти напряжения в соответствии с температурой показаны на рисунке 2 :
Рисунок 2 Соответствие температуры и напряжения в температурном датчике LM20
Рисунок 3 Вольт - температурная характеристика датчика LM20
Датчик на выходе выдает напряжение от 0,3 до 2,485 В, что как раз укладывается в рамки АЦП 0 ÷VREF = 0 ÷ 2,5 В.
АЦП в ADUC842 12-разрядный. Значит, полученное оцифрованное значение записывается в 12 бит. Для этого понадобиться 2 Байта.
Данные, полученные с АЦП записываются в два регистра специального назначения ADCDATAH и ADCDATAL.
Рисунок 4 Формат полученного слова с АЦП
Как видно из рисунка, младшие 8 бит записываются в ADCDATAL, а в ADCDATAH в первый 4 бита записывается старшие 4 бита информации, а в старшие 4 бита записывается номер канала, с которого приняты эти данные. Эти данные по очереди записываются в буферный регистр и отправляются по I2C.
Для получения данных с АЦП должным образом, нужно сконфигурировать АЦП, это делается в регистрах ADCCON1 и ADCCON2.
Конфигурация ADCCON1:
7-бит: MD1 если собирается использоваться АЦП то значенме этого юита должно быть «1»;
6-бит: EXT_REF - Так как нам хвататет внутреннего интервала напряжении 2,5 В, то его можно оставить «0»;
Остальные биты нам не нужны, пожтому их значение можно оставить равным нулю.
Конфигурация ADCCON2:
7-бит: ADCI - устанавливается,когда заканчивается циклпреобразования АЦП. Перед следующим преобразованием нужно обнулить это значение.
6-бит: DMA мы этот режим не используем,поэтому его нужно оставить в значении «0».
5-бит: CCONV ставим значение «1» для непрерывной работы АЦП.
4-бит: SCONV автоматически сбрасывается когда закнчивается преобразованиет с одного порта.
3, 2, 1, 0-биты: выбор канала.Задается вдвоичном виде:
0-канал 0000
1-канал 0001
2-канал 0010
…
7-канал 0111
Остальные конфигурации либо не используются, либо используются в других целей..
Рисунок 5 Битовый состав регистра ADCCON2
По заданию сказано, что передача информации по двухпроводной линии связи, значит по последовательному порту по протоколу I2C.
Последовательный порт может сконфигурирован на SPI или на I2C.
Для этого существует регистр SPICON. Для работоспобности I2C нужно обнулить бит SPE. (SPE=0). Остальные биты не важны для этого интерфецса. Следующий конфигурационный регистр I2CCON:
Рисунок 6 Битовый состав регистра I2CCON
Таблица 1 описание бит регистра I2CCON
бит |
название |
Описание |
7 |
MDO |
Бит выходных данных ( только в режиме программный ведущий) Используется для передачи данных в режиме «программный ведущий». Данные, записанные в этот бит разрешения передачи данных (MDE). |
6 |
MDE |
Бит разрешения передачи данных ( только в режиме программный ведущий). Устанавливается пользователем для назначения контакта SDATA 1-передача данных 0- прием данных |
5 |
MCO |
Бит выходного синхроимпульса ( только в режиме программный ведущий) Используется в режиме передающего I2С интерфейса. Данные записанные в этот бит будут записаны на контакт SCLOCK. |
4 |
MDI |
Бит входных данных ( только в режиме программный ведущий) Используется для приема данных в режиме «программный ведущий». В этот бит считывается значение SDATA по сигналу SCLOCK, если сброшен бит разрешения передачи данных (MDE). |
3 |
I2CM |
Бит выбора режима «ведущий/ведомый». Устанавливается и сбрасывается пользователем. 0-«аппаратный ведомый» 1-«программный ведущий» |
2 |
I2CRS |
Бит сброса I2С (только в режиме аппаратный ведомый) Устанавливается и сбрасывается пользователем. 0-нормальная работа I2С 1-сброс интерфейса I2С |
1 |
I2CTX |
Бит направления передачи ( только в режиме аппаратный ведомый) Устанавливается аппаратно 0-прием 1-передача |
0 |
I2CI |
Флаг прерывания ( только в режиме аппаратный ведомый) Устанавливается аппаратно после приема или передачи байта Сбрасывается программно. |
Рисунок 7 Алгоритм работы программы
Рисунок 8 структурная схема устройства сбора информации
Структурная схема показывает, что оцифрованная информация получается 16-битное. А по последовательному порту передается 8-битное. Поэтому старший байт и младший байт передаются по очереди и так далее со следующими датчиками.
Рисунок 9 функуциональная схема устойства сбора информации
Заключение
Устройства сбора информации играют важную роль в мониторинге в производстве и не только. При необходимости вместо датчиков можно использовать другие датчики температуры, только согласовывать надо. При другой необходимости можно использовать датчики совсем другого типа: давления, движения, теплоты и т.д.
В данной курсовой мы научились использовать вход АЦП и его использовать.
Приложения
Приложение А
Принципиальная схема устройства сбора информации
Приложение Б
Листинг программы
C51 COMPILER V7.01 TERM_ADC 12/24/2007 18:14:12 PAGE 1
stmt level source
1 #include<ADUC812.h>
2 char a;
3 //proga zaderjki ili taimout na 20 mks
4 void delay(int a) //funkcia zaderzki
5 { TMOD=1; //pervi rejim raboty taymera
6 1 while(a--) //zapusk cikla
7 1 { TR0=1; //pusk taimera
8 2 TL0=0xEC; //20mks
9 2 TH0=0xFF;
10 2 while(!TF0); //
11 2 TF0=0;
12 2 }
13 1 }
14 void start()
15 {
16 1 MDE=1;
17 1 MDO=1;
18 1 MCO=1;
19 1 delay(1);
20 1 MDO=0;
21 1 delay(1);
22 1 MCO=01 ;
23 1 }
24 //I2C stop
25 void stop()
26 {
27 1 MDE=1;
28 1 MDO=0;
29 1 MCO=1;
30 1 delay(1);
31 1 MDO=1;
32 1 delay(1);
33 1 MCO=0;
34 1 MDE=0;
35 1 }
36 bit I2C_send(unsigned char send)
37 {
38 1 char i;
39 1 bit ask;
40 1 MDE=1;
41 1 for(i=0; i<8; i++,send<<=1)
42 1 {
43 2 MDO=(send&0x80)? 1:0;
44 2 MCO=1;
45 2 delay(1);
46 2 MCO=0;
47 2 }
48 1 MDE=0;
49 1 MCO=1;
50 1 delay(1);
51 1 ask=MDI;
52 1 MCO=0;
53 1 return ask;
54 1 }
55 void Peredacha_DATA() {
C51 COMPILER V7.01 TERM_ADC 12/24/2007 18:14:12 PAGE 2
56 1
57 1 a=ADCDATAH;
58 1 start();
59 1 I2C_send(a);
60 1 stop();
61 1 a=ADCDATAL;
62 1 start();
63 1 I2C_send(a);
64 1 stop();
65 1 }
66 void main()
67 { SPE=0; //vklyuchenie interfeisa I2C
68 1 I2CM=1; //software slave
69 1 ADCCON1=0x41;
70 1 while(1) {
71 2 ADCCON2=0x0C; //s pervogo datchika
72 2 Peredacha_DATA();
73 2 ADCCON2=0x1C; //s 2-go datchika
74 2 Peredacha_DATA();
75 2 ADCCON2=0x2C; //s 3-go datchika
76 2 Peredacha_DATA();
77 2 ADCCON2=0x3C; //s 4-go datchika
78 2 Peredacha_DATA();
79 2 ADCCON2=0x4C; //s 5-go datchika
80 2 Peredacha_DATA();
81 2 ADCCON2=0x5C; //s 6-go datchika
82 2 Peredacha_DATA();
83 2 ADCCON2=0x6C; //s 7-go datchika
84 2 Peredacha_DATA();
85 2 ADCCON2=0x0C; //s 8-go datchika
86 2 Peredacha_DATA();
87 2 }
88 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 201 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
Приложение В
НЕХ-файл
:06086A00D2ED7F017E00CB
:10087000758901EF1FAC0670011E4C600FD28C759C
:0D0880008AEC758CFF308DFDC28D80E72263
:0F08B700D2EED2EF12086AC2EF12086CD2ED2215
:1008A600D2EEC2EF12086AD2EF12086CC2EDC2EEA7
:0108B600221F
:02083900AD0709
:10083B00D2EEE4FBC3EB648094885015ED30E702F5
:10084B008001C392EF12086AC2ED0BED25E0FD802B
:0E085B00E3C2EE12086AA2EC9200C2EDA20007
:01086900226C
:10088D0085DA081208B7AF081208391208A685D9FB
:09089D00081208B7AF080208397F
:10080000C2FDD2EB75EF4175D80C12088D75D81C5E
:1008100012088D75D82C12088D75D83C12088D756C
:10082000D84C12088D75D85C12088D75D86C1208DA
:090830008D75D80C12088D80CEE4
:030000000208C62D
:0C08C600787FE4F6D8FD75812002080060
:00000001FF
Приложение Г
Библиография