ƯỜ Ạ Ọ Ậ Ỹ Ệ TR NG Đ I H C K THU T CÔNG NGHI P
KHOA ĐI N TỆ Ử
ộ Ậ Ỹ B môn: K THU T MÁY TÍNH
Ồ
Ọ
Đ ÁN MÔN H C
MÔN H CỌ
ệ ố
H th ng nhúng
ọ Nhóm sinh viên : Hoàng Ng c Tân
ễ ệ Nguy n Đăng Tu
ứ ọ Lê Đ c Tr ng
L pớ : 43S
ướ ẩ Giáo viên h ng d n ẫ : Th.S Tăng C m Nhung
Thái Nguyên – 2011
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
ậ ướ ủ * Nh n xét c a giáo viên h ẫ ng d n:
Thái Nguyên, Ngày...tháng 6 năm 2011.
ướ ẫ Giáo Viên h ng d n
ọ (Ký ghi rõ h tên)
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
............................................................................................................................................................................................................................
ủ ậ ấ * Nh n xét c a giáo viên ch m:
2
Thái Nguyên, Ngày...tháng 6 năm 2011.
Giáo Viên ch mấ
ọ (Ký ghi rõ h tên)
ụ ụ M c l c
ƯƠ ệ ố ả
5 NG 1: Kh o sát và phân tích h th ng ...................................... 19 ..................................................... :
CH 2.2.2.2.Quy trình Bottom-Up Quy trình Bottom-Up trong thực tế thường áp dụng trong các bài
toán chưa lựa chọn hay chưa tìm ra được giải pháp công nghệ. Mấu chốt của quy trình tập trung chủ yêu và quá trình thử nghiệm với hệ thống và tín hiệu thực, từ đó chọn ra giải pháp công nghệ và linh kiện phù hợp nhất cho bài toán. Sơ 19 .................. đồ tổng quát của quy trình như hình bên dưới.
3
ờ
ầ
L i nói đ u
ệ ứ ử ụ ề ể Ngày nay vi c ng d ng vi đi u khi n, vi x lý đang ngày càng phát
ể ộ ự ề ậ ậ ỹ tri n r ng rãi và thâm nh p ngày càng nhi u vào các lĩnh v c k thu t và
ệ ố ứ ụ ộ ờ ố đ i s ng xã h i. Tuy nhiên ng d ng cho các h th ng nhúng ngày nay
ỉ ừ ơ ạ ở ề ế ể ố ả không đ n gi n ch d ng l ấ đi u khi n đèn nh p nháy, đ m s ng i ườ i
ể ề ể ị ủ vào/ra, hi n th dòng thông báo trên matrix led hay đi u khi n ONOFF c a
ứ ạ ơ ở ớ ướ ấ ế ộ đ ng c … mà nó ngày càng tr nên ph c t p. Và v i xu h ng t t y u này
ệ ế ạ ớ ự ể ạ ạ ườ ẽ ủ cùng v i s phát tri n m nh m c a công ngh ch t o vi m ch, ng i ta
ứ ữ ể ề ạ ạ ơ ờ ấ đã t o ra nh ng vi đi u khi n có c u trúc m nh h n, đáp ng th i gian
ự ố ơ ề ể ẩ ơ ướ th c t ớ t h n, chu n hóa h n so v i các vi đi u khi n 8 bit tr c đây.
ớ ự ẽ ủ ể ạ ặ ọ ệ V i s phát tri n m nh m c a khoa h c, đ c bi t là ngành đi n t ệ ử ự , s
ệ ử ệ ứ ượ phát minh ra các linh ki n đi n t đã và đang ngày càng đáp ng đ c yêu
ệ ố Ư ể ệ ử ụ ệ ử ệ ủ ầ ủ c u c a các h th ng. u đi m c a vi c s d ng các linh ki n đi n t làm
ệ ố ạ ạ ấ ơ ơ ộ cho các h th ng linh ho t và đa d ng h n, giá thành th p h n và đ chính
xác cao h n.ơ
ầ ượ ọ ậ Sau g n 4 năm h c t p và nghiên c u ứ ở ườ tr ng, chúng em đã đ c làm
ế ớ ụ ể ớ ọ quen v i các môn h c chuyên ngành. Đ áp d ng lý thuy t v i th c t ự ế ọ h c
ượ ồ ọ ớ ỳ k này chúng em đ ầ ệ ố c giao đ án môn h c h th ng nhúng v i yêu c u
ồ ờ ự ự ồ ể ị ” “xây d ng đ ng h th i gian th c hi n th trên LED 7 thanh
ứ ế ế ệ ạ ả Tuy nhiên do ki n th c chuyên môn còn h n ch , tài li u tham kh o
ớ ạ ề ả ấ ầ có gi i h n nên còn x y ra nhi u sai sót. Chúng em r t mong mong th y và
ủ ạ ổ ồ ượ ơ ể ả các b n góp ý b sung đ b n đ án c a chúng em đ ệ c hoàn thi n h n và
ể ế ơ ọ ậ ế giúp chúng em hi u bi t h n trong quá trình h c t p ti p theo.
ả ơ Nhóm chúng em xin chân thành c m n!
4
ệ ề ự Nhóm th c hi n đ tài:
ọ Hoàng Ng c Tân
ễ ệ Nguy n Đăng Tu
ứ ọ Lê Đ c Tr ng
ệ ố
ả
NG 1: Kh o sát và phân tích h th ng ệ
ƯƠ CH ớ 1.1. Gi
i thi u chung.
ớ ệ ề ệ ố ờ 1.1.1. Gi ự i thi u v h th ng th i gian th c
ệ ố ữ ề ể ầ ờ Trong nh ng năm g n đây, các h th ng đi u khi n theo th i gian
ề ự ự ữ ộ ớ ự th c là m t trong nh ng lĩnh v c thu hút nhi u s chú ý trong gi ọ i khoa h c
ề ề ứ ề ấ ọ ờ nghiên c u v khoa h c máy tính. Trong đó, v n đ đi u hành th i gian
ự ấ ặ ệ ứ ụ ọ ộ ề ậ ị th c và v n đ l p l ch là đ c bi t quan tr ng. M t trong ng d ng quan
ệ ố ự ủ ọ ờ ượ ứ tr ng c a h th ng th i gian th c (RTS) đã và đang đ ộ ụ c ng d ng r ng
ề ả ấ ự ộ ệ ể rãi hi n nay là các dây truy n s n xu t t ề đ ng, robot, đi u khi n các thí
ự ộ ế ế ồ ồ ể ự ệ nghi m t đ ng, trong thi ị ờ t k đ ng h hi n th th i gian th c…Th h ế ệ
ứ ủ ệ ố ẽ ề ụ ế ể ố ng d ng ti p theo c a h th ng này s đi u khi n robot gi ng con ng ườ i,
ể ệ ề ể ệ ố h th ng ki m soát thông minh trong các nhà máy công nghi p, đi u khi n
ạ các tr m không gian…
ờ ệ ự ề ệ ố 1.1.2. Khái ni m v h th ng th i gian th c
ộ ệ ố ể ể ự ư ờ ộ M t h th ng th i gian th c (RTC) có th hi u nh là m t mô hình
ắ ủ ệ ố ụ ế ả ộ ỉ ử x lý mà tính đúng đ n c a h th ng không ch ph thu c vào k t qu tính
ụ ế ả ộ ờ toán logic mà còn ph thu c vào th i gian do k t qu này phát sinh ra.
ệ ố ự ế ế ả ờ ạ ằ ờ H th ng th i gian th c thi t k nh m cho phép tr l i l ế i các y u
ừ ế ị ứ ầ ộ ộ ố t kích thích phát sinh t các thi ờ t b ph n c ng trong m t ràng bu c th i
ị Ở ể ể ế ộ gian xác đ nh. đây ta có th hi u th nào là m t RTS (real time systems)
ộ ế ệ ờ ể ế ộ ự ằ b ng cách hi u th nào là m t ti n trình, m t công ngh th i gian th c.
ộ ố ữ ệ ỉ ượ ọ Nhìn chung trong nh ng RTS ch có m t s công vi c đ c g i là công
5
ứ ộ ự ệ ệ ẩ ấ ờ ộ ả vi c th i gian th c, các công vi c này có m t m c đ kh n c p riêng ph i
ấ ế ớ ự ự ả hoàn t ổ ủ ự ệ t. S thay đ i c a s ki n trong th gi ỗ ấ i th c x y ra r t nhanh, m i
ệ ử ự ệ ệ ế ả ộ ả ự ti n trình giám sát s ki n này ph i th c hi n vi c x lý trong m t kho ng
ả ọ ờ ộ ộ ờ th i gian ràng bu c g i là deadline, kho ng th i gian ràng bu c này đ ượ c
ắ ầ ở ờ ờ ị ấ ệ xác đ nh b i th i gian b t đ u và th i gian hoàn t ự t công vi c. Trong th c
ế ố ắ ả ả ấ ế t , các y u t ờ kích thích này x y ra trong th i gian r t ng n vào kho ng vài
ệ ố ả ạ ế ố ờ ố mili giây, th i gian mà h th ng tr l i y u t kích thích đó t ấ t nh t vào
ướ ộ ườ ụ ả ả ả kho ng d i m t giây, th ờ ng vào kho ng vài ch c mili giây, kho ng th i
ử ế ờ ồ ậ gian này bao g m th i gian ti p nh n kích thích, x lý thông tin và tr l ả ờ i
ộ ế ố ữ ầ kích thích. M t y u t ệ khác c n quan tâm trong RTS là nh ng công vi c
ự ệ ầ ầ ờ th i gian th c này có tu n hoàn hay không? Công vi c tu n hoàn thì ràng
ừ ệ ấ ộ ờ ỳ ị ị ầ bu c th i gian n đ nh trong t ng chu k xác đ nh, công vi c không tu n
ắ ầ ế ả ộ ớ ờ ệ hoàn x y ra v i ràng bu c th i gian vào lúc b t đ u và k t thúc công vi c,
ỉ ượ ộ ắ ầ ế ệ ị ràng bu c này ch đ c xác đ nh vào lúc b t đ u công vi c. Các bi n c ố
ệ ạ ầ ườ ậ ử ự ỹ kích ho t công vi c không tu n hoàn th ắ ng d a trên k thu t x lý ng t
ầ ứ ủ ệ ố c a h th ng ph n c ng.
ề ấ ạ ườ ượ ấ ừ ố V c u t o, RTS th ng đ c c u thành t các thành t chính sau:
ồ ờ ự ự ấ ồ ờ Đ ng h th i gian th c: Cung c p thông tin th i gian th c.
ế ố ộ ề ể ắ ả ỳ B đi u khi n ng t: Qu n lý các bi n c không theo chu k .
ộ ị ự ể ệ ả B đ nh hi u: Qu n lý các quá trình th c hi n.
ả ấ ộ B qu n lý tài nguyên: Cung c p các tài nguyên máy tính.
ộ ề ở ộ ự ể ệ ế B đi u khi n th c hi n: Kh i đ ng các ti n trình.
ố ể ượ ứ ầ ị Các thành t trên có th đ ầ c phân đ nh là thành ph n c ng hay ph n
ệ ố ử ụ ề ộ ườ m m tùy thu c vào h th ng và ý nghĩa s d ng. Thông th ng các RTS
ượ ế ợ ứ ầ ả ố ơ ề ầ ớ đ c k t h p vào ph n c ng có kh năng t t h n so v i ph n m m có
ứ ươ ứ ượ ệ ố ư ắ ch c năng t ng ng và tránh đ c chi phí quá đ t cho vi c t i u hóa
6
ọ ự ư ứ ẻ ề ầ ầ ph n m m. Ngày nay chi phí ph n c ng ngày càng r , ch n l a u tiên
ầ ứ ộ ướ ph n c ng là m t xu h ng chung.
ạ ệ ố ờ 1.1.3.Các lo i h th ng th i gian th c ự
ườ ượ ạ ờ Các RTS th ng đ ự ứ ệ ố c phân thành hai lo i H th ng th i gian th c c ng
ự ệ ề ố ờ (Hard reatime system) và H th ng th i gian th c m m(Soft reatime
system ):
ự ứ ệ ố ủ ờ ộ ả ệ ố H th ng th i gian th c c ng là h th ng mà các hành đ ng c a nó ph i
ờ ạ ộ ờ không bao gi ờ ạ ậ vi ph m các ràng bu c th i gian trong đó có th i h n l p
ả ế ệ ố ắ ượ ậ ắ ờ ạ ậ ị ủ ị l ch, h th ng ph i ti p nh n và n m b t đ c th i h n l p l ch c a nó t ạ i
ệ ố ể ọ ờ ỗ ế ặ ậ m i th i đi m. H th ng có l ờ ạ ệ i ho c sai sót trong vi c ti p nh n th i h n
ậ ọ ệ ạ ề ậ ấ ả ưở ả ẽ s gây ra h u qu nghiêm tr ng, thi t h i v v t ch t, gây nh h ấ ng s u
ờ ố ỏ ườ ế ậ ườ ớ ệ ố ế ứ đ n s c kh e, đ i s ng con ng i, th m chí ch t ng ờ i. V i h th ng th i
ự ứ ễ ố ộ ờ ữ ệ gian th c c ng d li u tr là không t ụ ề ệ ố t. M t ví d v h th ng th i gian
ự ứ ệ ố ệ ố ư ể ộ th c c ng là h th ng ki m soát không l u.Trong h th ng này, m t phân
ố ườ ấ ạ ờ ờ ợ ph i đ ng bay, th i gian c t cánh, th i gian h cánh không h p lý, không
ả ủ ể ạ ậ đúng lúc có th gây ra tai n n máy bay mà h u qu c a nó khó mà l ườ ng
tr ướ ượ c đ c.
ệ ố ự ề ờ ờ Ng ượ ạ c l ả ề ủ ệ ố i, h th ng th i gian th c m m th i gian tr v c a h th ng
ế ố ọ ườ ợ cho các y u t kích thích quan tr ng, tuy nhiên trong tr ộ ng h p ràng bu c
ả ề ủ ệ ố ứ ạ ờ ị ượ ớ ạ này b vi ph m, t c là th i gian tr v c a h th ng v t quá gi i h n tr ễ
ế ụ ệ ố ạ ộ ẫ ườ cho phép, h th ng v n cho phép ti p t c ho t đ ng bình th ng, không
ự ế ạ ạ quan tâm đ n các tác h i do s vi ph m này gây ra.
ả ườ ệ ế ặ ạ Trong c hai lo i này, máy tính th ự ng can thi p tr c ti p ho c gián
ế ế ị ậ ư ề ể ể ế ti p đ n các thi ể ự ạ ộ t b v t lý đ ki m soát cũng nh đi u khi n s ho t đ ng
ế ị ứ ộ ườ ủ c a thi t b này. Đ ng trên góc đ này ng ạ i ta chia các RTS ra làm hai lo i
sau:
7
ộ ử ể ầ ộ ề Embededed system: B x lý đi u khi n là m t ph n trong toàn b ộ
ế ị ượ ả ừ ế ố ứ ừ ườ thi t b , nó đ ấ ọ c s n xu t tr n gói t y u t c ng t nhà máy, ng i ta s ử
ế ề ế ủ ể ề ụ d ng không bi t v chi ti t c a nó mà thông qua các nút đi u khi n, các
ớ ệ ố ấ ố ượ ế ị ư ả b ng s . V i h th ng này, ta không th y đ c các thi t b nh trong máy
ườ ư tính bình th ề ng nh bàn phím, màn hình… mà thay vào đó là các nút đi u
ụ ể ả ặ ả ố ố ư khi n, các b ng s , các b ng s hay các màn hình chuyên d ng đ c tr ng
ặ ụ ộ ườ ử ụ ỉ ệ ấ ệ ố cho các h th ng, máy gi t là m t ví d . Ng i s d ng ch vi c b m nút
ươ ặ ệ ố ế ệ ả ộ ọ ch n ch ng trình gi t, xem k t qu qua h th ng đèn tín hi u…B vi x ử
ượ ậ ướ ắ lý trong Embeded system này đã đ c l p trình tr ặ c và g n ch t vào ngay
ừ ể ậ ả ấ ạ ươ t khi s n xu t và không th l p trình l ữ i nh ng ch ạ ng trình này ho t
ớ ệ ề ộ ậ ư ự ế ộ đ ng đ c l p, không có s giao ti p v i h đi u hành cũng nh không cho
ườ ử ụ ệ phép ng i s d ng can thi p vào.
ệ ố ự ữ ủ ứ ệ ạ ồ Lo i th hai là bao g m nh ng h th ng có s can thi p c a máy tính
ườ ể ể thông th ng. Thông qua máy tính ta hoàn toàn có th ki m soát cũng nh ư
ủ ể ề ạ ọ ộ ế ứ ệ ầ ố ị đi u khi n m i ho t đ ng c a thi ủ t b ph n c ng c a h th ng này.
ữ ươ ụ ụ ể ề ề ạ ấ Nh ng ch ề ng trình đi u khi n này có r t nhi u lo i, ph c v cho nhi u
ể ế ạ ụ ầ ợ m c đích khác nhau và có th vi t l ớ i cho phù h p v i yêu c u th c t ự ế .
ạ ệ ố ạ ộ ể ượ ả ầ Hi n nhiên thì lo i h th ng này ho t đ ng đ ộ ệ ề c ph i c n m t h đi u
ể ề ả ả ậ hành(HĐH) đi u khi n máy tính. HĐH này ph i có kh năng nh n bi ế t
ượ ế ị ứ ầ ả ấ đ c thi t b ph n c ng, có kh năng hoàn t ệ t công vi c trong gi ớ ạ i h n
ỗ ợ ứ ặ ờ ờ ự ả th i gian nghiêm ng t. HĐH này ph i là HĐH h tr x lý th i gian th c
Realtime operation system (RTOS)
ệ ố ộ ố ử ụ ự ế ự ả ờ * M t s hình nh s d ng h th ng th i gian th c dùng trong th c t
8
ế ị ử ụ ự ể ờ Hình 1.1: Thi t b s d ng đ theo dõi th i gian th c trong các ph ươ ng
ti nệ
ồ ệ ử ể ị ờ ồ Hình 1.2: Đ ng h đi n t ự hi n th th i gian th c
ề ệ ố ổ 1.2. T ng quan v h th ng
ử ụ ứ ụ ề ể ể ế ế ộ ồ Đây là ng d ng s d ng vi đi u khi n đ thi ồ ờ t k m t đ ng h th i
ự ể ầ ả ả ớ ị ề gian th c hi n th trên led 7 thanh, v i yêu c u đ m b o v :
ự ể ả + Tính th c thi cao, có kh năng phát tri n.
ề ấ ượ ả ệ ề ộ ả + Đ m b o v ch t l ỉ ng, đ chính xác cao, làm vi c lâu dài, b n b .
ế ễ ử ụ ễ ế ệ ễ ệ + Ti t ki m chi phí, linh ki n d ki m d s d ng và d dàng thay
ế ự ố ả th khi x y ra s c .
ả ưỡ ể ả ậ ữ ờ + Gi m thi u chi phí, th i gian v n hành, b o d ử ng và s a ch a.
ể ử ụ ồ ạ ồ ờ + Có th s d ng riêng (đ ng h v n niên xem gi , ngày tháng năm)
ể ử ụ ệ ố ẹ ắ hay có th s d ng chung ( l p vào các h th ng m ).
9
ề ệ ừ ầ ố ế ế ệ ố T các yêu c u trên v h th ng chúng ta thi t k h th ng theo
ướ ệ ố ử ụ ư ủ ể ờ ớ h ự ứ ng s d ng h th ng th i gian th c c ng v i các u đi m c a nó. Sau
ể ộ ớ ệ ơ ượ đây là m t vài đi m gi i thi u s l c:
ể ể ẻ ễ ử ụ ế ạ ị S d ng LED 7 đo n đ hi n th vì giá thành r , d tìm ki m.
ử ụ ự ụ ạ ờ ờ S d ng IC th i gian th c DS1307. IC này có tác d ng t o ra th i
ự ươ ố ồ ờ gian th c t ng đ i chính xác, bao g m gi ứ , phút, giây, th , ngày, tháng,
năm
ử ụ ề ể ọ S d ng h vi đi u khi n MCS51(Atmel).
ử ụ ị ố ượ ể S d ng IC ghi d ch ể 74HC138 đ tăng s l ề ng chân đi u khi n cho
ể ề vi đi u khi n.
10
ế ế ệ ố
ươ
t k h th ng
Ch
ng 2
: Thi
ể ơ ồ ổ 2.1. S đ t ng th
ố
ồ
Kh i ngu n
ố ể Kh i hi n thị
ạ
T o xung dao đ ngộ
Khối điều khiển trung tâm
ề
ể
Đi u khi n
Re s e t
ạ
ờ T o th i gian th cự
ủ ệ ố ơ ồ ổ Hình 2.1 : S đ t ng quát c a h th ng
ủ ơ ồ ổ ạ ộ Nguyên lý ho t đ ng c a s đ t ng th ố ể : Khi cho đi n áp qua kh i ệ
ề ể ồ ươ ể ẽ ề ngu n cho vi đi u khi n, khi đó ch ng trình trong vi đi u khi n s làm
ờ ộ ạ ệ ồ ộ ớ ầ ố ị vi c, đ ng th i b t o xung dao đ ng ạ t o xung nh p v i t n s 12MHz
ữ ệ ủ ạ ộ ế ộ ậ ờ ự cho VĐK ho t đ ng. Ch đ ghi và nh n d li u c a IC th i gian th c
ệ ề ể ề ượ ậ ư ớ đ a t i vi đi u khi n, các đi u ki n START và STOP đ ạ c nh n d ng
ắ ầ ề ế ặ ộ ỗ ủ khi b t đ u ho c k t thúc truy n m t chu i, lúc này các thanh ghi c a
ị ờ ự ậ ờ ờ ứ IC th i gian th c nh n giá tr th i gian th c ( ự gi , phút, giây, th , ngày,
tháng, năm)
ể ẽ ử ế ể ề ề ồ ờ ộ và g i đ n vi đi u khi n đ ng th i lúc này vi đi u khi n s gán m t giá
ị ươ ươ ự ồ ử ị ờ ể ố ị tr t ng đ ng giá tr th i gian th c r i g i ra kh i hi n th . Lúc này IC
ể ẽ ử ề ể ệ ế ố ố ị ị ghi d ch trong kh i đi u khi n s g i tín hi u đ n kh i hi n th . Các nút
ấ ụ ề ể ệ ề ố ờ ố ỉ n trong kh i đi u khi n có nhi m v đi u ch nh th i gian. Kh i Reset
ụ ư ệ ố ề ạ ệ ầ có nhi m v đ a h th ng v tr ng thái ban đ u.
11
2.1.1. ơ ồ ặ ả S đ đ c t ố các kh i
ố 2.1.1.1. Kh i ngu n ồ
ể ạ ệ ạ ẩ ấ ồ ố Đây là m ch dùng đ t o ra ngu n đi n áp chu n +5V c p cho kh i
ử ụ ể ề đi u khi n trung tâm s d ng IC7805.
ề ệ ầ ượ ế ổ Đ u vào là đi n áp xoay chi u sau khi đ ế c bi n đ i qua máy bi n
ế ư ể ệ ề ệ ầ ộ ộ th , đ a vào b Diode c u đ cho ra dòng đi n m t chi u( lúc này đi n áp
ả ừ ẽ ạ ằ n m trong kho ng t ồ ổ 710V). Sau khi đi qua IC n áp 7805 s t o ra ngu n
ệ ẩ ấ ạ đi n áp chu n +5V cung c p cho m ch.
ầ ầ ạ ổ ổ ầ IC n áp 7805: đ u vào > 7V đ u ra 5V, 500 mA. M ch n áp: c n
ế ề ể ẽ ể ề ồ ổ ị cho vi đi u khi n vì n u ngu n cho vi đi u khi n không n đ nh thì s treo
ụ ế ạ ặ ậ VĐK, không ch y đúng ho c reset liên t c th m chí là ch t chíp.
ố 2.1.1.2. Kh i Reset
ư ề ố ể ụ Kh i RESET có tác d ng đ a vi đi u khi n
ượ ấ ầ ề ạ v tr ng thái ban đ u. Khi nút Reset đ ệ c n đi n
ừ ượ ủ ố áp +5V t ồ ngu n đ c n i vào chân Reset c a vi
ể ề ượ ạ ấ ẳ đi u khi n đ ố c ch y th ng xu ng đ t lúc này
ệ ạ ộ ề ề ể ề ố đi n áp t ể ổ ộ i chân vi đi u khi n thay đ i đ t ng t v 0. Kh i đi u khi n
ế ượ ự ở ộ ổ ạ ạ ầ ậ nh n bi c s thay đ i này và kh i đ ng l t đ i tr ng thái ban đ u cho h ệ
th ng.ố
12
ố ề ể 2.1.1.3. Kh i đi u khi n:
ấ ồ G m 4 nút n:cancel, down, up, menu.
ấ ượ ộ ổ Khi 1 nút n đ ệ c tác đ ng làm thay đ i đi n
ể ừ ề ố ớ áp trên chân n i v i vi đi u khi n t +5V
ể ề ậ ố xu ng 0V. Lúc này vi đi u khi n nh n bi ế t
ượ ự ị ầ ổ ổ đ c s thay đ i và làm thay đ i giá tr đ u ra:
ế ộ ỉ ể ờ ể Nút menu: Đ chuy n ch đ ch nh th i gian.
ị ầ ề ỉ Nút up: Tăng giá tr c n đi u ch nh ++1.
ị ầ ề ả ỉ Nút down: Gi m giá tr c n đi u ch nh –1.
ề ỉ ạ Cancel: thoát tr ng thái đi u ch nh.
ộ ả ủ ị ỉ ớ ầ ầ ị IC 74HC138 là b gi mã đ a ch v i 3 đ u vào ( A,B,C) và 8 đ u ra ph đ nh
ự ầ ầ (Y0 đ n ế Y7 ). Nó có 3 đ u vào cho phép: 2 đ u vào tích c c th p ( ấ G2A,G2B) và
ộ ầ ấ ả ẽ ở ứ ủ ứ ự ầ m t đ u vào tích c c m c cao (G1). T t c các đ u ra c a 74HC138 s m c cao
ừ ở ứ ở ứ ầ tr khi G2A ấ m c th p và G1 m c cao. Khi các đ u vào G2A,G2B ở ứ ấ m c th p
ở ứ ẽ ượ ủ ầ ở ầ ế ị và G1 m c cao thì đ u ra c a 74HC138 s đ c quy t đ nh b i đ u vào .
ố ạ ộ 2.1.1.4. Kh i t o xung dao đ ng:
13
ụ ộ ộ ạ ạ Đây là b dao đ ng th ch anh có tác d ng t o
ớ ầ ố ạ ộ ị xung nh p v i t n s 12MHz cho VĐK ho t đ ng.
ầ ượ ố Hai đ u này đ c n i vào 2chân XTAL1 và
ủ XTAL2 c a VĐK.
ố ể ị 2.1.1.5. Kh i hi n th :
ể ố ồ ị Kh i hi n th bao g m các ơ LED 7 thanh đ n (Anode chung) có các
ủ ượ ố ầ đ u vào a,b,c,d,e,f,g c a các LED đ ố ớ ớ c n i song song v i nhau và n i v i
ừ ụ ể ủ các chân c a VĐK (t ị ạ chân P0P3) có tác d ng làm cho LED hi n th d ng
ầ ố ạ ủ ượ ố ớ ố s mong mu n. Và đ u còn l i c a 15 LED 7 thanh đ c n i v i 15 chân C
ố ớ ủ ủ ậ ủ c a transistor thu n và chân B c a transistor n i v i các PORT c a VĐK
ừ ủ ượ ố ớ ệ (t P0>P3), chân E c a transistor đ c n i v i +5V. VĐK làm nhi m v ụ
ề ể ả ờ ừ đi u khi n IC 74HC138 làm cho t ng LED sáng trong kho ng th i gian
ấ ị nh t đ nh.
ố ạ ự ờ 2.1.1.6. Kh i t o th i gian th c:
14
ự ấ ộ ỏ ồ ớ ờ 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.
ề ể ạ ị ấ ữ ồ ờ ả Đ không ph i đi u chình l ể i th i gian vào nh ng lúc b m t ngu n, có th
ủ ả ố n i thêm 1 pin kho ng 3V vào chân SQW/OUT c a IC DS1307 (sao cho
ủ ấ ố ố ố ủ chân + c a pin n i vàoIC và chân – c a pin n i xu ng đ t). Hai chân 1 và 2
ượ ố ạ ộ ộ ủ (X1,X2) c a DS1307 đ ầ ố c n i vào b dao đ ng th ch anh có t n s
ạ ộ ể ạ ộ 32,768KHz đ t o dao đ ng cho IC ho t đ ng.
ự
ọ
ả
2.2. L a ch n gi
i pháp
ả
ệ
2.2.1. Gi
i pháp công ngh
ự ầ ồ ờ ự ồ ự : Xây d ng đ ng h th i gian th c
D a vào yêu c u bài toán
ể ị ứ ế ọ và các ki n th c đã h c trong ch ươ ng hi n th trên LED 7 thanh
trình.
ử ụ ị ủ ụ ể ợ ấ ớ + S d ng LED 7 thích h p nh t v i m c đích hi n th c a RTC khi
ồ ớ ị ờ ữ ể ầ ồ ố ớ dùng làm đ ng h , v i yêu c u hi n th th i gian v i nh ng dãy s không
ạ ơ ứ ạ ể ỏ ị đòi h i quá ph c t p. LCD hi n th linh ho t h n song LED 7 thanh có
ề ư ị ả ư ế ưở ệ ộ ộ nhi u u th riêng nh ít ch u nh h ủ ng c a nhi ơ t đ , góc nhìn r ng,đ n
ễ ạ ự ấ ạ ử ụ ẻ ơ ả gi n trong c u t o và s d ng, r h n, d t o s chú ý.
15
ớ ế ử ụ ự ầ ờ ợ + S d ng IC th i gian th c DS1307 phù h p v i y u c u bài toán. IC
ự ụ ạ ờ ồ ờ này có tác d ng t o ra th i gian th c chính xác cao, bao g m gi , phút, giây,
ứ th , ngày, tháng, năm .
ử ụ ể ề ậ ờ + S d ng vi đi u khi n AT89C52 cho các thao tác truy c p th i gian
ị ờ ự ờ ạ ợ ớ ỏ ể th c, hi n th gi ỉ và ch nh gi phù h p v i ph m vi bài toán nh không
ể ử ụ ứ ạ ư ầ ỉ ầ ph c t p. Ta cũng có th s d ng PIC nh ng do yêu c u bài toán ch c n
ầ ử ụ ứ ụ ứ ủ ử ụ s d ng ch c năng I/O mà không c n s d ng ch c năng ph nào khác c a
ệ ầ ề ể ệ ầ ớ vi đi u khi n ngoài nên vi c dùng PIC là lãng phí. V i vi c l n đ u s ử
ẽ ơ ả ơ ượ ề ỏ ụ d ng thì dùng AT89C52 s đ n gi n h n, tránh đ ơ c h ng hóc nhi u h n
ớ ử ụ so v i s d ng PIC.
ử ụ ị ế ố ị 74HC138. Đây là IC ghi d ch n i ti p song + S d ng IC ghi d ch
ượ ứ ố ượ ụ ể ề song. IC đ c ng d ng đ tăng s l ể ng chân output cho vi đi u khi n.
ươ ố ượ ả ề Có nhi u ph ể ng pháp đ tăng s l ư ng chân nh dùng IC gi i mã, tuy
ị ượ ự ọ ớ nhiên IC ghi d ch 74HC138 đ c l a ch n v i các nguyên nhân sau:
ể ề ể ượ ầ ầ Đ u vào 3 chân có th đi u khi n đ c 8 chân đ u ra.
ữ ề ể ổ ơ ị Cho phép đi u khi n linh ho t và n đ nh h n: gi a các thanh ạ
ề ộ ị ổ ố ghi d ch và ngõ ra có m t “ch t”. Đi u này cho phép thay đ i
ạ ữ ệ ạ ổ ị ị linh ho t d li u trong các thanh ghi d ch và n đ nh tr ng thái
logic ngõ ra.
ẻ ễ ế Giá thành r , d ki m.
ả 2.2.2. Gi i pháp thi ế ế : t k
ế ế ệ ố ấ ượ ấ ọ ủ Thi t k h th ng có vai trò r t quan tr ng. Ch t l ầ ng c a ph n
ộ ấ ụ ề ề ả ế ế ộ ả m m ph thu c r t nhi u vào b n thi t k . M t b n thi ế ế ố t k t t còn giúp
ự ễ ệ ệ ạ ơ ườ cho vi c th c hi n các giai đo n khác d dàng h n, giúp cho ng ự i th c
ệ ủ ệ ơ hi n hoàn thành chính xác h n công vi c c a mình. Các quy trình thi ế ế t k
16
ườ ượ ử ụ ặ ế ợ ả ư th ng đ c s d ng nh : TopDown, BottomUp ho c k t h p c hai quy
trình trên.
ế ậ 2.2.2.1. Quy trình Topdown: Quy trình này ti p c n bài toán
ướ ừ ạ ế theo h ng xem xét bài toán t các khía c nh chi ti ớ ổ t và sau đó m i t ng
ườ ượ ụ quát lên. Quy trình TopDown th ng đ c áp d ng cho các bài toán đã có
ả ệ ả ề ầ ứ ư ầ ả gi ề i pháp công ngh c v ph n m m cũng nh ph n c ng. Các gi i pháp
ượ ể ướ ở ứ ụ ượ này đã đ c phát tri n tr c đó các ng d ng khác, và đã đ ể c ki m
ị đ nh.
ự ế ẽ ấ ố ủ ấ ả ấ Trong th c t chúng ta s th y, b n ch t hay m u ch t c a quy trình
ể ể ề ấ ị ị ượ là v n đ tìm hi u và xác đ nh bài toán, làm sao đ xác đ nh đ c chính xác
ệ ố ủ ấ ầ ầ ằ ộ ả ạ và đ y đ nh t các yêu c u cũng các r ng bu c mà h th ng ph i đ t
đ c.ượ
ơ ồ ế ố ở ướ S đ kh i quy trình k topdown hình d i
17
ầ ề ề ệ ố ộ Phân tích v n đấ (Analyze the problem) ệ Các yêu c u và đi u ki n ằ r ng bu c cho h th ng m iớ
ệ ằ ề
ụ ể ầ ượ ộ Các yêu c u và các đi u ki n r ng bu c đã đ ị c xác đ nh c th
ế ế
ồ ồ
ơ ồ
ể
ố
Thi t k nguyên lý (High level design)
S đ kh i và các bi u đ lu ng d li u ữ ệ
ế ế ỹ Thi ậ t k k thu t
(Engineering design) ấ
ể ữ ệ Các c u trúc d li u ế Các giao ti p vào ra Bi u đ quan h gi a các
ố ệ ữ ồ ứ kh i ch c năng
ự
ệ ố Xây d ng h th ng (Implementation)
ầ ứ Ph n c ng
ề ầ Ph n m m
ể Ki m tra (Test) ầ ạ Đ t yêu c u Không Đ t ạ yêu c uầ
ơ ồ ố Hình 2.2: S đ kh i quy trình TopDown
18
2.2.2.2. Quy trình BottomUp :
ụ Quy trình BottomUp trong th c t ự ế ườ th ng áp d ng trong các bài toán
ư ự ư ọ ượ ả ệ ấ ch a l a ch n hay ch a tìm ra đ c gi ố i pháp công ngh . M u ch t
ủ ử ệ ậ ớ ệ ố ủ c a quy trình t p trung ch yêu và quá trình th nghi m v i h th ng
ự ừ ả ệ ệ và tín hi u th c, t ọ đó ch n ra gi ệ i pháp công ngh và linh ki n phù
ơ ồ ổ ủ ư ấ ợ h p nh t cho bài toán. S đ t ng quát c a quy trình nh hình bên
d i.ướ
ắ ầ ừ ưở ơ ẻ Quy trình BottomUp b t đ u t các ý t ng đ n l ự , sau đó xây d ng
ế ế ỹ ư ậ ượ luôn thi ấ t k k thu t. Nh ta th y quy trình hoàn toàn ng ớ c so v i Top
ườ ư ắ ụ Down. Quy trình này th ng áp d ng có các bài toán ch a n m ch c v l ắ ề ờ i
ả ườ ế ế ớ ỉ ưở ề ộ ấ ề ố gi i, ng i thi t k m i ch có ý t ng v m t v n đ nào đó và mu n tìm
ả ặ ả ố ấ ể ả ế ấ ệ ề ộ m t gi i pháp ho c gi i pháp t t nh t đ gi i quy t v n đ . Vi c gi ả i
ế ưở ể ộ ộ ả ề ặ ẩ ỉ quy t các ý t ể ng có th m t ho c nhi u đ có m t s n ph m hoàn ch nh.
Ở ể ầ ằ ị quy trình này ta c n chú ý có 2 khâu test nh m ki m đ nh chính xác l ạ i
ế ế ỹ ậ ế ế ướ ự ộ ọ các thi t k k thu t và thi t k nguyên lý tr c khi l a ch n m t gi ả i
ố ứ ấ pháp t i u nh t.
ừ ệ ệ ế ế ử ệ ố ướ Chính t vi c thí nghi m và thi t k th h th ng tr ớ c, sau đó m i
ớ ằ ể ể ặ ớ ộ ọ có th phân tích nguyên lý đ ch n các đ c tính m i, r ng bu c m i cho
ộ ệ ố ớ ế ế ỹ ậ ớ m t h th ng m i. V i quy trình này khâu thi t k k thu t và Test sau khi
ệ ố ự ệ ớ ọ ự ấ xây d ng h th ng là quan tr ng nh t. Vì v i TopDown vi c xây d ng
ầ ủ ộ ả ẩ ườ ườ m t s n ph m là theo nhu c u c a ng i dùng và môi tr ặ ệ ố ng đ t h th ng.
ể ườ ớ ư ể ế ế Còn v i BottomUp có th ng i ta còn ch a tìm ra cách đ thi ả t k ra s n
ặ ả ị ườ ư ề ẩ ẩ ả ph m đó, ho c s n ph m đó ch a h có trên th tr ng, khi đó c ng ườ i
ườ ế ế ư ề ể ầ dùng và ng i thi ả t k ch a th có thông tin gì v các yêu c u cho s n
ậ ủ ả ặ ẩ ậ ẩ ỹ ph m hay các đ t tính k thu t c a s n ph m, vì v y khâu thi ế ế ỹ t k k
19
ỹ ư ự ậ ả ặ ằ thu t và Test sau th c thi các k s ph i tìm ra các đ t tính đó, nh m xác
ạ
ầ Đ t yêu c u
ề
Phân tích v n đấ (Analyze)
ể Ki m tra (Test)
Không Đ t ạ yêu c uầ
ề ộ
ầ Các yêu c u và ệ ằ đi u ki n r ng ệ ố bu c cho h th ng
ơ ồ ố S đ kh i và các ữ ồ ồ ể bi u đ lu ng d li uệ
ế ế
t k nguyên lý Thi (High level design)
ạ
ạ
ầ
ầ Đ t yêu c u
Đ t yêu c u
ạ
ầ Đ t yêu c u
Không ạ Đ t yêu c uầ
ể Ki m tra (Test)
ể Ki m tra (Test)
Không ạ Đ t yêu c uầ
ể Ki m tra (Test)
ầ ứ Ph n c ng ề ầ Ph n m m
ầ ứ Ph n c ng ề ầ Ph n m m
Không ạ Đ t yêu c uầ
ự
ự
ự
ệ ố Xây d ng h th ng (Implementation)
ệ ố Xây d ng h th ng (Implementation)
Ph n ầ c ngứ Ph n ầ ệ ố Xây d ng h th ng m mề (Implementation)
ấ
ể
ồ ố
ữ ệ Các c u trúc d li u ế Các giao ti p vào ra ệ ữ Bi u đ quan h gi a ứ các kh i ch c năng
ế ế ỹ
Thi
ậ t k k thu t (Engineering design)
ế ế ỹ
Thi
ậ t k k thu t (Engineering design)
ế ế ỹ
Thi
ậ t k k thu t (Engineering design)
Ý t
ngưở
Ý t
ngưở
Ý t
ngưở
ượ ệ ế ủ ả ư ạ ẩ ớ ị đ nh đ ư c các u vi t cũng nh các h n ch c a s n ph m m i.
ơ ồ ố Hình 2.3: S đ kh i quy trình BottomUp
ự ế ề ươ ượ ế ợ Trong th c t có nhi u ch ng trình đ ả c k t h p c hai quy trình
ế ế ươ ụ ậ ượ thi t k TopDown và BottomUp, ph ng pháp này t n d ng đ ư c các u
ạ ỏ ộ ố ủ ả ế ể ể ươ đi m và lo i b m t s khuy t đi m c a c 2 ph ng pháp trên.
20
ữ ậ ị ở ế ợ ữ Qua nh ng phân tích và nh n đ nh ầ ớ trên k t h p v i nh ng yêu c u
ế ế ự ể ọ ế ế ủ ề c a đ tài thi t k chúng em l a ch n quy trình topDown đ thi t k cho
ề đ tài này.
Timer
ươ
RTC
Ch ề
ng trình ể đi u khi n chính
Ch
ươ ề
ả Gi i mã ươ ng trình
ch
trình ng ể đi u khi n
chính
ươ ng Ch trình quét phím
Transister
LED
Button
2.2.3. ơ ồ S đ Call graph:
ơ ồ Hình 2.4: S đ Call graph
ầ ớ ạ ệ ố 2.2.4. Các yêu c u và gi i h n cho h th ng
2.2.4.1. Các yêu c uầ :
ể ể ị ờ ệ ạ Giao di n rõ ràng đ hi n th th i gian đang ch y.
ể ạ ị ươ Hi n th toàn màn hình khi ch y ch ng trình.
ề ờ Tính chính xác cao v th i gian.
ấ ữ ệ ử ụ ấ ộ ộ ệ Không m t d li u khi m t đi n đ t ng t (do s d ng ngu n d tr ồ ự ữ
3V trong DS1307)
ớ ạ 2.2.4.2. Gi i h n cho h th ng ệ ố :
ể ể ị ờ Dùng led 7 thanh đ hi n th th i gian.
ỉ ể ị ờ ứ Ch hi n th gi , phút, giây, th , ngày, tháng, năm.
21
ướ ỏ ọ ưở ử ụ Kích th c nh g n cho ng i s d ng.
ề ờ ỉ Có phím đi u ch nh th i gian.
ọ ổ ự ề 2.3. L a ch n t ng quan v linh ki n ệ
ệ ề Linh ki n trong đ tài g m ồ :
ự ờ * IC th i gian th c DS1307
* VĐK AT89C52
ạ * LED 7 đo n Anode chung
ả * IC gi i mã 74HC138
ụ ệ * T đi n (capacitor)
ệ ở * Đi n tr (resistors)
ấ * Nút n(button)
2.3.1. ự ờ IC th i gian th c DS1307
ớ ề ệ 2.3.1.1. Gi i thi u chung v DS1307:
ể ủ ự ề ờ ọ ộ IC th i gian th c là h vi đi u khi n c a hãng Dalat. DS1307 có m t
ơ ả ư ố ặ s đ c tr ng c b n sau:
ự ớ ấ ờ ồ ỏ ể ậ + DS1307 là 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
+ SRAM: 56bytes
ữ ệ ượ ị ỉ ề ườ ề + Đ a ch và d li u đ ố ệ c truy n n i ti p qua 2 đ ng bus 2 chi u
ệ ể ệ ế ả ạ + 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 3V:
22
ữ ệ ằ ừ ị ớ + DS1307 có 7 byte d li u n m t ỉ đ a ch 0x00 t i 0x06, 1 byte
ữ ư ể ể ườ ủ ụ đi u khi n, và 56 byte l u tr ( dành cho ng i s d ng ).
ữ ệ ừ ử ọ ự ề ạ ể + Khi x lý d li u t DS1307, h đã t chuy n cho ta v d ng s ố
ư ụ ọ ượ ữ ệ ừ ị ư ứ ớ ỉ BCD, ví d nh ta đ c đ c d li u t đ a ch 0x04 (t ong ng v i ngày
ạ trong tháng) và t i 0x05 (tháng) là 0x15, 0x11.
ủ ư ế + L u ý đ n vai trò c a chân SQW/OUT. Đây là chân cho xung ra
ế ộ ủ c a DS1307 có 4 ch đ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz…các ch đ ế ộ
ủ ợ ở ị ị ỉ này đu c quy đ nh b i các bít c a thanh ghi Control Register (đ a ch 0x07 ).
ỉ ủ ị + Đ a ch c a DS1307 là 0xD0.
ơ ế ạ ộ ứ ủ 2.3.1.2. C ch ho t đ ng và ch c năng c a DS1307:
ồ ố ớ Vcc: n i v i ngu n
ố ớ ạ X1,X2: n i v i th ch anh 32,768 kHz
ầ Vbat: đ u vào pin 3V
GND: đ tấ
ỗ SDA: chu i data
SCL: dãy xung clock
ầ SQW/OUT: xung vuông/đ u ra driver
23
ấ ộ ỏ ồ ờ ự ớ • 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.
ơ ồ ố ủ S đ kh i c a DS1307:
ả ạ ộ 2.3.1.3. Mô t ủ ho t đ ng c a các chân:
ề ượ ồ ộ ấ ớ • Vcc, GND: ngu n m t chi u đ c cung c p t i các chân này. Vcc
ầ ượ ấ ế ị ể ậ ỉ là đ u vào 5V. Khi 5V đ c cung c p thì thi t b có th truy c p hoàn ch nh
24
ữ ệ ể ọ ế ế ị và d li u có th đ c và vi t. Khi pin 3 V đ ượ ố ớ c n i t i thi t b này và Vcc
ỏ ơ ọ ế ượ ự nh h n 1,25Vbat thì quá trình đ c và vi t không đ c th c thi, tuy nhiên
ị ả ứ ưở ệ ấ ở ch c năng timekeeping không b nh h ng b i đi n áp vào th p. Khi Vcc
ỏ ơ ẽ ượ ắ ớ ấ ồ nh h n Vbat thì RAM và timekeeper s đ c ng t t i ngu n cung c p
ườ ề ồ trong ( th ng là ngu n 1 chi u 3V).
ấ ỳ ộ ệ ầ ả ẩ • Vbat: Đ u vào pin cho b t k m t chu n pin 3V. Đi n áp pin ph i
ượ ữ ả ừ ự ạ ộ ể ả ủ ả ế đ c gi trong kho ng t 2,5 3V đ đ m b o cho s ho t đ ng c a thi t
b .ị
ượ ử ụ ể ồ ộ ự ể • SCL(serial clock input): SCL đ c s d ng đ đ ng b s chuy n
ườ ố ế ữ ệ d li u trên đ ng dây n i ti p.
ườ ố • SDA(serial data input/out): Là chân vào ra cho 2 đ ng dây n i
ế ế ế ể ự ệ ả ộ ỏ ti p. Chân SDA thi ở t k theo ki u c c máng h , đòi h i ph i có m t đi n
ạ ộ ở tr kéo trong khi ho t đ ng.
ượ • SQW/OUT(square wave/output driver) khi đ ạ c kích ho t thì bit
ượ ế ậ SQWE đ c thi ầ ố t l p 1 chân SQW/OUT phát đi 1 trong 4 t n s
ượ ế ế ể ự (1Hz,4kHz,8kHz,32kHz). 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 .
ơ ồ ị ỉ a) S đ đ a ch RAM và RTC:
Secends 00h
25
Minutes Hours Day Date Month Year Control Ram 58x8 07h 08h
3Fh
ề ờ ượ ấ ằ ọ • 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
ủ ướ ạ dung c a các thanh ghi d i d ng mã BCD(binary coded decreaseimal). Bit
ủ ượ ế ậ 7 c a thanh ghi seconds là bit clock halt( CH ), khi bit này đ c thi t l p 1
ộ ượ ề ộ ượ thì dao đ ng disable, khi nó đ c xoá v 0 thì dao đ ng đ c enable.
BIT
BIT7
0
00H
CH
10 SECENDS
SECENDS
0059
10MINUTES
MINUTES
0059
X
12
10HR
10H
0112
X
HOURS
A/P
R
0023
24
X
X
X
X
X
DAY
17
ự ượ ả ư ờ Thanh ghi th i gian th c đ c mô t nh sau:
26
0128/29
X
X
10 DATE
DAY
0130
0131
10
X
X
X
MONTH
0112
MONTH
10YEAR
YEAR
0059
R
07H
OUT X
X
SOWE
X
X RS1
S0
ể ạ ở ế ộ ứ ủ ư • 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).
ỉ ị ượ ự ậ ữ ệ • Trong quá trình truy c p d li u, khi ch th START đ c th c thi thì
ượ ề ớ ứ ộ ờ ờ dòng th i gian đ c truy n t ẽ i m t thanh ghi th 2, thông tin th i gian s
ế ụ ồ ẫ ứ ấ ồ đ ượ ọ ừ c đ c t ạ thanh ghi th c p này, trong khi đó đ ng h v n ti p t c ch y.
ể ề ạ ộ ủ ề ể ể ộ Trong DS1307 có m t thanh ghi đi u khi n đ đi u khi n ho t đ ng c a
Bit 7 OUT
Bit6 X
Bit5 X
Bit4 SQWE
Bit3 X
Bit2 X
Bit1 RS1
Bit0 RS0
chân SQW/OUT :
ủ ứ ề ể • OUT(output control): bit này đi u khi n m c ra c a chân SQW/OUT khi
ứ ế ầ ở đ u ra xung vuông là disable. N u SQWE = 0 thì m c logic chân
ế ẽ ế SQW/OUT s là 1 n u OUT=1 và OUT = 0 n u OUT = 0 .
ượ ế ậ ẽ ầ • SQWE(square wave enable): bit này đ c thi ủ t l p 1 s enable đ u ra c a
ầ ố ủ ầ ụ ộ ộ ị ủ ộ ạ b t o dao đ ng. T n s c a đ u ra sóng vuông ph thu c vào giá tr c a
RS1 và RS0.
27
ầ ố ầ
RS1 0 0 1 1 RS0 0 1 0 1 T n s đ u ra SQW 1 Hz 4.096 kHz 8.192kHz 32.768 kHz
ỗ ợ ữ ệ ứ ề ề DS1307 h tr bus 2 dây 2 chi u và giao th c truy n d li u. thi ế ị t b
ượ ọ ế ị ậ ọ ộ ử ữ ệ g i d li u lên bus đ ộ c g i là b phát và thi t b nh n g i là b thu. thi ế t
ể ọ ế ị ậ ự ề ị ề b đi u khi n quá trình này g i là master. Thi ể ủ t b nh n s đi u khi n c a
ậ ự ề ể ủ ọ ế ị master g i là slave. Các bus nh n s đi u khi n c a master, là thi t b phát
ể ự ậ ạ ỗ ẽ ề ra chu i xung clock(SCL), master s đi u khi n s truy c p bus, t o ra các
ị ỉ ch th START và STOP.
ậ ữ ệ ự ỗ ề b) S truy n nh n d li u trên chu i bus 2 dây :
ề ữ ệ ẽ ượ ạ ộ ỳ Tu thu c vào bit R/ w mà 2 lo i truy n d li u s đ ự c th c thi:
ề ữ ệ ừ ề ẽ ề • Truy n d li u t ậ master truy n và slave nh n: Master s truy n byte
ữ ệ ẽ ử ỉ ủ ế ị ầ đ u tiên là đ a ch c a slave. Ti p sau đó là các byte d li u. Slave s g i
ạ ậ ượ ỗ l i bit thông báo đã nh n đ c (bit acknowledge) sau m i byte ữ ệ d li u
ậ ượ ữ ệ ẽ ề ừ ấ nh n đ c. d li u s truy n t ị bit có giá tr nh t (MSB).
ề ữ ệ ừ ỉ ủ ậ ầ ị • Truy n d li u t slave và master nh n: byte đ u tiên (đ a ch c a
ượ ề ớ ẽ ử ạ ở slave) đ c truy n t i slave b i master. Sau đó slave s g i l i master bit
ữ ệ ớ ẽ ử ế acknowledge. Ti p theo đó slave s g i các byte d li u t i master. Master
ậ ượ ỗ ừ ố ẽ ử s g i cho slave các bit acknowledge sau m i byte nh n đ c tr byte cu i
ậ ượ ẽ ố ượ cùng, sau khi nh n đ c byte cu i cùng thì bit acknowledge s không đ c
g i . ử
ấ ả ỗ ỉ ị Master phát ra t t c các chu i xung clock và các ch th START và
ề ẽ ế ự ặ ớ ị ỉ ị ỉ STOP. s truy n s k t thúc v i ch th STOP ho c ch th quay vòng
ỗ ữ ệ ự ề ế ỉ ị START. Khi ch th START quay vòng thì s truy n chu i d li u ti p theo
28
ượ ư ượ ự ẫ ả ữ ệ ề đ c th c thi và các bus v n ch a đ c gi i phóng. D li u truy n luôn
ằ ắ ầ b t đ u b ng bit MSB.
ể ạ ộ ở c) DS1307 có th ho t đ ng ế ộ 2 ch đ sau:
ế ộ ỗ ữ ệ ậ • Ch đ slave nh n( ch đ ỗ ế ộ DS1307 ghi): Chu i d li u và chu i
ẽ ượ ậ ỗ ượ xung clock s đ c nh n thông qua SDA và SCL. Sau m i byte đ ậ c nh n
ẽ ượ ề ề thì 1 bit acknowledge s đ ệ c truy n. các đi u ki n START và STOP s ẽ
ượ ắ ầ ế ề ậ ạ ậ ộ ỗ đ ạ c nh n d ng khi b t đ u và k t thúc m t truy n 1 chu i. Nh n d ng
ỉ ượ ầ ứ ỉ ủ ự ệ ấ ậ ở ị ị đ a ch đ c th c hi n b i ph n c ng sau khi ch p nh n đ a ch c a slave
ề ầ ậ ị ượ ề ỉ và bit chi u. Byte đ a ch là byte đ u tiên nh n đ ệ c sau khi đi u ki n
ượ ừ ứ ị ỉ ị START đ c phát ra t ỉ ủ master. Byte đ a ch có ch a 7 bit đ a ch c a
ế ề DS1307, là 1101000, ti p theo đó là bit chi u (R/ w) cho phép ghi khi nó
ậ ả ỉ ế ị ẽ ằ b ng 0. Sau khi nh n và gi ị i mã byte đ a ch thì thi ệ t b s phát đi 1 tín hi u
ườ ậ ạ ượ ỉ ị acknowledge lên đ ng SDA. Sau khi DS1307 nh n d ng đ c đ a ch và
ẽ ử ộ ị ỉ ớ ộ bit ghi thì master s g i m t đ a ch thanh ghi t ạ i DS1307, t o ra m t con
ỏ ữ ệ ừ ẽ ề tr thanh ghi trên DS1307 và master s truy n t ng byte d li u cho
ậ ỗ ượ ẽ ề DS1307 sau m i bit acknowledge nh n đ ề c. Sau đó master s truy n đi u
Slave
R/
Word Address
Data (n)
Data (n+1)
Data (n+X)
Address
W
(n)
1101000
0
A XXXXXXXX
A XXXXXXXX A XXXXXXXX A XXXXXXXX A P
S SSTART
AACKNOWLEDGE
DATA TRANSFERRED(X+1 BYTE + ACKNOWLADGE)
PSTOP
R/WREAD/WRITE OR DIRECTION BIT
ADDRESS = D0h
ệ ệ ki n STOP khi vi c ghi hoàn thành.
ế ộ ế ộ ầ ọ ậ • Ch đ slave phát ( ch đ DS1307 đ c): byte đ u tiên slave nh n
ự ế ộ ế ộ ư đ ượ ươ c t ng t nh ch đ slave ghi. Tuy nhiên trong ch đ này thì bit
ạ ề ề ỉ ỗ ữ ệ ượ ề chi u l i ch chi u truy n ng ượ ạ c l i. Chu i d li u đ c phát đi trên
29
ề ở ỗ ệ SDA b i DS 1307 trong khi chu i xung clock vào chân SCL. Các đi u ki n
ượ ắ ầ ề ế ạ ậ ặ START và STOP đ ộ c nh n d ng khi b t đ u ho c k t thúc truy n m t
ậ ỗ ỉ ượ ề ầ ị chu i. Byte đ a ch nh n đ ệ c đ u tiên khi master phát đi đi u ki n
ỉ ứ ỉ ủ ề ị ị ọ START. Byte đ a ch ch a 7 bit đ a ch c a slave và 1 bit chi u cho phép đ c
ậ ả ỉ ế ị ẽ ậ là 1. Sau khi nh n và gi ị i mã byte đ a ch thì thi t b s nh n 1 bit
ườ ắ ầ acknowledge trên đ ng SDA. Sau đó DS1307 b t đ u g i d li u t ử ữ ệ ớ ị i đ a
ỉ ỏ ế ỏ ch con tr thanh ghi thông qua con tr ỏ thanh ghi. N u con tr thanh ghi
ượ ế ướ ế ộ ọ ượ ế ậ không đ c vi t vào tr c khi ch đ đ c đ c thi ỉ ầ ị t l p thì đ a ch đ u
ượ ọ ẽ ỏ ố ỉ ị tiên đ ứ c đ c s là đ a ch cu i cùng ch a trong con tr thanh ghi. DS1307
ậ ượ ế ệ ộ ẽ s nh n đ ọ c m t tín hi u Not Acknowledge khi k t thúc quá trình đ c.
Slave
R/
Data (n)
Data (n+1)
Data (n+2)
Data (n+X)
A XXXXXXXX
A XXXXXXXX A XXXXXXXX A XXXXXXXX A P
Address 1101000
W 0
S SSTART
AACKNOWLEDGE
DATA TRANSFERRED(X+1 BYTE + ACKNOWLADGE)
PSTOP
R/WREAD/WRITE OR DIRECTION BIT
ADDRESS = D0h
ọ ữ ệ ế ộ Đ c d li uch đ slave phát.
ữ ệ ủ ự ệ ệ ờ ọ ơ ồ ồ • Th i gian th c hi n vi c đ c,ghi d li u c a DS1307: s đ đ ng
b :ộ
30
TYP MAX UNITS
NOTE
SYMBOL MIN fSCL
0
100
kHz
PARAMETER SCL Clock Frequency Bus free Time Bettween a
4.7
STOP and START
tBUF
µs
Condition Hold Time (Repeated)
4.0
tHDSTA
5
µs
4.7 4.0
tLOW tHIGH
µs µs
START Condition LOW Period of SCL Clock HIGH Period of SCL Clock Setup Time for a Repeated
4.7
tSU:STA
µs
6.7
tHD:DAT tSU:DAT
0 250
ns ns
START Condition Data Hold Time Data Setup Time Rise Time of Both SDA
tR
ns
1000
and SCL Singnals Fall Time of Both SDA and
tF
ns
300
SCL Singnals Setup Time for STOP
tSU:STO
ns
Condition Capactive Load for each
CB
pF
400
8
CIO
pF
10
Bus Line I/O Capacitance Crystal Specified Load
pF
12.5
Capacitance
(0oC to 70 oC or 40 oC to +85 oC; Vcc=4.5V to 5.5V)
31
ề 2.3.2. ể Vi Đi u Khi n AT89C52
ấ ạ ứ 2.3.2.1. C u t o và ch c năng các
ố ủ kh i c a AT89C52.
(cid:0) CPU( CPU centralprocessing unit) bao g m:ồ
Thanh ghi tích lũy A
Thanh ghi tích lũy ph Bụ
ọ ơ ị Đ n v logic h c (ALU)
ừ ạ ươ Thanh ghi t tr ng thái ch ng trình
ố B n băng thanh ghi
Con tr ngăn x p ế ỏ
ớ ươ (cid:0) B nh ch ộ ồ ng trình( ROM) g m 8Kbyte Flash.
ớ ữ ệ ộ ồ (cid:0) B nh d li u( RAM) g m 256 byte.
ố ế ứ ề ậ ộ (cid:0) B UART, có ch c năng truy n nh n n i ti p.
(cid:0) ứ ự ế ệ ờ ộ ị ự ệ . 3 b Timer/Counter 16 bit th c hi n ch c năng đ nh th i và đ m s ki n
ắ ớ ề ể ắ ắ ố ồ (cid:0) Kh i đi u khi n ng t v i 2 ngu n ng t ngoài và 4 ngu n ng t trong. ồ
32
ộ ậ ươ (cid:0) B l p trình ( ghi ch ng trình lên Flash ROM) cho phép ng ườ ử i s
ể ạ ươ ầ ụ d ng có th n p các ch ộ ạ ng trình cho chíp mà không c n các b n p
chuyên d ng.ụ
ộ (cid:0) B chia t n s v i h s chia là 12. ầ ố ớ ệ ố
(cid:0) ấ ổ ớ ậ 4 c ng xu t nh p v i 32 chân.
ứ ủ 2.3.2.2. Ch c năng các chân c a AT89C52
Port 0( P0.0P0.7)
ứ ậ ấ ồ ợ Port 0 g m 8 chân, ngoài ch c năng xu t nh p, port 0 còn là bus đa h p
ẽ ượ ử ụ ứ ỉ ị ữ ệ d li u và đ a ch ( AD0AD7), ch c năng này s đ c s d ng khi 89c52
ế ớ ế ị ư ế ạ ớ giao ti p v i các thi ạ t b ngoài có ki n trúc Bus nh các vi m ch nh , m ch
PIO…
Port 1( P1.0P1.7)
ấ ủ ứ ứ ư ậ ấ Ch c năng duy nh t c a Port 1 là ch c năng xu t nh p cũng nh các
ể ậ ấ Port khác. Port1 có th xu t nh p theo bit và theo byte.
Port 2( P2.0=>P2.7)
ư ứ ổ Port 2 ngoài ch c năng là c ng vào/ra nh Port 0 và 1 còn là byte cao
ử ụ ộ ớ ị ỉ ủ c a bus đ a ch khi s d ng b nh ngoài.
Port 3(P3.0=>P3.7)
ứ ứ ấ ậ ỗ ộ M i chân trên Port 3 ngoài ch c năng xu t nh p còn có m t ch c năng
ậ
ề
Bit P3.0 P3.1
Tên RXD TXD
ứ Ch c năng ữ ệ ố ế D li u nh n cho Port n i ti p ố ế ữ ệ D li u truy n cho Port n i ti p
ắ ắ
ủ
P3.2 P3.3 P3.4
INT0 INT1 TO
Ng t bên ngoài 0 Ng t ngoài 1 Ngõ vào c a Timer/counter0
ụ ể ư riêng, c th nh sau:
33
ớ ữ ệ ớ ữ ệ
ủ ộ ọ ộ
P3.5 P3.6 P3.7
T1 /WR /RD
Ngõ vào c a Timer/counter1 Xung ghi b nh d li u ngoài. Xung đ c b nh d li u ngoài.
ề ể ọ ươ ở ộ Chân /PSEN : là chân đi u khi n đ c ch ng trình ớ b nh ngoài.
Chân ALE.
ầ ố ằ ầ ố ố ị ệ ể ề ỉ ALE là tín hi u đi u khi n ch t đ a ch có t n s b ng 1/6 t n s dao
ủ ể ệ ề ượ ể ộ đ ng c a vi đi u khi n. Tín hi u ALE đ ạ c dùng đ cho phép vi m ch
ư ố ch t bên ngoài nh 7473.
Chân /EA.
ệ ớ ọ ộ ươ ộ Tín hi u /EA cho phép ch n b nh ch ớ ng trình là b nh trong hay ngoài.
ệ ươ ệ ở ự ộ ự EA=1 thì th c hi n ch ng trình trong RAM n i. EA=0 th c hi n RAM
ngoài.
RST( reset)
ề ộ ố Ngõ vào reset trên chân s 9. Khi RST=1 thì b vi đi u khi n s đ ể ẽ ượ c
ạ ế ậ ầ ở ộ kh i đ ng l i thi t l p ban đ u.
XTAL1, XTAL2
ượ ầ ố ạ ố ớ 2 chân này đ c n i song song v i th ch anh t n s max=33 Mhz. Đ ể
ề ể ộ ộ ạ t o dao đ ng cho b vi đi u khi n.
ề ể ấ ấ ồ ộ Vcc, GND : cung c p ngu n nuôi cho b vi đi u khi n. C p qua chân
20 và 40.
2.3.3. Led 7 đo n.ạ
ơ ả ệ 2.3.3.1. Các khái ni m c b n :
ế ị ể ạ ộ ủ ạ ế ị Trong các thi t b , đ báo tr ng thái ho t đ ng c a thi t b đó cho
ườ ử ụ ố ơ ầ ớ ố ườ ườ ng ỉ i s d ng v i thông s ch là các dãy s đ n thu n, th ng ng i ta
led 7 đo nạ ". Led 7 đo n đ
ạ ượ ử ụ ố ử ụ s d ng " c s d ng khi các dãy s không đòi
34
ứ ạ ỉ ầ ị ố ủ ệ ạ ạ ẳ ỏ h i quá ph c t p, ch c n hi n th s là đ , ch ng h n led 7 đo n đ ượ c
ị ệ ộ ồ ồ ườ ằ ể ể dùng đ hi n th nhi t đ phòng, trong các đ ng h treo t ệ ng b ng đi n
ử ị ố ượ ể ả ẩ ượ ể ạ ộ t , hi n th s l ng s n ph m đ c ki m tra sau m t công đo n nào đó...
ấ ạ ế ạ ạ ồ ơ Led 7 đo n có c u t o bao g m 7 led đ n có d ng thanh x p theo hình và
ỏ ể ệ ấ ấ ộ ơ ở có thêm. M t led đ n hình tròn nh th hi n d u ch m tròn góc d ướ i,
ả ủ ự ơ bên ph i c a led 7 đo n. ặ ạ 8 led đ n trên led 7 đo n có Anode (c c +) ho c ạ
ự ượ ể ố ộ ượ ư Cathode (c c ) đ c n i chung v i ớ nhau vào m t đi m, đ c đ a chân ra
ể ế ố ớ ự ệ ạ ạ ỗ ơ ngoài đ k t n i v i m ch đi n. 8 c c còn l i trên m i led đ n đ ượ ư c đ a
ượ ư ể ế ố ớ thành 8 chân riêng, cũng đ c đ a ra ngoài đ k t n i v i m ch ế ạ đi n. N u ệ
ự ạ ầ ượ ố ớ led 7 đo n có Anode(c c +) chung, đ u chung này đ c n i v i +Vcc, các
ạ ể ề ạ ắ ủ ơ chân còn l ể i dùng đ đi u khi n tr ng thái sáng t t c a các led đ n, led ch ỉ
ệ ở ứ ế ạ ặ sáng khi tín hi u đ t vào các chân này m c 0. N u led 7 đo n có Cathode
ự ầ ượ ố ố (c c ) chung, đ u chung này đ c n i xu ng Ground (hay Mass), các chân
ạ ể ề ể ạ ắ ủ ỉ còn l i dùng đ đi u khi n tr ng thái sáng t ơ t c a các led đ n, led ch sáng
ệ ặ ở ứ khi tín hi u đ t vào các chân này m c 1.
ế ố ầ ứ ạ ơ ả Vì led 7 đo n ch a bên trong nó các led đ n, do đó khi k t n i c n đ m
ể ả ệ ả ỗ ơ ả b o dòng ế qua m i led đ n trong kho ng 10mA20mA đ b o v led. N u
Ω ồ ể ạ ệ ằ ở ướ ế ố ớ k t n i v i ngu n 5V có th h n dòng b ng đi n tr 330 tr c các chân
ể ề ệ ậ nh n tín hi u đi u khi n.
ơ ồ ị 2.3.3.2. S đ v trí các led :
Ω ệ ệ ở ở ượ Các đi n tr 330 là các đi n tr bên ngoài đ c k t n i đ gi ế ố ể ớ ạ i h n
ạ ượ ố ớ ệ ế ồ dòng đi n qua led n u led 7 đo n đ c n i v i ngu n 5V.
35
ơ ồ ả ọ Hình 2.5: s đ chân 7 SEGCOMANODE và hình nh minh h a
ế ố ớ ể ề 2.3.3.3. K t n i v i Vi đi u khi n:
ể ủ ệ ề ậ ạ ườ Ngõ nh n tín hi u đi u khi n c a led 7 đo n có 8 đ ậ ng, vì v y có th ể
ể ề ủ ề ể ể ạ ư ậ dùng 1 Port nào đó c a Vi đi u khi n đ đi u khi n led 7 đo n. Nh v y
ộ ữ ệ ậ ạ ừ ể ề ể ề ể led 7 đo n nh n m t d li u 8 bit t ạ Vi đi u khi n đ đi u khi n ho t
ắ ủ ừ ữ ệ ơ ượ ề ấ ộ đ ng sáng t t c a t ng led đ n trong nó, d li u đ ể c xu t ra đi u khi n
ạ ườ ượ ể ể ạ ọ ị led 7 đo n th ng đ c g i là "mã hi n th led 7 đo n". Có hai ki u mã
ự ể ạ ạ ị hi n th led 7 đo n: mã dành cho led 7 đo n có Anode(c c +) chung và mã
ể ệ ự ạ ạ ẳ ị ố dành cho led 7 đo n có Cathode (c c ) chung. Ch ng h n, đ hi n th s 1
ở ị ế ử ụ ạ ầ c n làm cho các led v trí b và c sáng, n u s d ng led 7 đo n có Anode
ả ặ ứ ệ chung thì ph i đ t vào hai chân b và c đi n áp là 0V(m c 0) các chân còn l ạ i
ượ ứ ệ ặ ạ đ ế ử ụ c đ t đi n áp là 5V(m c 1), n u s d ng led 7 đo n có Cathode chung
ứ ệ ượ ạ ứ thì đi n áp(hay m c logic) hoàn toàn ng ả ặ i, t c là ph i đ t vào chân b c l
ứ ệ ượ ế ố ớ ủ ấ và c đi n áp là 5V(m c 1). ầ ứ Ph n c ng đ c k t n i v i 1 Port b t kì c a Vi
ệ ể ề ậ ử ứ ề ệ ầ ượ ể đi u khi n, đ thu n ti n cho vi c x lí v sau ph n c ng nên đ ế c k t
ố ớ ư ố ớ ầ ượ ố n i nh sau: Px.0 n i v i chân a, Px.1 n i v i chân b, l n l t theo th t ứ ự
ố ớ ế cho đ n Px.7 n i v i chân h.
36
ả ủ 2.3.3.4. B ng mã c a Led Anode chung
dp Mã Hex
Số
a
b
c
d
e
f
g
0
0
0
0
0
0
0
1
1
03h
1
1
0
0
1
1
1
1
1
9Fh
2
0
0
1
0
0
1
0
1
25h
3
0
0
0
0
1
1
0
1
0Dh
4
1
0
0
1
1
0
0
1
99h
5
0
1
0
0
1
0
0
1
49h
6
0
1
0
0
0
0
0
1
41h
7
0
0
0
1
1
1
1
1
1Fh
8
0
0
0
0
0
0
0
1
01h
9
0
0
0
0
1
0
0
1
09h
ả a. B ng mã cho Led Anode chung (a là MSB, dp là LSB):
37
dp
g
Mã Hex
S
f
e
d
c
b
a
ố
0
1
0
0
0
0
0
0
1
C0h
1
1
1
1
1
0
0
1
1
F9h
2
1
1
0
0
1
0
0
0
A4h
3
1
1
1
0
0
0
0
0
B0h
4
1
0
1
1
0
0
1
0
99h
5
1
0
1
0
0
1
0
0
92h
6
1
0
0
0
0
1
0
0
82h
7
1
1
1
1
0
0
0
1
F8h
8
1
0
0
0
0
0
0
0
80h
9
1
0
1
0
0
0
0
0
90h
ả b. B ng mã cho Led Anode chung (a là LSB, dp là MSB):
ả 2.3.4. IC gi i mã 74HC138:
ơ ồ ủ S đ chân c a 74HC138:
38
ộ ả ỉ ớ ầ ầ ị IC 74HC138 là b gi mã đ a ch v i 3 đ u vào ( A0,A1,A2) và 8 đ u ra ph ủ
ầ ị đ nh (Y0 đ n ế Y7 ). Nó có 3 đ u vào cho phép:
ự ầ 2 đ u vào tích c c th p ( ộ ầ ấ 1E,2E) và m t đ u
ấ ả ứ ự ầ vào tích c c m c cao (E3). T t c các đ u ra
ẽ ở ứ ừ ủ c a 74HC138 s m c cao tr khi E1 ở ứ m c
ấ ở ứ ầ th p và E3 m c cao. Khi các đ u vào 1E,
ở ứ ở ứ ầ 2E ấ m c th p và E 3 m c cao thì đ u ra
ẽ ượ ở ầ ế ị ủ c a 74HC138 s đ c quy t đ nh b i đ u vào .
ấ ứ H : M c cao. ứ L : M c th p. X : Không làm vi c.ệ
ứ ủ ả Hình2.6: B ng ch c năng c a 74HC138
ể ặ Đ c đi m:
ầ ố + S drive đ u ra: 10 LSTTL Loads
ệ ầ ớ + Các giao di n đ u ra t i CMOS, NMOS and TTL
39
ệ ả ạ ộ + D i đi n áp ho t đ ng : 2.0 to 6.0 V
ệ ấ + Dòng đi n vào th p: 1.0 µA
ạ ừ ạ ả + Kh năng lo i tr t p âm cao trong CMOS Devices
ầ ớ ợ ượ ở ị ữ + Phù h p v i nh ng yêu c u đã đ ẩ c đ nh nghĩa b i JEDEC theo chu n
7A
ư ặ + Đ c tr ng ESD : HBM >2000 V; machine Model > 200 V
ộ ứ ạ ủ ổ ươ ươ + Đ ph c t p c a chip: 100 FETs or 29 c ng t ng đ ng
ế ị ự ụ ễ ữ + Nh ng thi t b s d ng mi n phí
ế ậ K t lu n
ử ụ ụ ộ ệ ố ề ờ RTC s d ng IC chuyên d ng cho ta đ chính xác tuy t đ i v th i
ự ư ự ế ệ ệ ầ ắ ố gian th c mà không c n lo l ng đ n vi c có sai s nh khi th c hi n RTC
ư ể ựợ ộ ủ ự ự ờ ằ b ng Timer. Đây là u đi m v t tr i c a RTC th i gian th c và d a trên
ể ộ ử ụ ứ ụ ể ơ đó, ta có th phát tri n r ng rãi h n các ng d ng cho phép s d ng đ ượ c
trong th c t ự ế .
ị ướ ể ả Đ nh h ng phát tri n cho các phiên b n sau này:
ế ợ ế ệ ộ ể ệ ộ ớ ả K t h p v i c m bi n nhi t đ đ đo nhi ờ t đ ngoài tr i
ổ ươ ậ ơ ể ỹ ị Thay đ i ph ẹ ng pháp hi n th sao cho đ p và có m thu t h n (s ử
ụ ậ d ng ma tr n LED).
ự ươ ể ị D a vào ngày tháng năm d ng l ch đ tính toán ngày tháng năm âm
ể ị ị l ch và hi n th .
ứ ẹ ị Trang b thêm ch c năng h n gi ờ .
ử ụ ẻ ơ ề ể ả ạ ẩ H giá thành s n ph m (s d ng vi đi u khi n PIC r h n).
40
ế ộ ể ằ ị ạ ơ Tuy r ng LCD cho phép các ch đ hi n th linh ho t h n
ư ượ ự ả ấ ả ẩ ớ nh ng không đ ọ c l a ch n là gi i pháp nâng c p s n ph m v i các
lí do:
Giá thành cao.
ớ ị ế ạ ầ ợ ướ ẩ ả T m nhìn h n ch , không phù h p v i đ nh h ng s n ph m là
ồ ệ ử ộ ồ ườ m t đ ng h đi n t ể dùng đ treo t ặ ể ng ho c đ bàn.
ươ
ệ ố
Ch
ự ng 3: Xây d ng h th ng
ệ ố ự 3.1. Xây d ng h th ng
ơ ồ ạ ổ 3.1.1. S đ m ch t ng quát
3.1.2.S đ m ch in ơ ồ ạ
41
42
3.1.3. ư ồ ậ L u đ thu t toán:
ư ồ ủ ươ 3.1.3.1. ậ L u đ thu t toán c a ch ng trình chính
Begin
ệ ừ ọ ữ Ghi và đ c d DS1307 li u t
ươ ng trình
ọ G i ch quét nút nh nấ
ị Hi n thể
End
43
`
ư ồ ươ ấ 3.1.3.2. L u đ ch ng trình quét nút nh n
44
Star t Set=0, kt =0
kt ++
Đ
S
Quét giờ
kt =1
S
Đ
Quét phút
kt =2
Đ
S
Quét giây
kt =3
Đ
S
Quét thứ
kt =4
Đ
S
Quét ngày
kt =5
Đ
S
Quét tháng
kt =6
Đ
S
Quét năm
kt =7
S
kt =8
EN D
ươ 3.1.4. Ch ng trình demo
#include
45
#include
//Khai bao cac chan linh kien sbit data_time=P2^4; sbit data_date=P2^5; sbit set=P1^2; sbit up=P1^3; sbit down=P1^4; sbit clear=P1^5; sbit sqw=P1^6;
//cac bien dung trong chuong trinh unsigned char hour, minute, second,day,date,month,year,control; unsigned char code_led[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x 00}; unsigned char led_buffer[16]; unsigned char kt=0,a=0,d=0,scan_led,counter; bit set0,set1,up1,up0,down0,down1; //****************CAC CHUONG CHINH CON*********** //Quet led 7 doan dung timer 0 void timer0(void) {
EA=0;//cam ngat toan cuc TMOD=0x2;//timer0 che do 8 bit tu dong nap lai TL0=0x6;//Gia tri bat dau dem = 6 (tre 250us) TH0=0x6;//gia tri TH dc nap vao TL (che do 8 bit) ET0=1;//cho phep ngat timer0 EA=1;//cho phep ngat toan cuc TR0=1;//Bat dau chay timer0
} void quet_led(void)interrupt 1 //dia chi vecto ngat timer0
46
{
TR0=0;//dung chay Timer if(++counter==3)//sau 12x250us=3ms thi thay doi hien thi led {
if(scan_led<=7) {
P2=scan_led;//hien thi cac led o hang 1 (gio,phut,giay,thu) P0=code_led[(led_buffer[scan_led])]; data_time=1;//hien thi gio phut giay
}else
{ P2=scan_led0x8;// hien thi led hang 2 (ngay thang nam) P0=code_led[(led_buffer[scan_led])]; data_date=1;//hien thi ngay thang nam } scan_led++; if(scan_led>=16) //vuot qua 16 led thi tro ve ban dau {
scan_led=0;
} counter=0;
} TR0=1;//Chay TIMER0
}
void delays(int time_delay) {
unsigned int temp; while(time_delay) {
temp=1000; while(temp) {
temp;
47
} time_delay;
}
}
void writeds(){
rtc_write(0x00, second); rtc_write(0x01, minute); rtc_write(0x02, hour); rtc_write(0x03, day); rtc_write(0x04, date); rtc_write(0x05, month); rtc_write(0x06, year);
}
void readds() {
if(kt==0) {
if(a==1) {
writeds(); a=0;
} second = rtc_read(0x00); minute = rtc_read(0x01); hour = rtc_read(0x02); day = rtc_read(0x03); date = rtc_read(0x04); month = rtc_read(0x05); year = rtc_read(0x06);
}
} void dislay()
48
{
unsigned char temp;
//*******Hien thi gio************* if((temp=(hour&0x30)>>4)==0)//khong h.thi so 0 o hangchuc {
led_buffer[0]=0x0a;
}else {
led_buffer[0]=temp;//Lay 2 bit cao
//Lay 4 bit thap
//Lay 4 bit thap
} led_buffer[1]=(hour&0x0f); //*******Hien thi phut********** led_buffer[2]=(minute&0x70)>>4; //lay 3 bit cao led_buffer[3]=minute&0x0f; //*******Hien thi giay********* led_buffer[4]=(second&0x70)>>4; led_buffer[5]=second&0x0f; led_buffer[6]=0x0a; led_buffer[7]=(day&0x7); //*******Hien thi ngay********** if((temp=(date&0x70)>>4)==0)//khong hien thi so 0 o hang chuc {
led_buffer[8]=0x0a;
}else {
led_buffer[8]=temp;
} led_buffer[9]=date&0x0f; //*********Hien thi thang************ if(((month&0x30)>>4)==0)//khong hien thi so 0 o hang chuc {
led_buffer[10]=0x0a;
}else
49
{
led_buffer[10]=(month&0x30)>>4;
}
led_buffer[11]=month&0x0f; //******Hien thi nam*********** led_buffer[12]=2; led_buffer[13]=0; led_buffer[14]=(year&0x70)>>4; led_buffer[15]=year&0x0f;
} void setup_rtc(void)//dat gia tri khoi tao {
second=0x0; minute=0x0; hour=0x0; day=0x4; date=0x8; month=0x6; year=0x11; control=0x10;
rtc_write(0x7, control); rtc_write(0x0, second); rtc_write(0x1, minute); rtc_write(0x2, hour); rtc_write(0x3, day); rtc_write(0x4, date); rtc_write(0x5, month); rtc_write(0x6, year);
} void ktphim() { set0=set1;set1=set; if((set0==1)&&(set1==0))
50
{
if(set==0) {
delays(50); if((set==0)&&(clear==0)) {
delays(50); setup_rtc();
}
} kt++; if(kt==8)kt=0; } if(clear==0)kt=0; switch(kt) { case 0:break; case 1: { up0=up1;up1=up; a=1;d=1; if((up0==1)&&(up1==0)) { hour++;
if(hour==24)hour=0;
} down0=down1;down1=down; if((down0==1)&&(down1==0)) { hour;
if(hour==1)hour=23;
} break; } case 2:
51
{ up0=up1;up1=up; a=1;d=1; if((up0==1)&&(up1==0)) { minute++;
if(minute==60) minute=0;
} down0=down1;down1=down; if((down0==1)&&(down1==0)) { minute;
if(minute==1) minute=59;
} break; }
case 3: { up0=up1;up1=up;a=1;d=1; if((up0==1)&&(up1==0)) { second++;
if(second==60) second=0;
} down0=down1;down1=down; if((down0==1)&&(down1==0)) { second;
if(second==1) second=0;
}
52
break; } case 4: { up0=up1;up1=up; a=1;d=1; if((up0==1)&&(up1==0)) { day++;
if(day==8)day=1;
} down0=down1;down1=down; if((down0==1)&&(down1==0)) { day;
if(day==0) day=7;
} break; } case 5: {
up0=up1;up1=up; a=1;d=1;
if((up0==1)&&(up1==0)) {
date++;
if((month==4)||(month==6)||(month==9)||(month==11)){if(date==31) date=1;}
if((month==1)||(month==3)||(month==5)||(month==7)||
(month==8)|| (month==10)||(month==12)){if(date==32)date=1;}
if((month==2)&&(year%4==0)){if(date==29)date=1;} if((month==2)&&(year%4!=0)){if(date==30)date=1;}
}
53
down0=down1;down1=down; if((down0==1)&&(down1==0)) { date;
if((month==4)||(month==6)||(month==9)||(month==11)){if(date==0)
date=30;}
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||
(month==10)||(month==12)){if(date==0)date=31;}
if((month==2)&&(year%4==0)){if(date==0)date=28;} if((month==2)&&(year%4!=0)){if(date==0)date=29;}
}
break; } case 6: { up0=up1;up1=up; a=1;d=1; if((up0==1)&&(up1==0)) { month++;
if(month==13)month=1;
} down0=down1;down1=down; if((down0==1)&&(down1==0)) { month;
if(month==0)month=12;
} break; } case 7: { up0=up1;up1=up; a=1;d=1; if((up0==1)&&(up1==0)) {
54
year++;
if(year==100)year=0;
} down0=down1;down1=down; if((down0==1)&&(down1==0)) { year;
if(year==1)year=99;
} break; } } } void chinhgio(void) {
if(kt==1) {
if(sqw==1) {
led_buffer[0]=hour/10; led_buffer[1]=hour%10;
}else if(sqw==0)
{
led_buffer[0]=10; led_buffer[1]=10;
}
}
if(kt==2) {
if(sqw==1) {
led_buffer[2]=minute/10; led_buffer[3]=minute%10;
55
}else if(sqw==0)
{
led_buffer[2]=10; led_buffer[3]=10;
}
} if(kt==3) {
if(sqw==1) {
led_buffer[4]=second/10; led_buffer[5]=second%10;
}else if(sqw==0)
{
led_buffer[4]=10; led_buffer[5]=10;
}
}
if(kt==4) {
if(sqw==1) {
led_buffer[6]=10; led_buffer[7]=day%10;
}else if(sqw==0)
{
led_buffer[6]=10; led_buffer[7]=10;
}
} if(kt==5) {
if(sqw==1)
56
{
led_buffer[8]=date/10; led_buffer[9]=date%10;
}else if(sqw==0)
{
led_buffer[8]=10; led_buffer[9]=10;
}
} if(kt==6) {
if(sqw==1) {
led_buffer[10]=month/10; led_buffer[11]=month%10;
}else if(sqw==0)
{
led_buffer[10]=10; led_buffer[11]=10;
}
} if(kt==7) {
if(sqw==1) {
led_buffer[12]=2; led_buffer[13]=0; led_buffer[14]=year/10; led_buffer[15]=year%10;
}else if(sqw==0)
{
led_buffer[12]=10; led_buffer[13]=10; led_buffer[14]=10;
57
led_buffer[15]=10;
}
}
} void khoi_chay() {
P0=0x00; delays(100); led_buffer[0]=0xa;delays(5); led_buffer[1]=0xa;delays(5); led_buffer[2]=0xa;delays(5); led_buffer[3]=0xa;delays(5); led_buffer[4]=0xa;delays(5); led_buffer[5]=0xa;delays(5); led_buffer[6]=0xa;delays(5); led_buffer[7]=0xa;delays(5); led_buffer[8]=0xa;delays(5); led_buffer[9]=0xa;delays(5); led_buffer[10]=0xa;delays(5); led_buffer[11]=0xa;delays(5); led_buffer[12]=0xa;delays(5); led_buffer[13]=0xa;delays(5); led_buffer[14]=0xa;delays(5); led_buffer[15]=0xa;delays(5);
}
void main(){
timer0(); khoi_chay(); while(1) {
ktphim(); readds(); if(d==0){
58
dislay();
} if(d==1){
chinhgio(); d=0;
}
}
}
ở ộ ề : M r ng đ tài
ỉ ừ ề ạ ở ể ị ờ Trong đ tài này chúng em ch d ng l hi n th gi i , phút, giây,
ướ ứ ể ề ế ế th , ngày, tháng, năm. H ng phát tri n đ tài này là thi ầ t k thêm ph n
ờ ẽ ở ộ ữ ứ ể ế ơ ẹ h n gi , báo th c. N u phát tri n h n n a chúng em s m r ng thành
ế ế ị ệ ộ ị ề đ tài thi ả ể t k có c hi n th nhi t đ và ngày tháng âm l ch.
ệ ả : Tài li u tham kh o
ệ ố ả ậ ộ ỹ ỹ (cid:0) Bài gi ng H th ng nhúng – B môn K thu t Máy tính, ĐH K thu t ậ
ệ Công Nghi p Thái Nguyên – 2010
ử ề ể ả ậ ộ ỹ (cid:0) Bài gi ng Vi x lý Vi đi u khi n B môn K thu t Máy tính – ĐH
ậ ỹ ệ K thu t Công Nghi p Thái Nguyên – 2009
ơ ồ ươ ệ ả ấ (cid:0) S đ chân linh ki n D ng Minh Trí Nhà xu t b n KHKT
09/2005
59
ộ ố ạ (cid:0) M t s tài li u khác trên m ng: ệ
http://www. picat.dieukhien.net
http://www.datasheet4u.net
http://www. dientuvietnam.net
http://www. picvietnam.com
60