Professional Documents
Culture Documents
ĐỒ ÁN MÔN HỌC
MÔN HỌC
HỆ THỐNG NHÚNG
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
................................................................................................................................................................................................................................
LỜI MỞ ĐẦU
Bộ môn Kỹ thuật máy tính 2 5/15/2022
ĐAMH Hệ Thống Nhúng GVHD Nguyễn Văn Huy
- Ngành điện tử ngày càng phát triển,đã dần thay thế các thiết bị thô sơ,bằng
các thiết bị điện tử có độ tự động rất cao,tiết kiệm công sức cho con người. Hiện
nay với sự phát triển của vi điều khiển thì chỉ cần động tác nhẹ nhàng các thiết bị
đã được điều khiển một cách nhanh chống
- Người ta thường nói : “Học đi đôi với hành” , vì thế để tạo nền tảng , tăng
thêm hiểu biết cũng như đi vào thực tế em đã lựa chọn đề tài “Chuông Báo Tiết
Học”.
- Trong quá trình thực hiện đề tài này , Chúng em đã rất cố gắng ,
nhưng có lẽ do vốn kiến thức cũng như những nguyên nhân chủ quan khác mà đề
tài chắc chắn sẽ không tránh khỏi thiếu sót . Chúng em rất mong sự đóng góp ý
kiến, phê bình và hướng dẫn thêm của thầy cô và các bạn đọc.
MỤC LỤC........................................................................................................Trang
A. PHẦN MỞ ĐẦU...............................................................................................6
1. Đặt vấn đề....................................................................................................6
2. lý do chọn đề tài...........................................................................................6
3. giới hạn của đề tài.......................................................................................6
3.1. Phân tích.................................................................................................6
3.2. Xây dựng phương án.............................................................................7
3.3. Phạm vi của đồ án và phương hướng mở rộng...................................7
B. PHẦN NỘI DUNG...........................................................................................8
CHƯƠNG I : SƠ ĐỒ KHỐI..................................................................................8
1. Sơ đồ tổng quát............................................................................................8
2. Chức năng các khối.....................................................................................8
2.1 Khối nguồn.................................................................................................8
2.2. Chức năng của khối RTC........................................................................8
2.3. Chức năng của khối điều chỉnh...............................................................9
2.4. Khối âm thanh..........................................................................................9
2.5. Khối hiển thị.............................................................................................9
2.6. khối xử lý (vi điều khiển 89c51)..............................................................9
CHƯƠNG II: THIẾT KẾ HỆ THỐNG..............................................................10
1. Sơ đồ callgraph..........................................................................................10
2. Sơ đồ đặc tả................................................................................................11
3. các linh kiện sử dụng trong mạch............................................................11
3.1 giới thiệu cấu trúc của vi điều khiển MCS-51......................................11
3.1.1. Mô tả các chân.................................................................................14
3.1.2 Các chế độ đặc biệt...........................................................................17
3.1.3 Các bít khoá bộ nhớ chương trình..................................................19
3.1.4 .Tóm tắt tập lệnh của AT89c51.......................................................20
3.2. Tìm hiểu IC thời gian thực DS1307......................................................20
Mục đích:
- Hệ thống báo chuông tại các thời điểm vào, ra của tiết học của trường.
+ Thời gian kéo dài chuông vào tiết và nghỉ giải lao là khác nhau.
Yêu cầu:
-Có khả năng đưa vào ứng dụng trong thực tế.
Với thực tế bài toán này chúng ta phải thiết kế 2 thành phần cơ bản:
- Mỗi ngày có 2 buổi học mỗi buổi kéo dài 6 tiết. Thời gian của mỗi tiết là
45 phút.Thời gian nghỉ giải lao là 5 phút.Sau tiết thứ 3 của mỗi buổi nghỉ giải lao
10 phút từ đó ta xây dựng được thời khóa biểu như sau:
-Chức năng của khối này là sử dụng ngắt của 89c51 để yêu cầu việc điều
chỉnh time theo ý của người sử dụng , cài đặt time ban đầu cho đồng hồ thời gian
thực RTC.Tác động bởi các phím bấm (BUTTON).
- Khối này thực chất là LCD 16x2 để hiển thị time và các thông tin
mà lập trình viên cần hiển thị .
2.6. khối xử lý (vi điều khiển 89c51)
-Vi điều khiển 89C51 là trung tâm xử lý các thông tin của mạch.
Cụ thể là :
AT89C51 đảm nhiệm việc đọc thời gian từ DS1307, chuyển
đổi dữ liệu qua lại giữa RTC với LCD để có thể hiển thị lên
LCD , đông thời cập nhật time từ DS1307
Điều khiển LCD
Kiểm tra phím bấm
Điều khiển loa
- Nói tóm lại là, VĐK làm nhiệm vụ đọc time trên DS1307 sau đó nó
kiểm tra xem ngắt được tác động hay không? nếu có thì điều chỉnh time, hiển thị
time lên LCD , kiểm tra xem giờ hiện tại có bằng giờ báo chuông hay không ? nếu
có thì gọi chương trình điều khiển chuông kêu !
Chương
Trình Điều
Khiển
Module Xử
Module xử lý
Lý Điều
chương trình
Chỉnh
Hình 2: Sơ đồ Callgraph
2. Sơ đồ đặc tả
Bật/Tắt
Hiển Thị Chuông
KIỂM TRA
Tác THỜI GIAN
Gửi dữ
động
liệu
Điều
khiển
Kiểm Tra
Điều Chỉnh thời gian
thực
Hình 3: Sơ đồ Đặc tả
3. các linh kiện sử dụng trong mạch
3.1 giới thiệu cấu trúc của vi điều khiển MCS-51
-Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương
tự như nhau. Ở đây giới thiệu IC8951 là một họ IC vi điều khiển do hãng Intel của
Mỹ sản xuất. Chúng có các đặc điểm chung như sau:
+ 4K Bytes Flash rom
+ 128 Bytes Ram
+ 4 port 8 bit
+ 2 bộ định thời 16 bit
+ Có port nối tiếp
+ Có thể mở rộng bộ nhớ chương trình ngoài 64 K Byte
+ Bộ xử lý bit
- AT89C51 có các đặc trưng cơ bản như sau: 4 K byte Flash, 128 byte
RAM, 32 đường xuất nhập, hai bộ định thời/đếm 16-bit, một cấu trúc ngắt hai mức
ưu tiên và 5 nguyên nhân ngắt, một port nối tiếp song công, mạch dao động và tạo
xung clock trên chip.
- AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần số giảm xuống
0 vaứ hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng phần mềm. Chế
độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định thời/đếm, port nối
U1
tiếp và hệ thống ngắt tiếp tục hoạt động.
39 40
P0.0/AD0 VCC
- Chế độ nguồn giảm duy trì nội dung của RAM 38
37 P0.1/AD1 21
36 P0.2/AD2 P2.0/A8 22
P0.3/AD3 P2.1/A9
nhưng không cho mạch dao động cung cấp xung clock 35
34 P0.4/AD4 P2.2/A10
23
24
33 P0.5/AD5 P2.3/A11 25
nhằm vô hiệu hoá các hoạt động khác của chip cho đến 32 P0.6/AD6
P0.7/AD7
P2.4/A12
P2.5/A13
26
27
1 P2.6/A14 28
khi có reset cứng tiếp theo. 2 P1.0
P1.1
P2.7/A15
3 10
4 P1.2 P3.0/RXD 11
5 P1.3 P3.1/TXD 12
6 P1.4 P3.2/INT0 13
7 P1.5 P3.3/INT1 14
8 P1.6 P3.4/T0 15
P1.7 P3.5/T1 16
19 P3.6/WR 17
18 XTAL1 P3.7/RD
XTAL2 30
31 ALE/PROG 29
9 EA/VPP PSEN 20
RST GND
AT89C51
- Vcc (40)
Chân cung cấp điện (5V)
- GND (20)
Chân nối đất (0V)
- Port 0 (32-39:
Port 0 là port xuất nhập 8-bit hai chiều. Port 0 còn được cấu hình làm bus
địa chỉ (byte thấp) và bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu ngoài
và bộ nhớ chương trình ngoài. Port 0 cũng nhận các byte mã trong khi lập trình
cho Flash và xuất các byte mã trong khi kiểm tra chương trình (Các điện trở kéo
lên bên ngoài được cần đến trong khi kiểm tra chương trình).
- Port 1(1-8) : Port 1 là port xuất nhập 8-bit hai chiều. Port 1 cũng nhận byte
Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình Flash và kiểm
tra chương trình.
- RST (9)
Ngõ vào reset. Mức cao trên chân này trong 2 chu kỳ máy trong khi bộ dao
động đang hoat động sẽ reset AT89C51.
RST
Hình 7: Mạch reset tác động bằng tay và tự động reset khi khởi động máy
- ALE/ (30)
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy xuất bộ
nhớ ngoài. Chân này cũng làm ngõ vào xung lập trình ( ) trong thời gian
lập trình cho Flash.
Khi hoạt động bình thường, xung ngõ ra ALE luôn có tần số không đổi là
1/6 tần số của mạch dao động, có thể được dùng cho các mụch đích định thời từ
bên ngoài vµ tạo xung clock. Tuy nhiên, lưu ý là một xung ALE sẽ bị bỏ qua trong
mỗi một chu kỳ truy xuất bộ nhớ dữ liệu ngoài.
Khi cần, hoạt động ALE có thể được vô hiệu hoá bằng cách set bit 0 của
thanh ghi chức năng đặc biệt có địa chỉ 8Eh. Khi bit này được set, ALE chỉ tích
cực trong thời gan thực hiện lệnh MOVX hoặc MOVC. Ngược lại, chân này sẽ
được kéo lên cao. Việc set bit không cho phép hoạt động chốt byte thấp của địa chỉ
sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương trình
ngoài.
- /Vpp (31): (External Access Enable) là chân cho phép truy xuất
bộ nhớ chương trình ngoài (bắt đầu từ địa chỉ từ 0000H đến FFFFH).
= 0 cho phép truy xuất bộ nhớ chương trình ngoài, ngỵc l¹i =1 sẽ
thực thi chương trình bên trong chip
Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập trình Flash
(khi đó ®iƯn áp lập trình 12V được chọn).
- XTAL1 và XTAL2
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại đảo của mạch
dao động, được cấu hình để dùng như một bộ dao động trên chip.
Không có yêu cầu nào về chu kỳ nhiệm vụ của tín hiệu xung clock bên ngoài do
tín hiệu này phải qua một flip-flop chia hai trước khi đến mạch tạo xung clock bên
trong, tuy nhiên các chi tiết kỹ thuật về thời gian mức thấp và mức cao, điện áp
cực tiểu và cực đại cần phải được xem xét.
- Trong chế độ này, mạch dao động ngừng hoạt động và lệnh yêu cầu chế độ
nguồn giảm là lệnh sau cùng được thực thi. RAM trên chip và các thanh ghi chức
năng đặc biệt vẫn duy trì các giá trị của chúng cho đến khi chế độ nguồn giảm kết
thúc. Chỉ có một cách ra khỏi chế độ nguồn giảm, đó là reset cứng. Việc reset sẽ
xác định lại các thanh ghi chức năng đặc biệt nhưng không làm thay đổi RAM trên
chip. Việc reset không nên xảy ra (chân reset ở mức tích cực) trước khi Vcc được
khôi phục lại mức điện áp bình thường và phải kéo dài trạng thái tích cực của chân
reset đủ lâu để cho phép mạch dao động hoạt động trở lại và đạt trạng thái ổn định.
-Trạng thái của các chân trong thời gian tồn tại chế độ nghỉ va chế độ nguồn
giảm được cho trong bảng sau:
Bộ nhớ
PORT
Chế độ Chương ALE PSEN PORT 1 PORT 2 PORT 3
O
trình
Hình 9: Sơ đồ DS1307
• DS1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thời
gian và ngày tháng với 56 bytes SRAM. Địa chỉ và dữliệu được truyền nối tiếp qua
2 đường bus 2 chiều. Nó cung cấp thông tin về giờ,phút,giây ,thứ,ngày ,tháng,
năm.Ngày cuối tháng sẽ tự động được điều chỉnh với các tháng nhỏ hơn 31
ngày,bao gồm cả việc tự động nhảy năm. Đồng hồ có thể hoạt động ở dạng 24h
hoặc 12h với chỉ thị AM/PM. DS1307 có một mạch cảm biến điện áp dùng để dò
các điện áp lỗi và tự động đóng ngắt với nguồn pin cung cấp.
• DS 1307 hoạt động với vai trò slave trên đường bus nối tiếp. Việc truy cập được
thi hành với chỉ thị START và một mã thiết bị nhất định được cung cấp bởi địa chỉ
các thanh ghi. Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi chỉ thị
STOP được thực thi.
Chân này cũng được thiết kế theo kiểu cực máng hở vì vậy nó cũng cần có
một điện trở kéo trong. Chân này sẽ hoạt động khi cả Vcc và Vbat được
cấp.
• X1,X2: được nối với một thạch anh tần số 32,768kHz.Là một mạch tạo
dao động ngoài , để hoạt động ổn định thì phải nối thêm 2 tụ 33pF
• Cũng có DS1307 với bộ tạo dao động trong tần số 32,768kHz, với cấu
hình này thì chân X1 sẽ được nối vào tín hiệu dao động trong còn chân X2
thì để hở
3.2.3 Sơ đồ địa chỉ RAM và RTC
• Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte
thanh ghi thích hợp. thời gian và ngày tháng được thiết lập cũng thông qua
các byte thanh ghi này bằng cách viết vào đó những giá trị thích hợp. nội
• DS1307 có thể chạy ở chế độ 24h cũng như 12h. Bit thứ 6 của thanh ghi
hours là bit chọn chế độ 24h hoặc 12h. khi bit này ở mức cao thì chế độ 12h
được chọn. ở chế độ 12h thì bit 5 là bit AM/PM với mức cao là là PM. ở chế
độ 24h thì bit 5 là bit chỉ 20h(từ 20h đến 23h).
3.3 Giới thiệu LCD
-LCD được giới thiệu ở đây 14 chânn (hình dưới). Chức năng các chân
được
cho trong bảng dưới:
Các chân điều khiển việc đọc và ghi LCD bao gồm RS, R/W và EN.
RS (chân số 3): Chân lựa chọn thanh ghi (Select Register), chân này cho phép
lựa chọn 1 trong 2 thanh ghi IR hoặc DR để làm việc. Vì cả 2 thanh ghi này đều
được kết nối với các chân Data của LCD nên cần 1 bit để lựa chọn giữa chúng.
Nếu RS=0, thanh ghi IR được chọn và nếu RS=1 thanh ghi DR được chọn. Chúng
ta đều biết thanh ghi IR là thanh ghi chứa mã lệnh cho LCD, vì thế nếu muốn gởi 1
mã lệnh đến LCD thì chân RS phải được reset về 0. Ngược lại, khi muốn ghi mã
ASCII của ký tự cần hiển thị lên LCD thì chúng ta sẽ set RS=1 để chọn thanh ghi
DR. Hoạt động của chân RS được mô tả trong hình 5.
R/W (chân số 4): Chân lựa chọn giữa việc đọc và ghi. Nếu R/W=0 thì dữ liệu
sẽ được ghi từ bộ điều khiển ngoài (vi điều khiển AVR chẳng hạn) vào LCD. Nếu
R/W=1 thì dữ liệu sẽ được đọc từ LCD ra ngoài. Tuy nhiên, chỉ có duy nhất 1
trường hợp mà dữ liệu có thể đọc từ LCD ra, đó là đọc trạng thái LCD để biết LCD
có đang bận hay không (cờ Busy Flag - BF). Do LCD là một thiết bị hoạt động
tương đối chậm (so với vi điều khiển), vì thế một cờ BF được dùng để báo LCD
đang bận, nếu BF=1 thì chúng ta phải chờ cho LCD xử lí xong nhiệm vụ hiện tại,
đến khi nào BF=0 một thao tác mới sẽ được gán cho LCD. Vì thế, khi làm việc với
Text LCD chúng ta nhất thiết phải có một chương trình con tạm gọi là wait_LCD
để chờ cho đến khi LCD rảnh. Có 2 cách để viết chương trình wait_LCD. Cách 1
là đọc bit BF về kiểm tra và chờ BF=0, cách này đòi hỏi lệnh đọc từ LCD về bộ
điều khiển ngoài, do đó chân R/W cần được nối với bộ điều khiển ngoài. Cách 2 là
-Để hiển thị chữ cái và con số, mã ASCII của các chữ cái từ A đến Z, a
đến z và các
con số tư 0 – 9 được gứi tới các chân D0 – D7 khi RS = 1.
-Các mã lệnh được gửi tới LCD để xóa màn hình hoặc đưa con trỏ về
đầu d ng…(
được liệt kê trên bảng trên) thông các chân D0 – D7.
-Có thế sử dụng RS = 0 để kiểm tra bit cờ bận xem LCD đã sẵn sàng
nhận thông tin
chưa. Khi R/W = 1 v RS = 0: Nếu D7 = 1 ( cờ bận bằng 1) c nghĩa LCD đang bận
các công việc bên trong và sẽ không nhận thông tin, nếu D7 = 0 sẵn sàng nhận
thông tin mới. Trong mọi trường hợp cần kiểm tra cờ bận trước khi ghi bất kì dữ
liệu nào lên LCD.
Các thanh ghi
-Thanh ghi IR: Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng.
chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR.
- Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng
RAM DDRAM hoặc CGRAM ( ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng
RAM này gửi ra cho MPU (ở chế độ đọc).
-Cờ báo bận BF: (Busy Flag)Khi đang thực thi các hoạt động bên trong,
LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF( thông qua chân DB7 khi có
thiết lập RS=0, R/W=1) lên để cho biết nó đang “bận”.
-Bộ đếm địa chỉ AC : (Address Counter) Khi một địa chỉ lệnh được nạp
vào thanh ghi IR, thông tin được nối trực tiếp cho 2 vùng RAM (việc chọn lựa vùng
RAM tương tác đã được bao hàm trong mã lệnh).
Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị. Bộ
nhớ LCD Vùng RAM hiển thị DDRAM : (Display Data RAM)
*Module này không chiếm khối Digital, để chọn module này ta chỉ cần click
chọn trong mục Misc Digital
Module LCD được nối tới Port 2.
Các hàm API:
Bộ môn Kỹ thuật máy tính 30 5/15/2022
ĐAMH Hệ Thống Nhúng GVHD Nguyễn Văn Huy
void LCD_Start(void); void LCD_Init(void); void LCD_Position(BYTE bRow,
BYTE bCol); void LCD_PrString(CHAR * sRamString);
void LCD_PrCString(const char * sRomString);
void LCD_PrHexByte(BYTE bValue); void LCD_PrHexInt(INT iValue);
DE TAI : THIET KE MACH CHUONG BAO LOP HOC KHOI HIEN THI
+5VDC
LS1
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
SPEAKER
E
SPEAKER KHOI TAO DAO DONG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
+220V
+12V U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
49%
+5VDC P0.2/AD2
18 36
XTAL2 P0.3/AD3
RL1 P0.4/AD4
35
D1 12V P0.5/AD5
34
DIODE 33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
Q1 30
ALE P2.4/A12
25
BC547 31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
R1(2)
V=0.0199005
R1 4
P1.3 P3.3/INT1
13
5 14
P1.4 P3.4/T0
10 6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
80C51
1
2
3
4
5
6
7
8
DEC_KEY
5
INC_KEY
SDA
- Khi đã đảm bảo cấp nguồn cho các mạch ổn định , mạch sẽ hoạt đông
như sau:
Ban đầu khi khởi động nó sẽ thực hiện việc đọc dữ liêu treeb DS1307 và hiển thị
ngày giờ hiện tại lên LCD.
- Trong quá trình time hiện tại được hiển thị trên LCD mà ta thấy thì vi
điều khiển luôn thực hiển kiểm tra (lặp lại việc kiểm tra ) time hiện tại xem xem có
trùng với mốc thời gian vào tiết học hay kết thúc tiết học hay không ? Nếu có , thì
nhảy tới chương trình báo chuông và đổ chuông báo , thời gian chuông dài hay
ngắn có thể thay đổi trên code, là do người lập trình thiết lập, thiết lập mốc thời
gian theo ý muốn. Tức là, cứ thỏa mãn điều kiện time hiện tại bằng với time hẹn
trước sẽ có chuông reo.
- Sau khi đã thiết kế sơ đồ khối của từng khối chúng ta bắt đầu đi thiết kế sơ
đồ nguyên lý cho từng khối như sau:
2. Khối nguồn
- Nguồn cung cấp cho toàn mạch là +5v dc.Do đó mạch nguồn chỉ cần sử
dụng vi mạch ổn áp 7805 với dòng 0.5 A. Mạch được thiết kế như sau
D2
J1 S2 U4
- + 1 3
1 VIN VOU T VC C
GND
2 c ong tac
3 D1
d io d e c a u C1 LM7805
2
LED power
R2
220
- Đối Với role ta sử dụng nguồn nuôi riêng 12 V. Có thể điều chế theo nhiều
cách khác nhau.
- Đối vớ chuông ta sử dụng nguồn 220 mắc riêng rẽ
E E
W
S
0
1
2
3
4
5
6
7
R
R
D
D
0D
1D
2D
3D
4D
6D
V
V
V
5K
R 7 A
1
2
3
4
5
6
7
8
9
5v
1
1
1
1
1
1
1
R E S I S TO R VAR R 8
5v
4. Khối xử lý AT89C51
- Sử dụng ic số là một bất lợi cho quá trình thiết kế từ việc thiết kế, kết nối
cho tới chọn linh kiện và khắc phục nhiễu.
Một lựa chọn để khắc phục nhược điễm của ic số là dùng bộ vi điều khiển
AT89C51 với dòng điện tiêu thụ thấp và có thể lập trình được
Vi điều khiển sử dụng thạnh anh dao động la 12Mhz. Nút ấn kết hợp với tụ C để
thực hiện reset
39 21
38 P0.0/AD 0 P 2 .0/A 8 22
37 P0.1/AD 1 P 2 .1/A 9 23
36 P0.2/AD 2 P2.2/A10 24
35 P0.3/AD 3 P2.3/A11 25
34 P0.4/AD 4 P2.4/A12 26
33 P0.5/AD 5 P2.5/A13 27
32 P0.6/AD 6 P2.6/A14 28
P0.7/AD 7 P2.7/A15
1 10
2 P1.0 P 3 . 0 / R XD 11
3 P1.1 P 3 . 1 / TXD 12
4 P1.2 P 3 . 2 / I N T0 13
5 P1.3 P 3 . 3 / I N T1 14
6 P1.4 P 3 . 4 / T0 15
7 P1.5 P 3 . 5 / T1 16
C1 8 P1.6 P3.6/W R 17
P1.7 P3.7/R D
19 30
Y1 18 XTA L 1 A L E /P R O G 29
LO
CA
C 2P XTA L 2 PSEN
C R Y S TA L 31
9 E A /V P P
C3 R ST
C AP
1 4 A T8 9 C 5 1
R1
0
2 3
R4 R5
U5 D S 1307
1 8
X1 VC C
Y1 2 6
X2 SC L
5
3 SD A
VBAT S Q W /O U T 7
GN D
3V B T1
4
6. khối thao tác
-Sử dụng nút nhấn để tạo tín hiệu vào để điều chỉnh thời gian .Nút nhấn
được kết nối vối module giao tiếp để tiết kiệm chân và dơn giản khi thực hiện ,và 1
chân nút nhấn treo xuống mass để tạo sự thay đổi tín hiệu khi nhấn nút.
dec _k e y g ia m
in c _ k e y tang
m enu m enu
RL1
D1 12V
DIODE
Q1
BC547
R1(2)
Bắt Đầu
Set giờ
Yes
No
Tác Động Phím
Bám
Set
ngay,tháng,năm,thứ
No
Up
No Kiểm tra time =time đổ
=?
chuông Yes
Đổ Chuông
Đặt gt cho RTC
No
Down=
?
Yes
yes
Đặt gt cho RTC Giảm gt ô nhớ
1
/*===================================================*/
/*=======Khai bao bien ========*/
bit flag=0,aon=0,aoff=0;
void main()
{
alarm_port=0;
LCD_INI(); //khoi tao cho LCD
rtc_check();//kiêm tra RTC
Bộ môn Kỹ thuật máy tính 39 5/15/2022
ĐAMH Hệ Thống Nhúng GVHD Nguyễn Văn Huy
disp_intro();//hien thi time len LCD
ENABLE_INT//cho phep ngat
wrt_cmd(0x1);//xoa man hinh LCD
wrt_cmd(0x1);
start_rtc();//dieu kien START cho RTC
send_adr(0xd0);//dia chi ghi cho RTC
send_adr(0x00);//gui dia chi bat dau
start_rtc();
send_adr(0xd1);//gui dia chi doc RTC
recv_data();//nhan du lieu tu vi dieu khien
while(1)
{
start_rtc();
send_adr(0xd0);
send_adr(0x00);
start_rtc();
send_adr(0xd1);
recv_data();
disp_rtc();
if(_testbit_(flag)) //kiem tra co ngat
{
DISABLE_INT //cam ngat
rtc_set(); //goi chuong trinh set cho rtc
ENABLE_INT //cho phep ngat
flag=0; //xoa co ngat
}
aon=1;//dieu kien de luon so sanh time hen voi time hien tai
if(aon)
check_alarm(); // kiem tra
if(aoff) //bao chuong