Lập trình cho vi điều khiển giao tiếp i2c Yêu cầu bài toán Thiết kế đồng hồ số Nguồn vào 5v Độ chính xác 0.0001 Điều chỉnh được giờ
Trang 1Đồ án môn điện tử số
Lời nói đầu
Học kỹ thuật số ( nay là điện tử số) là môn học cơ sở có vai trò rất quantrọng cho sinh viên kỹ thuật điện Trên cơ sở học tốt môn học kỹ thuật số, họcviên có kiến thức nền tảng để học các môn chuyên ngành sau này Cuối mônhọc thường có đồ án môn học, mục đích để học viên củng cố lý thuyết và bàitập, nắm được kiến thức cơ bản của môn học Qua đồ án môn học, học viên nắmđược cách thức, các bước làm đồ án, biết cách thiết kế một hệ thống số đơngiản, hiểu rõ hơn về cấu tạo và chức năng của một số IC đã học Do trình độ vàthời gian có hạn nên việc mô tả đồ án có thể có nhiều thiếu sót, chức năng củamột số IC hiểu còn chưa đầy đủ Mong thầy giáo và các đồng chí đóng góp ýkiến để đồ án hoàn thiện hơn! Chúng em xin chân thành cảm ơn!
Nội dung thiết kế đồng hồ điện tử số
I Yêu cầu bài toán
Trang 2đếm giây,phút ,giờ.Với giây thì đồng hồ đếm từ những giây đầu tiên và đếm hếtđến 59 giây và lúc này cần tạo ra một xung để kích thích lên chế độ đếm phút,phút cũng bắt đầu đếm từ chế độ đầu tiên và đếm tớ 59 phút lúc này cũng tạo ramốt xung cho chế độ đếm giờ ,riêng chế độ đếm giờ là chỉ đếm đến 24 giờ.Trường hợp điều chỉnh thì cần cho đồng hồ đếm lên từng phút hay giờ
Và kể từ đó đếm tiếp theo như trên
-Riêng bộ đếm giờ thì chỉ đếm đến 24 giờ thì quay về ban đầu (có nghĩa là cảgiây phút giờ về 00:00:00 )
-Các Ic đếm cần dùng tạo ra các chế độ reset
-Điều chỉnh cần phải đúng không tạo lên sự nhầm lẫn các xung đếm
-Đồng hồ thiết kế đơn giản nhưng chính xác
Với việc chọn giải pháp đó ta đưa ra một số lựa chọn
Trang 3a Bộ tạo xung ta dùng nguồn 5v ta cần tiến hành biến đổi nguồn này tạo lênvới mụch đích là tạo lên các xung chuẩn có tần số 1hz.Có nhiều cách tạo raxung chuẩn 1hz như dùng dao động đa hài ,dùng mạch khuyếch đại có hồi tiếpdương ,dùng thạch anh và các ic tạo dao động chuyên dụng như là ic 555.Trongcác cách đó nếu dùng thạch anh là chính xác hơn cả bởi sai số của nó rất nhỏ,tuy nhiên nếu dùng thạch anh ta lại phải tạo ra một mạch tương đối phức tạp đó
là khuyếch đại giao động nội từ thạch anh sau đó lại tiến hành chia tần nhiều lầnphức tạp mà lại sử dụng nguồn lớn.Để có một mạch dao động tạo xung chuẩntương đối chính xác người ta hay dùng ic 555 đây là ic tạo xung 1hz với các ưuđiểm như là giá thành rẻ,lắp giáp và vận hành tương đối đơn giản và có sử dụngđược nguồn 5v mà có nhiều ứng dụng và dễ tạo ra nguồn này có thể dưới dạngtồn tại dạng pin nhỏ gọn Trong đề tài này chúng em sử dụng ic này để tạo daođộng cho mạch
Trang 42 Trigger Đầu kích mức thấp 5Control volltage Điện áp điều khiển
Ic này hoạt động dưới tác dụng của nguồn nuôi 5v các linh kiện khác tạo lên cácxung tùy ý với sơ đồ mạch điện cổng
Sơ đồ mạch điện cổng
Với cấu tạo của chúng là các Flip-Flop(RS), bộ so sánh ,bộ phân áp,chuyểnmạch bóng MOS và tầng đêm ra.với cấu tạo gồm OP-amp so sánh điện áp,mạch lật và transistor để xả điện Cấu tạo của IC đơn giản nhưng hoạt động tốt.Bên trong gồm 3 điện trở mắc nối tiếp chia điện áp VCC thành 3 phần Cấu tạonày tạo nên điện áp chuẩn Điện áp 1/3 VCC nối vào chân dương của Op-amp 1
và điện áp 2/3 VCC nối vào chân âm của Op-amp 2 Khi điện áp ở chân 2 nhỏhơn 1/3 VCC, chân S = [1] và FF được kích Khi điện áp ở chân 6 lớn hơn 2/3VCC, chân R của FF = [1] và FF được reset
Giải thích sự dao động:
Ký hiệu 0 là mức thấp bằng 0V, 1 là mức cao gần bằng VCC Mạch FF là loại
RS Flip-flop,
Trang 5Khi S = [1] thì Q = [1] và = [ 0].
Sau đó, khi S = [0] thì Q = [1] và = [0]
Khi R = [1] thì = [1] và Q = [0]
Tóm lại, khi S = [1] thì Q = [1] và khi R = [1] thì Q = [0] bởi vì = [1],
transisitor mở dẫn, cực C nối đất Cho nên điện áp không nạp vào tụ C, điện áp
ở chân 6 không vượt quá V2 Do lối ra của Op-amp 2 ở mức 0, FF không reset
Giai đoạn ngõ ra ở mức 1:
Khi bấm công tắc khởi động, chân 2 ở mức 0
Vì điện áp ở chân 2 (V-) nhỏ hơn V1(V+), ngõ ra của Op-amp 1 ở mức 1 nên S
= [1], Q = [1] và = [0] Ngõ ra của IC ở mức 1
Khi = [0], transistor tắt, tụ C tiếp tục nạp qua R, điện áp trên tụ tăng Khi nhấn công tắc lần nữa Op-amp 1 có V- = [1] lớn hơn V+ nên ngõ ra của Op-amp 1 ở mức 0, S = [0], Q và vẫn không đổi Trong khi điện áp tụ C nhỏ hơn V2, FF vẫn giữ nguyên trạng thái đó
Trang 6Kết quả cuối cùng: Ngõ ra OUT có tín hiệu dao động dạng sóng vuông, có chu
kỳ ổn định
Với sơ đồ nguyên lý hoạt đôngnhư vậy ta thiết kế bộ tạo xung với tần số 1hz có dạng với cách mắc ic để tạo ra xung chuẩn có dạng
Trang 7Khi đó ta mắc như hình vẽ
Trang 8với công thức tinh
b Bộ đếm ta cũng có nhiều bộ đếm nhưng trong đồ án này chúng em dung bộđếm 74LS90 Đây là ic đếm thấp phân không đồng bộ mã NBCD khá thôngdụng với sớ đồ chân logic
Trang 9Để tạo thành bộ đếm 10 ta nối đầu ra A
COUNT OUTPUT
Q3 Q12 Q1 Q0 0
Trang 10Hình: Sơ đồ cổng logic IC 74LS90
Hình: Bảng trạng thái của IC 74LS90.
Trang 11Từ đó trong đề tài này chúng em sử dụng việc ghép nối các ic 74LS90 thành các
bộ đếm Thiết kế đông hồ đếm giờ phút giây sử dụng bộ đếm k=60 và k=24 đểthiết lập lên đồng hồ Trong đồng hồ thì giây và phút đếm đến 59 khi đó việcthiết lập nhờ ic này cần có bộ đêm k=100 và sau đó điều chỉnh các chân của ic
để bộ đếm chỉ đếm đến 59 thì reset về ban đầu.Khi đó ta ghép 2 bộ đếm k=10của ic 74LS90 và với nhau bằng cách đưa đầu ra Q3 của bộ đếm này vào đầuvào (cụ thể là đầu vào Cp0 của bộ đếm 2) bộ đếm kia, tạo lên bộ đếm k==100
có chỉ thị rõ hang chục hang đơn vị cụ thể như hình vẽ h*.Để bộ đếm đến 59 thì
ta chỉ cần cho bộ đếm hàng trục của bộ đếm k=100 đếm đến 5(có nghĩa là thiết
kế bộ đếm này có hệ số k=6, bảng dưới )khi đó bộ đếm này sẽ tự reset trở về0.Dựa vào các chân R0(1),R0(1) của ic bằng cách thiết lập trạng thái mức cao
để cho bộ đếm reset về 0.Khi đó từ bẳng trạng thái của bộ đếm thập phân và bộđếm ,ta thấy khi xung thứ 6 tương ứng với trạng thái 0110,mạch sẽ phải chuyển
vầ trạnh thái 0000 như vậy mạch phản hồi đưa tín hiệu về các đầu vào xóa xungthứ 6 khi đó ta dùng mạch AND để đưa tin hiều về xóa xung thứ 6.Do nếukhông dùng mạch AND khi ta đưa về khi đó hai chân tín hiệu ra của các chân ictrùng vào nhau khi đó ta đưa về là luôn là mức tích cức cao và khi đó mạch
Trang 1274LS90 của bộ đếm hàng chục không thực hiện đếm.Như vậy ta cần dùng mạchAND để đồng thời đưa tín hiệu về các chân tín hiệu của ic đếm, mạch AND chỉmức tích cực cao khi đồng thời các chân ic đồng mức tích cực cao đáp
Xung đếm Bộ đếm k=10
DCBA
Bộ đếm k=6D’C’B’A’
Trang 13Hình *
ứng được nhu cầu của các chữ số thập phân của xung đếm.Trong trường hợpnày ta sử dụng bộ đếm k=6 khi đó xung 6 (có số thập phân là 0110)có hai mứctích cự cao khi đó ta cần dùng mạch AND hai đầu vào để đưa đồng thời cácchân tích cực cao về bộ đếm của hàng chục để tiến hành reset về vị trí banđầu.Trong trường hợp này chúng em sử dụng mạch AND 7408 đây là mạchAND hai đầu vào tín hiệu ra của mạch AND ở mức tích cực khi đồng thời cácchân tín hiệu đều ở mức tích cực cao
Trang 14Khi đó tín hiệu của hai mức tích cực cao được đưa về các chân R0(1),R0(2) của
Khi đó bộ đếm này chỉ đếm đến 5 là tự reset về 0
Trang 15Riêng bộ đếm giờ ta cũng xây dựng bộ đếm k=100 như trên nhưng lúc này tachỉ yêu cầu bộ đếm hàng chục đếm đến 2 còn bộ đếm hàng đơn vị đến 3,sau khi
đó thì bộ đếm này phải reset về 0.khi đó ta nhận thấy rằng xây dựng bộ đếm nàythì ta chỉ cần cho bộ đếm hàng chục đếm đến 2 và bộ đếm hàng đơn vị đếm đến
3 đương nhiên là ta nhận thấy đó là cách nghĩ đơn giản xong việc chế tạo đượccác bộ đếm này là khó có thể thực hiện được.Nhưng ta nhận thấy rằng là để cho
bộ đếm này tự động reset về vị trí 0 thì các chân của ic 74ls90 phải có mức tíchcực cao và đồng nghĩa với đó ta nhận thấy khi bộ đếm hoạt động thì mỗi một icnày hoạt động độc lập và chỉ liên kết với nhau thông qua xung đầu vào,khi đó tacần yêu cầu rằng là bộ đếm này đếm đến 23 thì reset về 0,ta thấy rằng là khi bộđếm hàng chục này đếm đến 2 thì chân Q1 ở mức tích cực (hay là mức 1) khi đónhờ có chức năng của mạch AND mạch này chỉ có mức tích cực khi đồng thờihai chân tín hiệu vào đều ở mức tích cực rõ dàng khi đó ta cần có yêu cầu rằng
là chân còn lại của ic phải là mức tích cực cao Đây là bộ đếm mà bộ đếm hàngđơn vị ta có thể coi là độc lập được vì bộ đếm này là bộ đếm k=10 có chân ra làchân Q3 ,khi đó ta dễ dàng xây dưng bộ đếm này có hệ số k=4 bằng cách chođồng thời hai chân của mạch AND này cùng vào chân Q3( vì khi đếm đếm 3 thì
(lưu ý không nối tắt hai chân này vớinhau ) nhưng thay vào đó ta sử dụng trong trường hợp này ta chỉ cần dùng mộtmạch AND là đã thay được cho việc ta nối vào hai chân của ic đồng thời nốivào Q3
Quay lại bài toán thiết kế ta đưa chân mức tích cực cao của bộ đếm hàng đơn vịcùng vào mạch AND kết hợp với mức tích cực cao của bộ đếm hàng chục đếmđến 2(0010)của bộ đếm k=100 ban đầu và đồng thời chân ra của mạch AND
Trang 16này được đưa tớ đồng thời chân R0(bộ đếm 1),R0(bộ đếm 1),R0(bộ đếm2),R0(bộ đếm 2)hai bộ đếm hàng đơn vị và hàng chục để đồng thời hai bộ đếmnày được reset về 0 mô tả như hình vẽ
c Bộ giải mã :Bộ giải mã ta cũng có nhiều cách chọn nhưng trong đồ án chúng
em lựa chọn bộ giải mã là bộ giải mã 74LS47 Đây là bộ giải mã BCD –7thanh,chuyển đổi mã BCD thành mã 7 thanh có 4 đầu vào và 7 đầu ra
Trang 17hĐây là ic thuộc loại TTl dùng cho LED có anot chung.Trong đó D,C B,A là 4chân tín hiệu vào của số BCD với D là bit có trọng số lớnnhất,QA,QB,QC,QD,QE,QF,QG là các 7 chân tín hiệu ra dữ liệu để cấp choLED 7 thanh .Các chân điều khiển LT(lamp test),RBI(Ripple blankinginput),BI/RBOcó mức tích cực thấp để thêm một số chức năng của ic.
Nguyên lý hoạt động của ic được mô tả bằng sơ đồ chân lý sau:
và khi đó bộ giải mã này có các chân tín hiệu ra được nối với led
Trang 18Khi đó ta lập bảng giá trị hàm theo chức năng ta chú ý là mạch chỉ sử dụngmười tổ hợp tín hiệu vào đầu tiên sáu tổ hợp còn lại sử dụng giá trị tùy ý.Đưalên bảng karaugh và thực hiện tối thiểu ta được
DFHSHFHSDFHSHD
Ta có bảng chức năng của ic
Trong bảng chức năng ta thấy mười tổ hợp đầu tín hiẹu vào từ 0000 đến 1001 ic
sẽ cho ra tổ hợp tín hiệu để sáng các chữ số BCD tương ứng.Sáu tổ hợp còn lạikhi tín hiệu vào DCBA có giá trị từ 1010 đến 1111 là không thể xuất hiện trênđầu vào, gí trị các tín hiệu có thể chọn 0 hay 1 tùy ý ,nếu sử dụng tổ hợp tín hiệu
Trang 19vào là 1111 khi đó tổ hợp các đèn LED này sẽ tắt mô tả
Trong trường hợp các chân tín hiệu BI/RBO có mức tích cực thì sẽ buộc tất cảcác đầu tín hiệu ra có mức không tích cực và tắt tất cả cá led của đèn.Còn khichân BI có mức không tích cực có thể kiểm tra hư hỏng của tất cả các led bằngmức tích cực trên đầu vào LT,chân LT luôn luôn là một chân nguồn(là chânnguồn 5 v) Từ đó cho phép sử dụng cho sáng tất cả hay tắt tất cả các led trongđèn bằng cách đắt số BCD tương ứng với đầu vào hay bằng cách đưa tín hiệutới các chân LI hay BI
Các chân RBI được sử dụng cho những led 7 thanh không hiển thị chữ số 0 khi
đó các chân BI/RBO trở thành các chân tín hiệu ra và được ngỏ
d Hệ thống hiển thị: Hiển thị ta sử dụng hệ thống đèn LED 7 thanh gồm 7 chântín hiệu đưa vào ,mỗi thanh là một điốt phát quang có anốt chung
Với hệ thống các chân tín hiệu gồm các chân tín hiệu đưa vào và chân nguồn
5 v Từ đó rõ ràng ta nhận thấy ta đã sử dụng ic giải 74LS47 là ic giải mã 7thanh với mỗi ic ta cần có một đèn LED hiển thị
Trang 20Qua hệ thống sơ bộ vậy ta thấy rằng bộ đếm giờ phút và giây cần có tổng số đènhiển thị là 6,chỉ thị cho cả giờ,phút và giây
e Hệ thống chỉnh giờ phút
Trong trường hợp này ta sử dụng việc cung cấp xung kích thích cho các ic của
bộ đếm xung này có tác dụng tạo cho bộ đếm tăng lên mỗi khi ta bấm nút thìixung này cấp cho ic đếm nếu ta giữ nút đó thì bộ đếm bình thường,ta sử dụngtrong này sử dụng luôn xung 1hz để cấp xung cho bộ đếm
Để đồng hồ khi hiện thi số giờ hang chục không hiênt thị thì ta sư dụng các chânchức năng của ic 74ls 47 cụ thể là ta để chân LT với nguồn, chân RBI nối đất vàchân còn lại bỏ ngỏ
3 Nguyên lý và sơ đồ khối của đồng hồ
Trang 21sơ đồ khối
b Mô tả nguyên lý hoạt động
Ban đầu khi đã cấp nguồn đầy đủ đồng hồ hiển thị qua các LED là 0:00:00Dưới tác dụng của nguồn nuôi 5 v của ic 555 Ic này tạo ra xung kích có tần số1Hz xung này được đưa này được đưa đến chân Cp0 của ic 74LS90 đầu tiên của
bộ đếm giây , khi cấp cho xung đếm thì đồng hồ đếm xung đầu tiên được0:00:01 và cứ như vậy cho đến khi bộ đếm hàng đơn vi đếm đến 9(0:00:09) thìcung cấp xung cho bộ đếm hàng chục của bộ đếm giây cho đếm khi bộ đếmgiây đếm đến 59(0:00:59) lúc này bộ đếm giây cần tạo 1 xung cho bộ đếmphút.Thông qua việc mô tả thuật toán ở trên nhưng ta cần lấy luôn xung resetcủa bộ đếm giây này là xung kích thích cụ thể là tín hiệu xung được lấy ra từmạch AND nhưng khi ghép nối này ta cần có thêm một điốt để tránh sư xungquay lại, khi đó sau khi cung cấp một xung cho bộ đếm phút (0:01:00)và đồngthời lúc này bộ đếm giây reset về ban đầu thực hiện chu kỳ tiếp theo cứ nhưvậy bộ đếm này đếm đến 59 lại cung cấp cho xung đếm phút(0:02:00)
Thực hện như vậy cho đến khi bộ đếm đến 0:59:00 thì tạo cho xung đếmgiờ(1:00:00) và đồng thời các bộ đếm phút và giây reset về 0.Cứ như vậy bộđếm đến 23:59:59 thì đồng thời tất cả các bộ đếm này đều phải reset về ban đầu0:00:00 và thực hiện chu kỳ tiếp theo…
Bộ điều chỉnh giờ ở đây ta sử dụng luôn xung đã tạo ra từ bộ tạo xung 1hz trên
là xung kích thích ta sử dụng công tắc để cung cấp xung, mỗi khi ấn thì bộ đếmnày đếm tăng lên nhưng không ảnh hưởng đến bộ đếm sau do đó là điều mà ta
sử dụng điốt nối giữa hai bộ đếm phút và giây ,phút và giờ Xung này được đưađến đâu vào của bộ đếm phút hay giờ
Khi đó ta mô tả sơ đồ hoàn chỉnh là
Trang 22III Ứng dụng
Thực tế ứng dụng của đồng hồ là rất phổ biến trên cuộc sống với các ic như trên
ta cũng có thể áp dụng các ic để tự mình sáng tạo lên cho mình một chiếc đồnghồ
Tài liệu tham khảo
1 Kỹ thuật số tập 1 ,2 HVKTQS Lê xuân Bằng
2 Sổ tay điện tử
3 các linh kiện điện tử