LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
LỜI GIỚI THIỆU
Khi xã hội càng phát triển thì con người ngày càng tự hồn thiện mình hơn; đồng
thời cũng có những nhu cầu cao hơn về mọi mặt; trong đó có việc Quản Lý Nhân Sự.
Nắm bắt được nhu cầu đó, các nhà khoa học đã nghiên cứu và chế tạo ra Máy Chấm
Công, ngày càng tốt hơn và hiệu quả hơn.
Vì những tiện lợi nêu trên mà tôi đã nhận đề tài Luận Văn Tốt Nghiệp của mình
là : “Thiết Kế và Thi Công Máy Chấm Công”. Một đề tài mới và có rất nhiều ứng dụng
thực tiễn cũng như các khía cạnh khoa học hấp dẫn liên quan.
Sau nhiều tháng tìm tòi học hỏi, tôi đã thành công.
Nội dung Luận Văn gồm có các phần chính như sau :
• Phần I : Giới Thiệu về Máy Chấm Công Hiện Đại .
Hệ Thống Mã Vạch và Ứng Dụng thực tiễn .
• Phần II : Giới Thiệu Khái Quát Về Vi Điều Khiển AT89C51 .
• Phần III : Giới Thiệu Cảm Biến Quang :
Tia Laser và Hồng Ngoại Tuyến .
• Phần IV : Giới Thiệu Các Nghi Thức Truyền Dữ Liệu .
Xốy Trọng Tâm Vào Chuẩn RS 485 và RS 232 .
• Phần V : Sơ Đồ Mạch Nguyên Lý Của Máy Chấm Công .
Giải Thích Sơ Lược Nguyên Lý Làm Việc .
• Phần VI : Giải Thuật – Lưu Đồ Và Chương Trình Phần Mềm .
• Phần VII : Thi Công Lắp Ráp – Sơ Đồ Mạch In .
Để có được thành công như hôm nay, tôi xin chân thành cảm ơn sự giúp đỡ hết
sức nhiệt tình của thầy hướng dẫn : LÊ QUANG THUẦN và các thầy cô trong Bộ
Môn cũng như trong Khoa. Bên cạnh đó, tôi cũng xin cảm ơn những ý kiến đóng góp
của các bạn đã giúp đỡ tôi hồn thành Đề Tài này.
Nhưng muốn hồn thiện hơn, tôi xin nhận thêm sự góp ý của quý thầy cô sau khi
tham khảo Đề Tài này.
Xin Chân Thành Cảm Ơn Rất Nhiều !
thời gian nó không thể tránh khỏi khuyết điểm .
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
3
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
Đó cũng là chiếc Máy Chấm Công mà Luận Văn Tốt Nghiệp này đề cập đến.
Từ những chiếc Máy bấm lỗ lên thẻ đến những Máy Chấm Công in thời điểm đi
và về của nhân viên khi đưa thẻ Chấm Công vào, Máy Chấm Công do tác dụng hữu ích
của nó trong việc quản lý công nhân, số lượng đã phát triễn không ngừng cùng thời đại.
Và hơn nữa, sự phát triển tồn diện của Khoa Học Kỹ Thuật cuối thế kỷ XX về
nhiều lĩnh vực ; trong đó mạnh nhất là Công Nghệ Số – Vi Xử Lý và Công Nghệ Quang
Điện Tư û; đã góp phần không nhỏ vào việc hồn thiện dần Máy Chấm Công. Cho đến
ngày nay là chiếc máy chúng ta đang đề cập đến : Máy Chấm Công thế hệ mới hiện nay
đã có thể giao tiếp trực tiếp với Máy Vi Tính hữu tuyến thông qua các cổng và các
chuẩn giao tiếp hoặc vô tuyến viễn thông. Dẫn đến việc xuất hiện các thế hệ Máy Chấm
Công Kỹ Thuật Số sử dụng tia Laser hoặc Hồng Ngoại tuyến đọc các thẻ khoét lỗ hoặc
thẻ mang vạch mã. Bên cạnh đó, hệ thống mã vạch cũng phát triễn không ngừng và
ngày càng được ứng dụng rộng rãi ; cho nên việc ứng dụng thẻ mang mã vạch để chấm
công là điều phát triển tất yếu.
II. ỨNG DỤNG THỰC TIỄN :
Khi cần quản lý nhân sự, theo dõi thời gian làm việc của nhân viên để đánh giá
năng lực làm việc cũng như thái độ công tác của nhân viên, tại các công ty; người ta
thường sử dụng Máy Chấm Công. Như trên đã đề cập, Máy Chấm Công trên thế giới đã
được sử dụng rộng rãi từ lâu và ở Việt Nam chúng cũng đã xuất hiện khá lâu với mục
đích ghi lại thời gian ra, vào của công nhân trong các cơ sở sản xuất hay các cơ quan, xí
nghiệp . Chính vì vậy mà nó được gọi là “Time Record” . Phát triển từ những
chiếc máy đục lỗ và in thời gian làm việc (Ra/Vào), đến nay Máy Chấm Công đà có
những thế hệ có thể giao tiếp với Máy Vi Tính, làm cho việc quản lý càng dễ dàng, hiệu
quả hơn, tiện lợi, an tồn và chính xác hơn . Đó cũng là nội dung của đề tài Luận Văn
Tốt Nghiệp mà tôi nhận.
Để đáp ứng được những chức năng thiết yếu của một Máy Chấm Công hiện đại,
• Tra tìm tài liệu, vật liệu.
• Quản lý ngày giờ công, báo thời gian và sự có mặt.
• Lưu kho.
Cùng với sự phát triển nhanh của mã vạch, mã 2 chiều ra đời và phát triển đã cho
phép ứng dụng mã vạch trong nhiều lãnh vực khác như : quản lý hồ sơ nhân sự , quản
lý và trao đổi thông tin, tài liệu nghiên cứu khoa học . Và không nằm ngồi những lãnh
vực trên, mã vạch sử dụng trong Luận Văn này nhằm mục đích là quản lý thời gian công
tác . Cấu trúc cụ thể sẽ được trình bày kỹ ở phần sau .
* Khả năng áp dụng công nghệ mã số mã vạch ở Việt Nam :
Do yêu cầu nền kinh tế thị trường ngày càng phát triển ở trong nước và quan hệ
giữa các nước trên thế giới ngày càng mở rộng cho nên đã đến lúc chúng ta không thể
không áp dụng công nghệ mã vạch ở Việt Nam.
Việc áp dụng mã vạch ở Việt Nam chủ yếu phục vụ các đối tượng sau:
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
5
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
- Các sản phẩm hàng hóa xuất khẩu : các sản phẩm này muốn bán sang các
nước châu Á, ASEAN và các nước khác như Trung Quốc, Nhật Bản, Mỹ...
thì phải có mã số vật phẩm, nếu không có thì ta phải chấp nhận cho nước
bạn ghi mã vạch cho mình, không những tốn kém mà còn phải từ bỏ chủ
quyền .
- Các sản phẩm hàng hóa sản xuất ra để bán ở các siêu thị trong nước.
- Các cơ sở kinh doanh muốn quản lý một cách hiện đại, nhanh chóng, chính
xác dây chuyền sản xuất của mình từ lúc nhập nguyên liệu đến thành phẩm.
- Một số ngành dịch vụ, y tế, văn hóa phẩm, giao thông.
- Các ngành quản lý nhân sự , an ninh... phục vụ việc chấm công thường
nhật.
* Hoạt động của EAN - VN : ( European Article Numbering – Việt Nam )
EAN -VN được thành lập cuối năm 1994, trở thành thành viên chính thức của
phẩm, dịch vụ và địa điểm, nhằm cung cấp ngôn ngữ chung cho thương mại
quốc tế.
- Mục đích của Hội EAN nhanh chóng được các tổ chức thành viên ủng hộ và
ngày càng mở rộng ra ngồi phạm vi Châu Âu tới các châu lục khác. Do đó,
đến năm 1992, tên của tổ chức được đổi thành EAN – Quốc Tế có hơn 80
thành viên đại diện cho các tổ chức EAN quốc gia. Các tổ chức này hỗ trợ
và thông tin đầy đủ về mã số, mã vạch của EAN trong các công ty, xí nghiệp
là thành viên trong nước mình.
* Hệ thống tiêu chuẩn của EAN:
- Hệ thống tiêu chuẩn EAN về nhận biết quốc tế đối với sản phẩm, dịch vụ và
địa điểm cho phép các nhà công nghiệp và kinh doanh trao đổi thông tin một
cách chắc chắn.
- Các tiêu chuẩn EAN – Quốc Tế :
• Tiêu chuẩn phân định hàng hóa, dịch vụ và địa điểm.
• Tiêu chuẩn mã bổ sung để thông tin các dữ liệukhong thể lấy từ Máy
Tính hoặc truyền qua EDI ( Electronic Data Interchange ).
• Các mã vạch tiêu chuẩn cho phép lấy tự động và chính xác các dữ
liệu phân định và dữ liệu bổ sung.
• Mẫu tiêu chuẩn cho giao dịch thương mại được thông tin từ Máy
Tính đến Máy Tính.
Các tiêu chuẩn của EAN – Quốc Tế được áp dụng không những trong thương
mại và công nghiệp để nhận biết hàng tiêu dùng, mà còn trong quản lý các sản phẩm
sách, hàng dệt, chăm sóc sức khỏe, tự động hóa ... . Các ký hiệu mã vạch sau đã được
thiết kế và tiêu chuẩn hóa để áp dụng trong EAN :
1. EAN ( EAN-8, EAN-13 )
2. ITF – 14.
3. UCC/ EAN – 128.
4. Do yêu cầu ngày càng tăng của các công ty thành viên về phương pháp trao
đổi thông tin thương mại, EAN lập nên EAN – COM là tiêu chuẩn trao đổi
1974 ở Châu Âu và sau đó được sử dụng ở hầu hết các nước trên thế
giới.
+ Mã số EAN :
Trong hệ thống mã số EAN có hai loại, một loại 13 con số ( EAN -13 ) và
loại kia sử dụng 8 con số ( EAN - 8 ).
• Mã số EAN -13 gồm 13 con số có cấu tạo như sau:
- Ba con số đầu (kể từ bên trái) là mã số quốc gia.
- Bốn con số tiếp theo là mã số nhà sản xuất.
- Năm con số sau nữa là mã số sản phẩm.
- Số cuối cùng là số kiểm tra.
Để bảo đảm tính thống nhất và tính duy nhất của mã số, mã quốc gia phải
do tổ chức mã số vật phẩm quốc tế ( EAN – Quốc tế ) cấp cho các quốc gia
thành viên của tổ chức này. Mã số quốc gia của Việt Nam là 893.
Mã số nhà sản xuất do tổ chức mã số vật phẩm quốc gia cấp cho các nhà
sản xuất là thành viên của họ. Ở Việt Nam, mã số nhà sản xuất do EAN – Việt
Nam cung cấp cho các thành viên của mình.
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
8
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
Mã số sản phẩm do nhà sản xuất qui định cho hàng hóa của mình. Nhà sản
xuất đảm bảo mỗi hàng hóa chỉ có một mã số, không được có bất kỳ sự nhầm
lẫn nào.
Số kiểm tra C là một con số được tính dựa vào 12 con số đứng trước nó,
dùng để kiểm tra việc có ghi đúng những con số nói trên hay không ?
• Mã số EAN - 8 có cấu tạonhư sau :
- Ba số đầu (kể từ bên trái) là mã số quốc gia.
- Bốn con số tiếp theo là mã số hàng hóa. Con số này do tổ chức mã số quốc
gia cấp cho sản phẩm của từng nhà sản xuất theo đơn xin sử dụng mã EAN -
8 của nhà sản xuất.
Vậy C= 1 EAN - 13 : 893 1234 12345 1
* Mã vạch :
Mã vạch là một nhóm các vạch và khoảng trống đặt cạnh mã số dùng để thể hiện
con số của mã số.
Người ta chuyển các con số thành các vạch đen trắng để các máy quét ( Scaner )
có thể “đọc” được các con số này.
Có nhiều loại mã vạch, loại thể hiện mã số EAN gọi là mã vạch EAN, loại thể
hiện mã UPC gọi là mã vạch UPC.
Trong mã vạch EAN, mỗi con số được thể hiện bằng hai vạch và hai khoảng
trống, theo 3 kiểu ( phương án ) khác nhau ( A, B, C ). Mỗi vạch hoặc khoảng trống có
chiều rộng từ 1 đến 4 modun, mỗi modun có chiều rộng là 0,33 mm.
Mã vạch EAN -13 có cấu tạo như sau :
Kể từ bên trái là khu vực để trống ( quiet zone ) không ghi ký hiệu nào cả; rồi tới
ký hiệu bắt đầu; tiếp theo là ký hiệu dãy số bên trái; ký hiệu phân cách; ký hiệu dãy số
bên phải; ký hiệu số kiểm tra; ký hiệu kết thúc; và sau đó là khu vực để trống bên phải.
Tồn bộ khu vực mã vạch EAN -13 tiêu chuẩn có kích thước chiều dài là 37,29 mm và
chiều cao là 26,26 mm.
Mã vạch EAN - 8 cũng có cấu tạo tương tự nhưng kích thước chiều dài chỉ là
26,73mmvà chiều cao cũng chỉ là 21,84mm .
Mã vạch UPC có cùng nguyên tắc cấu tạo như mã EAN. Tuy nhiên; điều khác
biệt là trong mã vạch UPC, con số đầu tiên và con số cuối cùng được đặt bên cạnh khu
vực mã vạch ( trong khi mã vạch EAN, tất cả các con số được đặt dưới khu vực mã
vạch ) .
4. Đọc mã vạch :
Để đọc mã vạch, người ta sử dụng một máy quét, trong máy quét có một nguồn
sáng Laser, một bộ phận cảm biến quang điện ( Cảm Quang Photo-Diode ), một bộ giãi
E 8 7 6 5 4 3 2 1 B
8 bits mã
Mã kết thúc Mã bắt đầu
Hình 1.1 Sơ đồ cấu trúc Mã Vạch
Như trên đã giới thiệu, mã vạch thực tế sử dụng có cấu tạo rất phức tạp nên đòi
hỏi ta phải có đầu đọc tốt : mắt Laser là một đầu đọc rất thích hợp . Tuy nhiên do thời
gian thi công hạn hẹp cũng như điều khiện thi công chủ yếu là thủ công nên khó có thể
cân chỉnh chính xác . Việc thu thập tín hiệu và xử lý vì vậy mà cũng gặp khó khăn nên
buộc lòng phải dùng Hồng Ngoại thay thế . Chi tiết về 2 loại ánh sáng này (Laser và
Hồng Ngoại) : ưu và nhược của mỗi loại xin được trình bày kỹ ở Phần III .
Xem hình trên (Hình 1.1), ta nhận thấy cấu trúc của mã vạch sử dụng trong luận
văn gồm có 3 phần chính : 3 vạch mã bắt đầu , 3 vạch mã kết thúc và 8 vạch mã chính
nằm giữa. 8 vạch mã này chứa ID của thẻ, mỗi thẻ sẽ mang một ID khác nhau . Với
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
11
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
8bits , ta sẽ có tổng cộng 2
8
= 128 thẻ riêng biệt khác nhau. Độ dày của mỗi vạch mã
đều nhau 2 mm . Mã bắt đầu là tổ hợp 3 vạch : Trắng – Đen – Đen; mã kết thúc là tổ
hợp 3 vạch : Trắng – Đen – Trắng .
Ánh sáng Hồng Ngoại khi gặp vạch trắng sẽ phản xạ còn gặp vạch đen sẽ không
phản xạ, tương ứng ta sẽ có vạch trắng là mức logic 1 và vạch đen là mức logic 0. Trong
trạng thái nghĩ ( không có thẻ đưa vào ) , thì sẽ không có ánh sáng Hồng Ngoại phản xạ .
Khi phát hiện vạch trắng thì có nghĩa là có thẻ đưa vào, Vi Điều Khiển sẽ đọc mã như
chương trình đã được nạp. Nếu đọc được liên tiếp 3 vạch mã : Trắng – Đen – Đen; có
nghĩa là đã đọc đúng chiều thẻ hoặc sẽ báo lỗi khi đọc được liên tiếp 3 vạch mã kết thúc
: Trắng – Đen – Trắng . Vì vậy , ta thấy chức năng chủ yếu của vạch mã Trắng đầu tiên
là nhận diện thẻ ; tức là nhận biết sự có thẻ trong khe hay không ; đồng thời cũng là
vạch mã báo bắt đầu một chu kỳ làm việc : đọc mã vạch, sau đó báo lỗi hay truyền dữ
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
S ơ đồ khối của AT89C51:
Hình 2.1 Sơ đồ khối Vi Điều Khiển AT89C51
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
15
INT1\ INT0\
OTHER
REGISTER
128 byte
RAM
128 byte
RAM
8051\8052
ROM
4K: 8031
4K: 8051
EPROM
4K:
AT89C51
EEPROM
INTERRUPT
CONTROL
SERIAL PORT
TIMER 0
TIMER 1
TIME 2 (8952)
CPU
OSCILATOR
BUS
CONTROL
a.Các Port:
* Port 0 :
- Port 0 là port có 2 chức năng, tập trung ở các chân 32 ÷ 39 của AT89C51.
Trong các thiết kế vi mô (cỡ nhỏ) không dùng bộ nhớ mở rộng, nó có chức năng như
các đường I/O. Đối với các thiết kế vĩ mô (cỡ lớn) có bộ nhớ mở rộng, nó được kết hợp
giữa bus địa chỉ và bus dữ liệu. Port 0 mang 8 bits (1 Byte) địa chỉ thấp .
* Port 1:
- Port 1 là port I/O trên các chân 1 ÷ 8. Các chân được ký hiệu P1.0, P1.1,
P1.2,... cho đến P1.7 . Có thể dùng cho giao tiếp với các thiết bị ngồi nếu cần. Port 1
không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên
ngồi.
* Port 2:
- Port 2 là 1 port có tác dụng kép trên các chân 21 ÷ 28 được dùng như các đường
xuất nhập hoặc là Byte cao địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
16
V C C _ 5 V
U 2
A T 8 9 C 5 1
3 1
1 9
1 8
9
1 2
1 3
1 4
1 5
1
2
3
X 2
R E S E T
P 3 . 2
P 3 . 3
P 3 . 4
P 3 . 5
P 1 . 0
P 1 . 1
P 1 . 2
P 1 . 3
P 1 . 4
P 1 . 5
P 1 . 6
P 1 . 7
P 0 . 0
P 0 . 1
P 0 . 2
P 0 . 3
P 0 . 4
P 0 . 5
P 0 . 6
P 0 . 7
P 2 . 0
P 2 . 1
P 2 . 2
P 2 . 3
P 2 . 4
P 2 . 5
P 2 . 6
P 2 . 7
P3.3
P3.4
P3.5
P3.6
P3.7
INT0\
INT1\
T0
T1
WR\
RD\
Ngõ vào ngắt cứng thứ 0.
Ngõ vào ngắt cứng thứ 1.
Ngõ vào của TIMER/COUNTER thứ 0.
Ngõ vào của TIMER/COUNTER thứ 1.
Tín hiệu ghi dữ liệu lên bộ nhớ ngồi.
Tín hiệu đọc bộ nhớ dữ liệu ngồi.
Bảng 2.1 Các chức năng điều khiển ở Port 3
b.Các ngõ tín hiệu điều khiển :
* Ngõ tín hiệu PSEN (Program store enable) :
- PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương
trình mở rộng thường được nói đến chân OE (Output Enable) của EPROM, cho phép
đọc các byte mã lệnh.
- PSEN ở mức thấp trong thời gian Microcontroller AT89C51 lấy lệnh. Các mã
lệnh của chương trình được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi
lệnh bên trong AT89C51 để giải mã lệnh. Khi AT89C51 thi hành chương trình trong
ROM nội PSEN sẽ ở mức logic 1; nghĩa là không tích cực nữa.
* Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :
- Khi AT89C51 truy xuất bộ nhớ bên ngồi, Port 0 có chức năng là Byte địa chỉ
* Chân 40 (Vcc) được nối lên nguồn 5V và chân 20 thì nối Mass.
III. CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN:
1. Tổ chức bộ nhớ:
FFFF FFFF
FF
00
On - Chip 0000 0000
Memory
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
18
CODE
Memory
Enable
via
PSEN
DATA
Memory
Enable
via
RD & WR
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
External Memory
Hình 2.3 Cấu trúc bộ nhớ trong và ngồi
- Bộ nhớ trong AT89C51 bao gồm ROM và RAM. RAM trong AT89C51 bao
gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các
bank thanh ghi và các thanh ghi chức năng đặc biệt.
- AT89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt
cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong AT89C51
nhưng AT89C51 vẫn có thể kết nối với 64KB bộ nhớ Chương Trình và 64KB Dữ Liệu.
Hai đặc tính cần chú ý la ø:
Địa chỉ
byte
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18 8D không được địa chỉ hố bit TH1
22 17 16 15 14 13 12 11 10 8C không được địa chỉ hố bit TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B không được địa chỉ hố bit TL1
20 07 06 05 04 03 02 01 00 8A không được địa chỉ hố bit TL0
1F Bank 3 89 không được địa chỉ hố bit TMOD
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON
17 Bank 2 87 không được địa chỉ hố bit PCON
10
0F Bank 1 83 không được địa chỉ hố bit DPH
08 82 không được địa chỉ hố bit DPL
07 Bank thanh ghi 0 81 không được địa chỉ hố bit SP
00 (mặc định cho R0 -R7) 88 87 86 85 84 83 82 81 80 P0
RAM NỘI CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT
Bảng 2.2 Tóm tắt các vùng nhớ AT89C51.
RAM đa dụng:
- Mặc dù trên hình vẽ cho thấy chỉ có 80 byte RAM đa dụng chiếm các địa chỉ từ
30H đến 7FH, nhưng 32 byte dưới từ 00H đến 1FH cũng có thể dùng với mục đích
tương tự (dù rằng các địa chỉ này đã có mục đích khác ) .
- Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu địa
chỉ trực tiếp hoặc gián tiếp.
RAM có thể truy xuất từng bit:
- AT89C51 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có chứa các Byte
có chứa các địa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm thanh ghi có
chức năng đặc biệt.
- Ý tưởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của các
- Ngoại trừ thanh ghi A có thể được truy xuất ngầm như đã nói, đa số các thanh
ghi có chức năng đặc biệt SFR đều có thể được địa chỉ hóa từng bit hoặc byte.
• Thanh ghi từ trạng thái chương trình (PSW: Program Status Word):
Từ trạng thái chương trình ở địa chỉ D0H được tóm tắt như sau:
BIT Ký Hiệu Địa Chỉ Mô Tả
PSW.7 CY D7H Cary Flag
PSW.6 AC D6H Auxiliary Cary Flag
PSW.5 F0 D5H Flag 0
PSW4 RS1 D4H Register Bank Select 1
PSW.3 RS0 D3H Register Bank Select 0
00=Bank 0 ; address 00H÷07H
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
21
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
01=Bank 1 ; address 08H÷0FH
10=Bank 2 ; address 10H÷17H
11=Bank 3 ; address 18H÷1FH
PSW.2 OV D2H Overlow Flag
PSW.1 - D1H Reserved
PSW.0 P DOH Even Parity Flag
Bảng 2.3 Thanh Ghi PSW
Chức năng từng bit của PSW:
• Cờ Carry CY (Carry Flag):
- Cờ nhớ có tác dụng kép. Thông thường nó được dùng cho các lệnh tốn học :
C=1 nếu phép tốn cộng có sự tràn hoặc phép trừ có mượn và ngược lại C= 0
nếu phép tốn cộng không tràn và phép trừ không có mượn.
• Cờ Carry phụ AC (Auxiliary Carry Flag):
- Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được Set
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, ta sẽ có
AC= 0.
A và B, rồi trả về kết quả 16 bit trong A (Byte cao) và B (Byte thấp). Lệnh DIV AB ➜
lấy A chia B, kết quả nguyên đặt vào A, số dư đặt vào B.
- Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục đích.
Nó là những bit định vị thông qua những địa chỉ từ 0F0H ÷ 0F7H.
• Con trỏ Ngăn xếp SP (Stack Pointer) :
- Con trỏ ngăn xếp là một thanh ghi 8 bit ở địa chỉ 81H. Nó chứa địa chỉ của Byte
dữ liệu hiện hành trên đỉnh ngăn xếp. Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ
liệu vào ngăn xếp (PUSH) và lấy dữ liệu ra khỏi ngăn xếp (POP). Lệnh cất dữ liệu vào
ngăn xếp sẽ làm tăng SP lên 1 trước khi ghi dữ liệu và dữ liệu sẽ được lấy ra khỏi ngăn
xếp trước khi làm giảm SP đi 1 ngay khi lệnh lấy dữ liệu được thực thi. Ngăn xếp của
IC họ MSC – 51 được giữ trong RAM nội và giới hạn các địa chỉ có thể truy xuất bằng
địa chỉ gián tiếp là 128 Byte đầu của AT89C51.
- Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60H, các lệnh sau đây được
dùng:
MOV SP , #5F
- Với lệnh trên thì ngăn xếp của AT89C51 chỉ có 32 Byte vì địa chỉ cao nhất của
RAM trên chip là 7FH. Sở dĩ giá trị 5FH được nạp vào SP vì SP tăng lên 60H trước khi
cất Byte dữ liệu.
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
23
LUẬN VĂN TỐT NGHIỆP 01 - 2002 THIẾT KẾ VÀ THI CÔNG MÁY CHẤM CÔNG
- Khi Reset AT89C51, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên
sẽ được cất vào ô nhớ ngăn xếp có địa chỉ 08H. Nếu phần mềm ứng dụng không khởi
động SP một giá trị mới thì bank thanh ghi1 có thể cả 2 và 3 sẽ không dùng được vì
vùng RAM này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực tiếp bằng
các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm bằng
lệnh gọi chương trình con ( ACALL, LCALL) và lệnh trở về RET để lưu trữ giá trị của
bộ đếm chương trì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ương trình con …
• Con trỏ dữ liệu DPTR (Data Pointer):
• Các thanh ghi ngắt (Interrupt Register):
- AT89C51 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi
Reset hệ thống và sẽ được cho phép bằng việc ghi vào thanh ghi cho phép ngắt (IE) ở
địa chỉ 0A8H. Xác định mức ưu tiên ngắt bằng thanh ghi IP . Cả hai đều được địa chỉ
hóa từng bit.
• Thanh ghi điều khiển nguồn PCON (Power Control Register):
- Thanh ghi PCON không có bit định vị. Nó ở địa chỉ 87H chứa nhiều bit điều
khiển. Thanh ghi PCON được tóm tắt như sau:
√ Bit 7 (SMOD) : Bit gấp đôi tốc độ Baud. Nếu được Set thì tốc độ Baud sẽ tăng
gấp đôi trong các Mode 1, 2, 3 của Port nối tiếp.
√ Bit 6, 5, 4 : Không có địa chỉ.
√ Bit 3 (GF1) : Bit cờ đa năng 1.
√ Bit 2 (GF0) : Bit cờ đa năng 2 .
√ Bit 1 (PD) : Set để khởi động Mode Power Down và mất tác dụng khi Reset
hệ thống .
√ Bit 0 (IDL) : Set để khởi động Mode Idle và chỉ thốt khi có ngắt hoặc Reset hệ
thống .
Các bit điều khiể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 dịch của CMOS.
3. Bộ nhớ ngồi (external memory) :
- AT89C51 có khả năng mở rộng bộ nhớ lên đến 64K Byte bộ nhớ chương trình
ngồi và 64K Byte bộ nhớ dữ liệu ngồi. Do đó có thể dùng thêm RAM và ROM nếu cần.
- Khi dùng bộ nhớ ngồi, Port0 không còn chức năng I/O nữa. Nó được kết hợp
giữa bus địa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để chốt Byte của bus
địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port2 được chọn là Byte cao của bus địa chỉ.
Truy xuất bộ nhớ mã ngồi (Accessing External Code Memory) :
- Bộ nhớ chương trình bên ngồi là bộ nhớ ROM được cho phép của tín hiệu
PSEN. Sự kết nối phần cứng của bộ nhớ EPROM như sau:
GVHD : Thầy LÊ QUANG THUẦN SVTH : ĐỖ TRÍ NHỰT – 49701036
25