Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Эндрю23
2 / 2 / 2
Регистрация: 20.10.2011
Сообщений: 119
1

Запись в память и чтение из нее

21.11.2015, 17:54. Просмотров 334. Ответов 9
Метки нет (Все метки)

Значит есть программа-вольтметр, и при выходе напряжение за определенные приделы загорается светодиод.
Нужно чтобы значения этих пределов(v1 и v2) записывались в память, а потом эти значения должны считываться.
Так же нужно, чтобы записывались в память значения напряжения(an0) с ацп.

Контроллер PIC16F876, схема контроллера
Запись в память и чтение из нее
(схема может быть и не полная, но сам контроллер работает)

вот потуги
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Define CONF_WORD = 0x3d72
 
 
Dim digit As Byte
Dim an0 As Word
Dim porog As Byte
Dim mask As Byte
Dim mask1 As Byte
Dim mask2 As Byte
Dim mask3 As Byte
Dim mask4 As Byte
 
Dim v1 As Byte
Dim v2 As Byte
 
Dim eepv1 As Byte  'переменная адреса энергонезависимой памяти для нижнего предела напряжения
Dim eepv2 As Byte
eepv1 = 0
eepv2 = 1
v1 = 0
v2 = 0
 
 
Symbol led = PORTC.1
TRISB = %00000000
 
TRISC.1 = 0
TRISC.2 = 0
TRISC.3 = 0
TRISC.4 = 0
TRISC.5 = 0
 
mask1 = 0
mask2 = 0
mask3 = 0
mask4 = 0
 
porog = 0
 
Gosub get_v
 
loop:
    Adcin 0, an0
    v1 = 150
    v2 = 250
    Write eepv1, v1
    Write eepv2, v2
    
    digit = (an0 / 1000) Mod 10
    Gosub getmask
    mask1 = mask
    Gosub show1
 
    digit = (an0 / 100) Mod 10
    Gosub getmask
    mask2 = mask
    Gosub show2
 
    digit = (an0 / 10) Mod 10
    Gosub getmask
    mask3 = mask
    Gosub show3
    
    digit = an0 Mod 10
    Gosub getmask
    mask4 = mask
    Gosub show4
    
    porog = an0
    Read eepv1, v1
    Read eepv2, v2
    
If porog > v2 Or porog < v1 Then
    led = 1
Else
    led = 0
Endif
    
Goto loop  'loop forever
End                                               
 
get_v:  'подпрограмма записи допустимых пределов
v1 = 150
Write eepv1, v1  
v2 = 250
Write eepv2, v2
Return                                            
 
 
 
 
 
getmask:  'get appropriate 7-segment mask for input digit
    mask = LookUp(%11111100, %01100000, %11011010, %11110010, %01100110, %10110110, %10111110, %11100000, %11111110, %11110110), digit
Return                                            
 
show1:
    PORTC.2 = 1
    PORTB = mask1
    PORTC.2 = 0
Return                                            
 
show2:
    PORTC.3 = 1
    PORTB = mask2
    PORTC.3 = 0
Return                                            
 
show3:
    PORTC.4 = 1
    PORTB = mask3
    PORTC.4 = 0
Return                                            
 
show4:
    PORTC.5 = 1
    PORTB = mask4
    PORTC.5 = 0
Return
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2015, 17:54
Ответы с готовыми решениями:

MikroC. Запись-чтение байт во Flash память PIC18F452
Нашел вот такую функцию. void Flash_Write_Sector(long address, char *data) { unsigned short...

Создаю папку, папка создается, но прав на чтение и запись у нее нет
Здравствуйте. $check_dir = &quot;/var/www/html/photo/&quot;.&quot;$id&quot;; if(!is_dir($check_dir)){ ...

Запись в память и чтение значений разных типов
Здравствуйте. Есть память, думал можно, а оказалось я в тупике, как покласть в память одно число...

Отображение файла на память (чтение и запись информации)
Короче нужно из одного файла переписать в другой используя отображение на память а у меня почему то...

Выделить память и скопировать в нее данные
Всем здравствуйте. Необходимо выделить память размера newSize, скопировать в нее данные из...

9
Voland_
1656 / 1045 / 98
Регистрация: 04.01.2010
Сообщений: 3,551
21.11.2015, 21:39 2
в чем вопрос?
0
Эндрю23
2 / 2 / 2
Регистрация: 20.10.2011
Сообщений: 119
21.11.2015, 22:52  [ТС] 3
Как сделать, чтобы программа запоминала несколько значений напряжения?
Получается только текущее запоминать.
0
shindax
6 / 6 / 1
Регистрация: 09.10.2014
Сообщений: 25
22.11.2015, 07:55 4
IMHO. Для этого нужно:

1. Писать на нормальном ЯП
2. Прежде, чем задать вопрос, хотя-бы попытаться подумать.
0
22.11.2015, 07:55
Mirmik
techpriest
629 / 209 / 56
Регистрация: 27.02.2014
Сообщений: 1,139
22.11.2015, 08:20 5
В любом языке программирования есть масивы... Даже если это бейсик.
0
pyzhman
22.11.2015, 08:21
  #6

Не по теме:

Язык племени Мумба-Юмба, коий я не понимаю, тем не менее не считается ненормальным.

0
shindax
6 / 6 / 1
Регистрация: 09.10.2014
Сообщений: 25
22.11.2015, 08:28 7
Есть массивы и в бейсике. И что? Он стал лучше от этого? И мыслительного процесса никто не отменял. Чего Вы ожидаете? Что Вам готовый кусок кода выдадут? Так выдали-бы уже давно, но на нормальном ЯП.
1
Эндрю23
2 / 2 / 2
Регистрация: 20.10.2011
Сообщений: 119
22.11.2015, 12:07  [ТС] 8
По поводу языка, так это не я составлял университетскую программу.
0
shindax
6 / 6 / 1
Регистрация: 09.10.2014
Сообщений: 25
22.11.2015, 14:37 9
Так вопросы-то Вы задаёте. И думать за Вас тоже должен деканат?
0
Эндрю23
2 / 2 / 2
Регистрация: 20.10.2011
Сообщений: 119
22.11.2015, 17:47  [ТС] 10
Так я же не просил делать все за меня. Просто нужен был совет. Идеи воспользоваться массивом оказалось достаточно.
0
22.11.2015, 17:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2015, 17:47

Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление)
Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

Мать H55M-LE и оператива рекомендованная для нее сняты с производства, какую память посоветуете?
Возникла проблема! Купил две планки по 4 гига KVR1333D3N9, изначально проконсультировавшись на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru