... PIC18” để vi t chươngtrìnhcho PIC18 .
_Chọn “Compiler” để biên dịch chươngtrình bạn đang vi t.
_Trên đây là cáchvi t chươngtrình cấp tốc và gọn . để vi t chươngtrình 1 cách chi ... 1 chươngtrình C mới : chạy CCS , vào New để tạo 1 file C mới . Trên thanh toolbar :
Chọn “Microchip 12 bit” để vi t chươngtrìnhcho PIC 12 bit . “Microchip 14 bit” để vi t chương
trình cho ...
CHƯƠNG 0 :
HƯỚNG DẪN SỬ DỤNG CCS – VI T CHƯƠNG
TRÌNH C TRONG CCS
I / _ GIỚI THIỆU CCS :
_CCS là trình biên dịch dùng ngôn ngữ C lập trìnhcho VĐK . Đây là ngôn ngữ lập trình...
... bạn vi t các chươngtrình nhỏ , rất tiện cho các đoạn lệnh gặp lại nhiều
lần . Chươngtrình con có thể có thể gọi ở trongchươngtrình chính bất kì đâu .
Hàm là chươngtrình con trả vể cho ... mãi , rất hay đùng trong lập trình VXL .Chương trình chính sẽ được vi t trong dấu
ngoặc.
Vòng lặp do-while
Dạng thức:
do statement while (condition);
do
{
Lập trình C cho VXL - Cơ bản ... phần đếm ngược:
Lệnh goto.
Lệnh này cho phép nhảy vô điều kiện tới bất kì điểm nào trongchương trình. Nói chung bạn nên
tránh dùng nó trongchươngtrình C++. Tuy nhiên chúng ta vẫn có một...
... chươngtrình tổng thể: Dựa trên sự đánh giá của các
chương trình thí điểm, các chươngtrình DSM có thể được thiết kế lại để sinh lợi
nhiều hơn. Cũng như đối với chươngtrình thí điểm, các chương ... lực và khí đốt để đầu tư vào các chươngtrình DSM.
Pháp: đã thực hiện 19 chươngtrình DSM thí điểm ở cấp vùng và 3 chươngtrình
ở cấp quốc gia. Các chươngtrình này xúc tiến các thiết bị hiệu ... trở lên.
+ Chươngtrìnhđiềukhiển phụ tải trực tiếp bằng sóng tự động cắt các thiết bị sử
dụng năng lượng điện (như điều hòa nhiệt độ, hệ thống đun nước nóng. . .)
+ Chươngtrình quảng bá...
... kiến thức trong quá trình
nghiên cứu và học tập tại trường chúng em đã chọn đề tài “ Thiết kế và chế tạo hệ
thống điềukhiển tín hiệu giao thông cho ngã tư lập trình bằng viđiềukhiển
Trong suốt ... tài: “ Thiết kế và chế tạo hệ thống điềukhiển tín hiệu giao
thông cho ngã tư lập trình bằng viđiềukhiển
Giảng vi n hướng dẫn : Nguyễn Trung Thành
Sinh vi n thực hiện : Trần Đông
Nguyễn ... 20
VI. KHI GII M 21
1. IC gii mó 7447 21
VII.GII THIU CHUNG CU TRC B VI IU KHIN 23
Trong mục này chúng ta xem xét một số thành vi n khác nhau của họ bộ viđiềukhiển 8051 và các
đặc điểm bên trong...
... của Viđiềukhiển để điềukhiển led 7 đoạn. Như vậy led 7 đoạn nhận
một dữ liệu 8 bit từ Viđiềukhiển để điềukhiển hoạt động sáng tắt của từng led led
đơn trong nó, dữ liệu được xuất ra điều ... Port, trongví dụ, 8 led 7 đoạn có các chân nhận tín hiệu cùng được được nối
với P0. Dùng các ngõ ra còn lại của Viđiềukhiểnđiềukhiển on/off cho led 7 đoạn,
mỗi ngõ ra điềukhiển ON/OFF cho ... byte
2
32
1
6
Bộ viđiềukhiển 8051: Bộ viđiềukhiển 8051 là thành vi n đầu tiên của họ
AT89C51. HÃng Intel ký hiệu nó nh là MCS51. Bảng 3.2 trình bày các đặc tính của
AT89C51.
24
Ging vi n hng dn:...
... đầu cho biến.
Nghĩa là thay vì:
unsigned char x;
x=0;
ta vi t là : unsigned char x=0;
Hoặc ta cũng có thể khai báo nhiêu biến một lúc:
unsigned char x,y,z;
Ngoài ra dung choviđiềukhiểntrình ... hiểu lập trình C cho 8051
Chương trình minh họa trên dãy led đơn
Phần I : Tìm hiểu lập trình C cho 8051.
1. Giới thiệu :
C là một ngôn ngữ khá mạnh và có rất nhiều
người dung. Nhưng với vi xử lý ... …)
+ Các hàm trong C
+Cấu trúc cơ bản của một chương trình.
+ Cấu trúc điềukhiển hay các tập lệnh.
2. Kiến thức cơ bản về C :
a. Các kiểu toán tử của C
Toán tử gán (=)
Mở chươngtrình Keil C...
... lệnh gọi chương
trình con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để
lưu trữ giá trị của bộ đếm chươngtrình khi bắt đầu thực hiện
chương trình con và lấy lại khi kết thúc chươngtrình ... quả có
nằm trong tầm xác định không. Khi các số không có dấu được
Các bit điềukhiển Power Down và Idle có tác dụng
chính trong tất cả các IC họ MSC-51 nhưng chỉ được thi hành
trong sự biên ... nếu kết quả 4 bit thấp nằm trong phạm vi
điều khiển 0AH - 0FH. Ngược lại AC=0.
C
C
ơ
ơ
ø
ø
0
0
(
(
F
F
l
l
a
a
g
g
0
0
)
)
:
:
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của
người...
... chỉ)
S
S
ư
ư
ï
ï
đ
đ
e
e
ø
ø
l
l
e
e
â
â
n
n
n
n
h
h
a
a
u
u
c
c
u
u
û
û
a
a
c
c
a
a
ù
ù
c
c
v
v
u
u
ø
ø
n
n
g
g
n
n
h
h
ơ
ơ
ù
ù
d
d
ư
ư
õ
õ
l
l
i
i
e
e
ä
ä
u
u
n
n
g
g
o
o
a
a
ø
ø
i
i
:
:
Vì bộ nhớ chươngtrình là EPROM, nên nảy sinh một vấn
đề bất tiện khi phát triển phần mềm choviđiều khiển. Một
nhược điểm chung của 8951 là các vùng ... sau cho phép bộ nhớ
RAM có hai chức năng vừa là bộ nhớ chươngtrình vừa là bộ nhớ
dữ liệu:
Overlapping the External code and data space
Vậy một chươngtrình có thể được load vào RAM bằng
cách ... thể được load vào RAM bằng
cách xem nó như bộ nhớ dữ liệu và thi hành chươngtrình bằng
cách xem nó như bộ nhớ chương trình.
H
H
o
o
a
a
ï
ï
t
t
đ
đ
o
o
ä
ä
n
n
g
g
R
R
e
e
s
s
e
e
t
t
:
:
RAM
W
OE
W
RD
PSEN
đường...
...
bit cao đang lưu hành trong bộ đếm chươngtrình là 5 bit
Opcode).
Sự định vị tuyệt đối đem lại thuận lợi cho các lệnh ngắn (2
byte), nhưng bất lợi trongvi c giới hạn phạm vi nơi gởi đến và
cung ... byte cho phép phân chia trong trang 2K
đang lưu hành của bộ nhớ mã của vi c cung cấp 11 bit thấp để
xác định địa chỉ trong trang 2K (A
0
…A
10
gồm A
10
…A
8
trong
Opcode và A
7
…A
0
trong ... nhãn và
trình biên dịch xác định Offset Relative cho phù hợp.
Sự định vị tương đối đem lại thuận lợi chovi c cung cấp
mã vị trí độc lập, nhưng bất lợi là chỉ nhảy ngắn trong phạm vi -
128...
... (A3A0)(A7A4).
2
2
.
.
3
3
C
C
a
a
ù
ù
c
c
l
l
e
e
ä
ä
n
n
h
h
r
r
e
e
õ
õ
n
n
h
h
a
a
ù
ù
n
n
h
h
:
:
Có nhiều lệnh để điềukhiển lên chươngtrình bao gồm
vi c gọi hoặc trả lại từ chươngtrình con hoặc chia nhánh có điều
kiện hay không có điều kiện.
Tất cả các lệnh rẽ nhánh ... chỉ thị của trình biên dịch là các lệnh để trình
biên dịch định cấu trúc chương trình, các dữ liệu, ký hiệu, hằng,
… (ví dụ Org ). Các sự điềukhiểntrình biên dịch set các mode
của trình biên ... Lệnh gọi dài chươngtrình con
trong 64K.
(PC) (PC) + 3
(SP) (SP) + 1
((SP)) (PC7PC0)
(SP) (SP) + 1
((SP)) (PC15PC8)
(PC) Addr15Addr0.
RET : Kết thúc chươngtrình con trở về
chương trình chính.
(PC15PC8)...
... 3
3
.
.
1
1
1
1
C
C
a
a
ù
ù
c
c
s
s
ư
ư
ï
ï
n
n
h
h
a
a
û
û
y
y
v
v
a
a
ø
ø
g
g
o
o
ï
ï
i
i
c
c
h
h
u
u
n
n
g
g
(
(
g
g
e
e
n
n
e
e
r
r
i
i
c
c
J
J
u
u
m
m
p
p
a
a
n
n
d
d
C
C
a
a
l
l
l
l
s
s
)
)
:
:
ASM51 cho phép người lập trình dùng thuật nhớ JMP
chung hay CALL chung. Lệnh “JMP “có thể được dùng thay cho
“SJMP, AJMP, LJMP“ và “CALL” có thể thay cho ACALL hay
LCALL. Sự ... tượng trưng cho hằng dữ liệu. Các khả năng cho phép vùng
toán hạng phụ thuộc lớn vào các hoạt động. Một vài hoạt động
không có toán hạng như : RET, NOP trong khi các hoạt động
khác cho phép nhiều ... được định rõ trong R0.
Lệnh MOVC, @A + PC khôi phục lại byte dữ liệu từ bộ
nhớ dữ liệu ngoài tại địa chỉ được tạo thành bởi vi c cộng nội
dung thanh ghi tích lũy A và bộ đếm chương trình.
3
3
.
.
7
7
D
D
ư
ư
õ
õ
l
l
i
i
e
e
ä
ä
u
u
t
t
ư
ư
ù
ù
c
c
t
t
h
h
ơ
ơ
ø
ø
i
i
(
(
I
I
m
m
m
m
e
e
d
d
i
i
a
a
t
t
e
e
D
D
a
a
t
t
a
a
)
)
:
:
Các...
... 8279 xem dữ liệu từ viđiềukhiển gởi
đến là dữ liệu để hiển thị.
A0 =1 : 8279 xem dữ liệu từ viđiềukhiển gởi
đến là dữ liệu của lệnh điềukhiển 8279.
Khảo sát viđiềukhiển 8951
MINUS – THERE ... output
BD\ 0 Blank Display Output
8279 kết nối với viđiềukhiển thông qua 3 bus gồm bus dữ
liệu D7-D0, bus địa chỉ có một đường A0, bus điềukhiển RD\,
WR\, CS\, Reset, CLK.
Tín hiệu chọn CS\ ... ứng trong mỗi toán hạng. Sự hoạt động
phải được phân ra từ các toán hạng bởi một khoảng cách ký tự hoặc
nhiều khoảng ký tự.
Ví dụ 3 lệnh MOV sau đây giống nhau:
THERE EQU
Khảo sát viđiều khiển...
... cần hiển thị do viđiều
khiển gởi đến, để đọc dữ liệu ô nhớ nào trong vùng nhớ RAM này ta
có thể điều chỉnh các bit AAA tương ứng. Bộ nhớ hiển thị này thuộc
kiểu FIFO.
Khảo sát vi mạch 8279
I
I
.
.
S
S
ơ
ơ
đ
đ
o
o
à
à
k
k
h
h
o
o
á
á
i
i
k
k
i
i
t
t
v
v
i
i
đ
đ
i
i
e
e
à
à
u
u
k
k
h
h
i
i
e
e
å
å
n
n
8
8
9
9
5
5
1
1
:
:
Cấu ... là viđiềukhiển 8951 đã được giới thiệu
phần trên gồm các chân như sau:
16 đường địa chỉ : A0 – A15.
8 đường dữ liệu :D0 – D7.
Các đường điềukhiển : /RD , /WR , /PSEN
4 KB EPROM nội được điều ... bên trong con trỏ 4 bit AAAA quản lý,
16 ô nhớ RAM này dùng để chứa dữ liệu cần hiển thị do viđiều
khiển gởi đến, để gởi dữ liệu đến 8279 tại byte Ram thứ mấy trong 16
byte RAM ta có thể điều...
... 8951
I
I
.
.
G
G
i
i
ơ
ơ
ù
ù
i
i
t
t
h
h
i
i
e
e
ä
ä
u
u
:
:
Để lập trìnhcho EPROM nội của viđiềukhiển 8951 có
nhiều phương pháp khác nhau như: dùng kit vi xử lí, máy tính …
Ở đây em dùng kit viđiềukhiển 8951 lập trìnhcho EPROM nội
thông ... EPROM.
2
2
.
.
2
2
B
B
o
o
ä
ä
n
n
h
h
ơ
ơ
ù
ù
t
t
r
r
u
u
y
y
x
x
u
u
a
a
á
á
t
t
b
b
a
a
á
á
t
t
k
k
y
y
ø
ø
(
(
R
R
A
A
M
M
)
)
:
:
Chứa các chươngtrình còn sữa đổi hoặc chứa dữ liệu và kết quả
tạm thời trong quá trình tính toán. Đặc điểm của loại này là dữ liệu sẽ
mất khi hệ thống mất điện.
Trong KIT viđiềukhiển dùng ... – 1FFFH (8KB), chứa
chương trình hệ thống điềukhiển tất cả các quá trình hoạt
động của máy.
EPROM 2: Có địa chỉ từ 2000H – 3FFFH (8KB), chứa
chương trình ứng dụng cho mạch ghi đọc EPROM.
2
2
.
.
2
2
B
B
o
o
ä
ä
n
n
h
h
ơ
ơ
ù
ù
t
t
r
r
u
u
y
y
x
x
u
u
a
a
á
á
t
t
b
b
a
a
á
á
t
t
k
k
y
y
ø
ø
(
(
R
R
A
A
M
M
)
)
:
:
Chứa...
... xung lập trình ALE/PROG.
Kết thúc.
Chú ý: Chu kỳ vi t 1byte không quá 1,5ms.
Khi nạp dữ liệu choviđiềukhiển thì chươngtrìnhnạp phải
nạp từng byte, đồng thời phải chạy chươngtrình xóa ... 21
AT89C20
51
V
V
.
.
C
C
h
h
ư
ư
ơ
ơ
n
n
g
g
t
t
r
r
ì
ì
n
n
h
h
n
n
a
a
ï
ï
p
p
E
E
P
P
R
R
O
O
M
M
n
n
o
o
ä
ä
i
i
:
:
Vi điềukhiển AT89C51 được tung ra thị trường với mảng
bộ nhớ bên trong rỗng (nghóa là nội dung =FFH) và sẵn sàng
được lập trình. Chươngtrìnhnạp EPROM nội sẽ được lập trình
một trong ... khi
lập trìnhcho EPROM nội.
Giản đồ thời gian lập trìnhcho EPROM nội:
Chương 10:
Khởi tạo cổng giao
tiếp 8255
Cổng giao tiếp dùng để giao tiếp giữa kit viđiềukhiển với
mạch nạp EPROM...