-
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
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
본 자료는 미리보기를 지원하지 않습니다.

-
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
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200


목차
1. 프로젝트 개요
2. 디지털 도어락 기능 설명
3. 구현 사진
4. 구현 동영상
2. 디지털 도어락 기능 설명
3. 구현 사진
4. 구현 동영상
본문내용
설계 및 구현
1. 설계개념
최대한 여러 개의 컴포넌트를 따로 구현하여 컴포넌트를 합치면서 설계한다.
컴포넌트로는 7segment , key입력 컴포넌트, piezo컴포넌트 dot matrix컴포넌트, lcd컴포넌트 , 디지털 시계 컴포넌트가 있으며 이들을 전부 합쳐 가장 상위의 모듈에서 이 컴포넌트들을 관리한다.
2. 구현 방법 & 결과의 구조 및 구성
모드의 구현
가장 먼저 모드를 구현하는데 모드는
아무것도 안하는 기능을 하는 menu모드 , 문열기 모드 , 도어락 비밀번호 설정 모드 , 디지털 시계모드 , 디지털 시계설정모드, 알람모드, 그리고 다른 모드들과 동시에 작동하는 음소거 모드가 있다. 모드는 bus switch로 연결되어 bus switch값이 1이 되면 해당 모드가 동작한다.
단 음소거 모드는 다른 모드 들과 동시에 작동 될 수 있다.
따라서 모드의 상태도는 s0,s5까지 있으며 bus switch에 따라 각 상태를 변한다.
그리고 모든 모드에서 reset버튼 입력 시 모든 시그널 변수값이 초기화 된다.
menu모드의 구현과 구조
모드의 상태가 s0으로 변하여 menu모드로 진입된 상태이다.
menu모드는 초기모드,기본모드이므로 모든 디스플레이를 초기값을 출력하고 시그널들을 초기화시킨다.
문열기 모드에서의 구현과 구조
모드의 상태가 s0에서는 3가지 디스플레이가 일정한 값이 입력된다. 7segment에는 -------가 입력되며 Dot matrix에는 Menu글씨가 LCD에는 문이 잠긴 상태를 알려준다.
그 외에 s0상태에서는 문을 닫는 동작이 실행되고 다른 시그널을 초기화한다.
s1이 됐을 때 비밀번호를 입력받는데 그 입력의 상태도는 다음과 같다
S1상태로 진입시에는 비밀번호를 입력받게 된다. 비밀번호를 입력받을 상태도는 위와 같고 모드상태와 다르게 5개로의 상태로 구성된다. Cnt3는 상태시그널로써 버?걋� 하나씩 눌러때마다 cnt3의 상태가 변화되어지고 그때마다 눌러진 버튼의 값은 pwinput이라는 사용자가 입력한 비밀번호를 임시로 저장하는 시그널에 차례로 값이 입력된다.
그 뒤 A버튼이 눌려지면 pwinput값과 기존의 비밀번호시그널 savepw와 비교하여 비밀번호가 맞으면 sound_1에 1의 시그널을 보내 짧은 환영음이 나온다.
비밀번호가 틀리면 LCD에 틀렸다는 메시지를 보내게 되고 sound_3에 1의 시그널을 보내 짧은 경고음이 들린다. .
위 소스는 버튼의 0,1의 경우를 나타낸 것이다.
예제 소스 일부분
process(reset,clock)
begin
if reset = '1' then
end if;
if (button(0)='1' or button(1)='1' or button(2)='1' or button(3)='1' or button(4)='1' or button(5)='1'
or button(6)='1' or button(7)='1' or button(8)='1' or button(9)='1' or button(10)='1') and mute = '0' then
sori_in_temp1(0) <= '1';
else sori_in_temp1(0) <= '0';
end if;
end process;
process (reset, clock)
begin
if reset = '1' then
cnt <= X"0000";
elsif clock'event and clock = '1' then
if cnt = X"270f" then
cnt <= X"0000";
else
cnt <= cnt + 1;
end if;
end if;
end process;
1. 설계개념
최대한 여러 개의 컴포넌트를 따로 구현하여 컴포넌트를 합치면서 설계한다.
컴포넌트로는 7segment , key입력 컴포넌트, piezo컴포넌트 dot matrix컴포넌트, lcd컴포넌트 , 디지털 시계 컴포넌트가 있으며 이들을 전부 합쳐 가장 상위의 모듈에서 이 컴포넌트들을 관리한다.
2. 구현 방법 & 결과의 구조 및 구성
모드의 구현
가장 먼저 모드를 구현하는데 모드는
아무것도 안하는 기능을 하는 menu모드 , 문열기 모드 , 도어락 비밀번호 설정 모드 , 디지털 시계모드 , 디지털 시계설정모드, 알람모드, 그리고 다른 모드들과 동시에 작동하는 음소거 모드가 있다. 모드는 bus switch로 연결되어 bus switch값이 1이 되면 해당 모드가 동작한다.
단 음소거 모드는 다른 모드 들과 동시에 작동 될 수 있다.
따라서 모드의 상태도는 s0,s5까지 있으며 bus switch에 따라 각 상태를 변한다.
그리고 모든 모드에서 reset버튼 입력 시 모든 시그널 변수값이 초기화 된다.
menu모드의 구현과 구조
모드의 상태가 s0으로 변하여 menu모드로 진입된 상태이다.
menu모드는 초기모드,기본모드이므로 모든 디스플레이를 초기값을 출력하고 시그널들을 초기화시킨다.
문열기 모드에서의 구현과 구조
모드의 상태가 s0에서는 3가지 디스플레이가 일정한 값이 입력된다. 7segment에는 -------가 입력되며 Dot matrix에는 Menu글씨가 LCD에는 문이 잠긴 상태를 알려준다.
그 외에 s0상태에서는 문을 닫는 동작이 실행되고 다른 시그널을 초기화한다.
s1이 됐을 때 비밀번호를 입력받는데 그 입력의 상태도는 다음과 같다
S1상태로 진입시에는 비밀번호를 입력받게 된다. 비밀번호를 입력받을 상태도는 위와 같고 모드상태와 다르게 5개로의 상태로 구성된다. Cnt3는 상태시그널로써 버?걋� 하나씩 눌러때마다 cnt3의 상태가 변화되어지고 그때마다 눌러진 버튼의 값은 pwinput이라는 사용자가 입력한 비밀번호를 임시로 저장하는 시그널에 차례로 값이 입력된다.
그 뒤 A버튼이 눌려지면 pwinput값과 기존의 비밀번호시그널 savepw와 비교하여 비밀번호가 맞으면 sound_1에 1의 시그널을 보내 짧은 환영음이 나온다.
비밀번호가 틀리면 LCD에 틀렸다는 메시지를 보내게 되고 sound_3에 1의 시그널을 보내 짧은 경고음이 들린다. .
위 소스는 버튼의 0,1의 경우를 나타낸 것이다.
예제 소스 일부분
process(reset,clock)
begin
if reset = '1' then
end if;
if (button(0)='1' or button(1)='1' or button(2)='1' or button(3)='1' or button(4)='1' or button(5)='1'
or button(6)='1' or button(7)='1' or button(8)='1' or button(9)='1' or button(10)='1') and mute = '0' then
sori_in_temp1(0) <= '1';
else sori_in_temp1(0) <= '0';
end if;
end process;
process (reset, clock)
begin
if reset = '1' then
cnt <= X"0000";
elsif clock'event and clock = '1' then
if cnt = X"270f" then
cnt <= X"0000";
else
cnt <= cnt + 1;
end if;
end if;
end process;
소개글