Ngày nay kĩ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật và trong dân dụng.Vi điều khiển ngày càng được ứng dụng rộng rãi, từ các dây chuyền sản xuất lớn đến các thiết bị gia dụng chúng ta đều thấy sự hiện diện của vi điều khiển. Vi diều khiển không những góp phần vào kỹ thuật điều khiển mà còn góp phần to lớn vào phát triển thông tin. Đó là sự ra đời của hàng loạt thiết bị viễn thông và truyền hình hiện đại, đạc biệt nó góp phần đưa con người lên đỉnh cao của nhân loại.
TỔNG QUAN VỀ ĐỀ TÀI
TỔNG QUAN
1.1.Yêu cầu và mục đích của đề tài
Con người đã ghi nhận và đặt tên cho các khoảng thời gian như buổi, ngày, tháng và năm Tuy nhiên, trước khi có đồng hồ, việc đo đạc các khoảng thời gian ngắn hơn một ngày thường thiếu chính xác Người xưa dễ dàng ước lượng thời gian qua vị trí của mặt trời, phân chia thành sáng, trưa, chiều và tối Để đo thời gian ngắn hơn một buổi, họ thường sử dụng nhang hoặc đèn cầy, tính theo thời gian cháy Ngoài ra, các loại bình chứa cát hoặc nước cũng được sử dụng từ thời cổ đại của các nền văn minh Ai Cập và Trung Hoa để đo thời gian.
- Loại đồng hồ như chúng ta biết đến ngày nay hình thành vào khoảng thế kỷ
Đồng hồ, có nguồn gốc từ châu Âu, đã trở thành món đồ gia dụng phổ biến từ thế kỷ 18, được ưa chuộng bởi mọi giai cấp Sau đó, đồng hồ đeo tay cũng nhanh chóng trở thành trang sức cá nhân quan trọng Nhận thấy sự quan trọng của đồng hồ trong cuộc sống, chúng em đã quyết định chọn mạch đồng hồ để thực hiện đồ án của mình.
- Mạch đồng hồ yêu cầu:
- Đảm bảo trong quá trình hoạt động một cách chính xác và liên tục.
- Đảm bảo làm việc ổn định, lâu dài.
Dưới sự hướng dẫn của Thầy VŨ TRỌNG TRƯỜNG và sự hỗ trợ từ các bạn trong lớp cũng như ngoài lớp, nhóm đã tiến hành thực hiện đề tài theo phương pháp đã được thống nhất.
- Thu thập tài liệu liên quan.
- Tìm hiểu và lý giải các vấn đề khuất mắc.
- Tiếp thu nhiều ý kiến quý báu của thầy cô và những người bạn.
- Tiến hành thiết kế, thi công và viết đồ án theo sự hướng dẫn của Thầy
CƠ SỞ LÝ THUYẾT
Tóm tắt về lịch sử của AT89C51
Vào năm 1981, Intel đã giới thiệu bộ vi điều khiển AT89C51, được xem như một "hệ thống trên chip" với 128 byte RAM, 4K byte ROM trên chip, hai bộ định thời, một cổng nối tiếp và bốn cổng vào ra 8 bit AT89C51 là bộ xử lý 8 bit, cho phép CPU xử lý 8 bit dữ liệu tại một thời điểm.
Dữ liệu lớn hơn 8 bit được chia thành các khối 8 bit để xử lý Vi điều khiển AT89C51 có 4 cổng vào-ra I/O, mỗi cổng rộng 8 bit Mặc dù 8051 có khả năng tích hợp tối đa 64 K byte ROM trên chip, nhưng các nhà sản xuất chỉ cung cấp 4K byte ROM trên chip trong thời gian đầu Thông tin này sẽ được phân tích chi tiết hơn trong các phần sau.
AT89C51 đã trở nên phổ biến nhờ Intel cho phép các nhà sản xuất khác sản xuất các biến thể của nó, miễn là mã lại tương thích Điều này dẫn đến nhiều phiên bản AT89C51 với tốc độ và dung lượng ROM khác nhau từ hơn nửa các nhà sản xuất Dù có nhiều biến thể, tất cả đều tương thích với AT89C51 ban đầu về lệnh, cho phép chương trình viết cho một phiên bản có thể chạy trên mọi phiên bản khác, không phân biệt nhà sản xuất.
Bảng 1: Các đặc tính của AT89C51 đầu tiên. Đặc tính Số lượng
Bộ định thời Các chân vào - ra Cổng nối tiếp Ngắt Nguồn
Bộ vi điều khiển 8051, được Intel ký hiệu là MCS51, là thành viên đầu tiên của họ AT89C51 Các đặc tính nổi bật của AT89C51 được trình bày trong bảng 3.2.
Sơ đồ chân AT89C51
Chức năng của các chân tín hiệu sau:
- P0.0 đến P0.7 là các chân của cổng 0.
- P1.0 đến P1.7 là các chân của cổng 1.
- P2.0 đến P2.7 là các chân của cổng 2
- P3.0 đến P3.7 là các chân của cổng 3
- RxD: Nhận tín hiệu kiểu nối tiếp.
- TxD: Truyền tín hiệu kiểu nối tiếp.
- T0: Chân vào 0 của bộ Timer/Counter 0.
- T1: Chân vào 1 của bộ Timer/Counter 1.
- /Wr: Ghi dữ liệu vào bộ nhớ ngoài.
- /Rd: Đọc dữ liệu từ bộ nhớ ngoài.
- RST: Chân vào Reset, tích cực ở mức logic cao trong khoảng 2 chu kỳ máy.
- XTAL1: Chân vào mạch khuyếch đaị dao động
- XTAL2: Chân ra từ mạch khuyếch đaị dao động.
- /PSEN : Chân cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài).
Chân ALE (/PROG) là tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài, xuất ra byte thấp của địa chỉ khi được kích hoạt ở mức cao Tần số xung chốt bằng 1/6 tần số dao động của bộ vi điều khiển (VĐK), có thể sử dụng cho các bộ Timer ngoài hoặc để tạo xung Clock Ngoài ra, chân này cũng nhận xung vào để nạp chương trình cho Flash hoặc EEPROM bên trong On-chip khi ở mức thấp.
- /EA/Vpp: Cho phép On-chip truy cập bộ nhớ chương trình ngoài khi /EA=0, nếu -
Khi chân EA được cấp nguồn điện áp 12V (Vpp), On-chip sẽ làm việc với bộ nhớ chương trình nội trú và đảm nhận chức năng nạp chương trình cho Flash bên trong.
- Vcc: Cung cấp dương nguồn cho On-chip (+ 5V).
Các thanh ghi chức năng đặc biệt
Bảng 2 Địa chỉ, ý nghĩa và giá trị của các SFR sau khi Reset
Symbol Name Address Reset Values
* ACC Thanh ghi tích lũy 0E0h 00000000b
* PSW Từ trạng thái của chương trình 0D0h 00000000b
SP Con trỏ ngăn xếp 81h 00000111b
DP0L Byte cao của con trỏ dữ liệu 0 82h 00000000b DP0H Byte thấp của con trỏ dữ liệu 0 83h 00000000b
* IP TG điều khiển ngắt ưu tiên 0B8h xxx00000b
* IE TG điều khiển cho phép ngắt 0A8h 0xx00000b TMOD Điều khiển khiểu Timer/Counter 89h 00000000b
TCON TG điều khiển Timer/Counter 88h, với TH0 là byte cao của Timer/Counter 0 tại địa chỉ 8Ch và TL0 là byte thấp của Timer/Counter 0 tại địa chỉ 8Ah Tương tự, TH1 là byte cao của Timer/Counter 1 tại địa chỉ 8Dh và TL1 là byte thấp của Timer/Counter 1 tại địa chỉ 8Bh.
SBUF Serial Data Buffer 99h indeterminate
Có thể định địa chỉ bit, x: Không định nghĩa
Thanh ghi tích lũy (ACC) là một thanh ghi dài 8 bits, được sử dụng để lưu trữ các toán hạng và kết quả của phép tính Trong các tập lệnh của On-chip, thanh ghi này thường được gọi đơn giản là A.
Thanh ghi B, với độ dài 8 bits, được sử dụng chủ yếu trong các phép toán nhân và chia Đối với các lệnh khác, nó hoạt động như một thanh ghi đệm tạm thời.
Nó thường được dùng chung với thanh ghi A trong các phép toán nhân hoặc chia.
Con trỏ ngăn xếp (SP) là một thanh ghi dài 8 bit, chứa địa chỉ của dữ liệu tại đỉnh ngăn xếp Giá trị của SP tự động tăng khi thực hiện lệnh PUSH và giảm khi thực hiện lệnh POP Ngăn xếp có thể được đặt ở bất kỳ vị trí nào trong RAM on-chip, nhưng sau khi khởi động lại hệ thống, SP sẽ mặc định trỏ đến địa chỉ 07h, khiến ngăn xếp bắt đầu từ địa chỉ 08h Người dùng cũng có thể định vị trí của con trỏ ngăn xếp tại địa chỉ mong muốn thông qua các lệnh di chuyển dữ liệu.
Thanh ghi con trỏ dữ liệu (16 bit) bao gồm 1 thanh ghi byte cao (DPH-8bit) và
Thanh ghi byte thấp (DPL-8bit) trong DPTR có thể hoạt động như một thanh ghi 16 bit hoặc hai thanh ghi 8 bit độc lập Thanh ghi này được sử dụng để truy cập RAM ngoài.
Các chốt PO, Pl, P2, P3 tương ứng với các cổng 0, 1, 2, 3, mỗi chốt có 8 mức logic cao Khi ghi mức logic 0 vào từng bit của chốt, chân ra tương ứng của cổng sẽ ở mức logic thấp Khi các cổng hoạt động như đầu vào, trạng thái bên ngoài của các chân cổng sẽ được duy trì ở bit chốt tương ứng.
Bốn cổng I/O hai chiều trên chip, mỗi cổng bao gồm 8 chân ra, được trang bị bộ "Pullup-tăng cường" cho từng chốt bit, giúp nâng cao khả năng kết nối với tải, cho phép giao tiếp với từ 4 đến 8 tải loại TTL.
1.3.6 Thanh ghi SBUF: Đệm dữ liệu nối tiếp gồm 2 thanh ghi riêng biệt, một thanh ghi đệm phát và một thanh ghi đệm thu Khi dữ liệu được chuyển tới SBUF, nó sẽ đi vào bộ đệm phát, và được giữ ở đấy để chế biến thành dạng truyền tin nối tiếp Khi dữ liệu được truyền đi từ SBUF, nó sẽ đi ra từ bộ đệm thu.
Các đôi thanh ghi (THO, TLO), (THI, TL1) là các thanh ghi đếm 16 bit tương ứng với các bộ Timer/Counter 0 và 1.
1.3.8 Các thanh ghi điều khiển
Các thanh ghi chức năng đặc biệt như IP, IE, TMOD, TCON, SCON và PCON chứa các bit trạng thái và điều khiển liên quan đến hệ thống ngắt, bộ Timer/Counter và cổng nối tiếp Nội dung chi tiết về các thanh ghi này sẽ được trình bày ở phần sau.
Trạng thái chương trình được lưu trữ trong thanh ghi PSW với độ dài 8 bit, trong đó mỗi bit đảm nhiệm một chức năng riêng biệt Thanh ghi này cho phép truy cập thông tin ở mức bit, giúp quản lý và theo dõi trạng thái chương trình hiệu quả.
CY: Cờ nhớ Trong các phép toán số học,nếu có nhớ từ phép cộng bit 7 hoặc có số mượn mang đến bit thì CY được đặt bằng 1
CY AC FO RS1 RS0 OV - P
AC, hay còn gọi là cờ nhớ, có vai trò quan trọng trong việc cộng các giá trị BCD Khi quá trình cộng tạo ra một số nhớ từ 3 bit chuyển sang bit 4, AC sẽ được đặt bằng 1 Đối với các giá trị BCD, sau lệnh cộng, cần thực hiện lệnh DA.A (hiệu chỉnh thập phân thanh chứa A) để điều chỉnh các kết quả vượt quá 9 về giá trị chính xác.
F0: Cờ 0 (Có hiệu lực với các mục đích chung của người sử dụng)
RS1: Bit 1 điều khiển chọn băng thanh ghi.
RS0: Bit 0 điều khiển chọn băng thanh ghi
Lưu ý: RS0, RS1 được đặt/xóa bằng phần mềm để xác định băng thanh ghi hoạt động (Chọn băng thanh ghi bằng cách đặt trạng thái cho 2 bit này)
Bảng 3 Chân băng thanh ghi
Khi thực hiện các phép toán cộng hoặc trừ, nếu xảy ra tràn số học (overflow), giá trị ov sẽ được đặt bằng 1 Đối với phép cộng hoặc trừ các số có dấu, phần mềm kiểm tra ov để xác định kết quả có nằm trong khoảng hợp lệ hay không Đối với phép cộng các số không dấu, ov sẽ bị bỏ qua Nếu kết quả lớn hơn +128 hoặc nhỏ hơn -127, thì sẽ đặt OV = 1.
•Bit dành cho người sử dụng tự định nghĩa(Nếu cần).
Cờ chẵn lẻ là một chỉ thị quan trọng trong quá trình xử lý lệnh, được tự động đặt hoặc xóa bằng phần cứng Nó xác định số lượng bit 1 trong thanh ghi tích lũy và đảm bảo rằng tổng số bit 1 trong A cộng với cờ p luôn là số chẵn.
Thanh ghi điều khiển nguồn.
SMOD - - - GF1 GF0 PD IDL
SMOD là một tính năng cho phép tăng tốc độ Baud gấp đôi Khi Timer 1 được sử dụng để tạo tốc độ Baud và giá trị SMOD bằng 1, tốc độ Baud sẽ được nhân đôi khi cổng truyền tin nối tiếp hoạt động ở các chế độ 1, 2 hoặc 3.
• Không sử dụng, các bit này có thể được dùng ở các bộ VXL trong tương lai. Người sử dụng không được phép tự định nghĩa cho các bit này.
• GF0, GF1: Cờ dùng cho các mục đích chung (đa mục đích).
• PD: bit nguồn giảm Đặt bit này ở mức tích cực để vận hành chế độ nguồn giảm trong AT89C51 Chỉ có thể ra khỏi chế độ bằng Reset.
• IDL: bit chọn chế độ nghỉ Đặt bit này ở mức tích cực để vận hành kiểu Idle (Chế độ không làm việc) trong AT89C51.
Khi cả PD và IDL được kích hoạt đồng thời ở mức tích cực, PD sẽ được ưu tiên thực hiện trước Để thoát khỏi chế độ này, bạn chỉ cần sử dụng một ngắt hoặc thực hiện Reset lại hệ thống.
Thanh ghi cho phép ngắt
CÁC TIÊU CHUẨN LỰA CHỌN BỘ VI ĐIỀU KHIỂN
Có 4 bộ vi điều khiển 8 bit chính Đó là 6811 của Motorola, 8051 của Intel Z8 của Xilog và Pic 16 của Microchip Technology Mỗi một kiểu loại trên đây đều có một tập lệnh và thanh ghi riêng duy nhất, nếu chúng đều không tương thích lẫn nhau Cũng có những bộ vi điều khiển 16 bit và 32 bit được sản xuất bởi các hãng sản xuất chíp khác nhau Với tất cả những bộ vi điều khiển khác nhau như thế này thì lấy gì làm tiêu chuẩn lựa chọn mà các nhà thiết kế phải cân nhắc?
2.1 Tiêu chuẩn đầu tiên và trước hết trong lựa chọn một bộ vi điều khiển là nó phải đáp ứng nhu cầu bài toán về một mặt công suất tính toán và giá thành hiệu quả. Trong khi phân tích các nhu cầu của một dự án dựa trên bộ vi điều khiển chúng ta trước hết phải biết là bộ vi điều khiển nào 8 bit, 16 bit hay 32 bit có thể đáp ứng tốt nhất nhu cầu tính toán của bài toán một cách hiệu quả nhất? Những tiêu chuẩn được đưa ra để cân nhắc là:
Tốc độ: Tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu.
Kiểu đóng vỏ của linh kiện điện tử có thể là DIP với 40 chân hoặc QFP, cùng với các kiểu đóng vỏ khác DIP là loại đóng vỏ với 2 hàng chân, trong khi QFP có hình dạng vuông dẹt Việc lựa chọn kiểu đóng vỏ này rất quan trọng cho yêu cầu về không gian, phương pháp lắp ráp và việc tạo mẫu thử cho sản phẩm cuối cùng.
Công suất tiêu thụ: Điều này đặc biệt khắt khe đối với những sản phẩm dùng pin, ắc quy.
Dung lượng bộ nhớ RAM và ROM trên chíp.
Số chân vào – ra và bộ định thời trên chíp
Khả năng dễ dàng nâng cấp cho hiệu suất cao hoặc giảm công suất tiêu thụ.
Giá thành cho một đơn vị: Điều này quan trọng quyết định giá thành cuối cùng của sản phẩm mà một bộ vi điều khiển được sử dụng.
2.2 Tiêu chuẩn thứ hai trong lựa chọn một bộ vi điều khiển là khả năng phát triển các sản phẩm xung quanh nó dễ dàng như thế nào? Các cân nhắc chủ yếu bao gồm khả năng có sẵn trình lượng ngữ, gỡ rối, trình biên dịch ngôn ngữ C hiệu quả về mã nguồn, trình mô phỏng hỗ trợ kỹ thuật và khả năng sử dụng trong nhà và ngoài môi trường Trong nhiều trường hợp sự hỗ trợ nhà cung cấp thứ ba (nghĩa là nhà cung cấp khác không phải là hãng sản xuất chíp) cho chíp cũng tốt như, nếu không được tốt hơn, sự hỗ trợ từ nhà sản xuất chíp.
2.3 Tiêu chuẩn thứ ba trong lựa chọn một bộ vi điều khiển là khả năng sẵn sàng đáp ứng về số lượng trong hiện tại và tương lai Đối với một số nhà thiết kế điều này thậm chí còn quan trong hơn cả hai tiêu chuẩn đầu tiên Hiện nay, các bộ vi điều khiển 8 bit dấu đầu, họ 8051 là có số lượng lớn nhất các nhà cung cấp đa dạng. Nhà cung cấp có nghĩa là nhà sản xuất bên cạnh nhà sáng chế của bộ vi điều khiển. Trong trường hợp 8051 thì nhà sáng chế của nó là Intel, nhưng hiện nay có rất nhiều hãng sản xuất nó (cũng như trước kia đã sản xuất).
Các hãng này bao gồm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra và Dallas, Semicndictior.
LED 7 ĐOẠN VÀ LED ĐƠN
3.1.Các khái niệm cơ bản
Trong các thiết bị điện tử, "led 7 đoạn" thường được sử dụng để báo trạng thái hoạt động với các dãy số đơn giản Nó có thể hiển thị thông tin như nhiệt độ phòng, thời gian trên đồng hồ treo tường, hoặc số lượng sản phẩm đã kiểm tra sau mỗi công đoạn.
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
Anode chung (+) được kết nối với +Vcc, trong khi các chân còn lại được sử dụng để điều khiển trạng thái sáng và tắt của các LED đơn LED chỉ sáng khi tín hiệu đầu vào tại các chân này ở mức 0.
Cathode (cực âm) chung được kết nối với Ground (hay Mass), trong khi các chân còn lại được sử dụng để điều khiển trạng thái sáng và tắt của các LED đơn LED chỉ phát sáng khi tín hiệu đầu vào ở các chân này đạt mức 1.
Hiển thị LED 7 thanh là một thiết bị phổ biến dùng để hiển thị các chữ số từ 0 đến 9 trong hệ thập phân Nó bao gồm 7 thanh diode (LED) được sắp xếp thành hình số 8, mỗi thanh có khả năng phát quang Các diode thường được làm từ các chất như Ga, As, P và có tính chất chỉnh lưu tương tự như diode thông thường Khi điện áp thuận vượt qua ngưỡng nhất định, diode sẽ sáng lên, với điện áp ngưỡng dao động từ 1,5 đến 5V tùy thuộc vào loại màu sắc khác nhau.
LED màu đỏ có điện áp ngưỡng Ung = 1,6 đến 2 v
LED màu cam có điện áp ngưỡng Ung = 2,2 đến 3 v
LED màu xanh lá cây có điện áp ngưỡng Ung = 2,8 đến 3,2 v
LED màu vàng có điện áp ngưỡng Ung = 2,4 đến3, 2 v
LED màu xanh ra trời có điện áp ngưỡng Ung = 3 đến 5 v
Thiết kế bộ giải mã hiển thị cho LED 7 thanh với tín hiệu đầu vào là mã BCD
Dạng chỉ thị led 7 đoạn:
Để bảo vệ đèn LED 7 đoạn, cần đảm bảo dòng điện qua mỗi LED đơn trong khoảng 10mA-20mA khi kết nối Khi sử dụng nguồn 5V, có thể hạn dòng bằng cách sử dụng điện trở 220Ω trước các chân nhận tín hiệu điều khiển Các điện trở 220Ω này được kết nối bên ngoài để giới hạn dòng điện qua LED khi LED 7 đoạn được nối với nguồn 5V.
Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b Tương tự với các chân và các led còn lại.
3.2 Kết nối với vi điều khiển
Để điều khiển LED 7 đoạn, cần sử dụng 8 đường tín hiệu từ một Port của Vi điều khiển, cho phép nhận dữ liệu 8 bit để điều khiển hoạt động sáng tắt của từng LED đơn Dữ liệu này được gọi là "mã hiển thị LED 7 đoạn" và có hai kiểu mã: cho LED 7 đoạn Anode chung và Cathode chung Ví dụ, để hiển thị số 1, với LED Anode chung, cần đặt điện áp 0V cho chân b và c, trong khi các chân còn lại là 5V Ngược lại, với LED Cathode chung, chân b và c cần điện áp 5V, còn các chân khác là 0V.
Bảng mã hiển thị led 7 đoạn( led 7 đoạn anot chung: led đơn sáng ở mức 0)
Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân hgfedcba
Bảng 5: Mã hiển thị led 7 đoạn dành cho led 7 đoạn canot chung(các led đơn sáng ở mức 1)
Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân hgfedcba
Phần cứng cần được kết nối với một cổng bất kỳ của Vi điều khiển để dễ dàng xử lý sau này Cụ thể, Px.0 nên được nối với chân a, Px.1 nối với chân b, và tiếp tục theo thứ tự cho đến Px.7 nối với chân h.
Dữ liệu xuất có dạng nhị phân như sau : hgfedcba
Từ bảng chức năng lập bảng karnaught cho 7 hàm rat a có kết quả: a = A B C D + A B C D b = A B C D + A BC D c = A BC D d = A B C D + A B C D + ABC D e = A B C D + AB C D + A B C D + A B C D + ABC D f = A B C D + A B C D + AB C D + ABC D g = A B C D + ABC D + A B C D
GIAO TIẾP VI ĐIỀU KHIỂN VỚI LED 7 ĐOẠN
Để tối ưu hóa việc kết nối nhiều led 7 đoạn với vi điều khiển, ta có thể kết nối tối đa 4 led 7 đoạn nếu sử dụng mỗi Port cho một led Tuy nhiên, điều này sẽ hạn chế khả năng thực hiện các tác vụ khác của vi điều khiển Do đó, cần tìm cách điều khiển nhiều led 7 đoạn với số chân điều khiển ít nhất Có hai giải pháp: sử dụng IC chuyên dụng cho hiển thị led 7 đoạn hoặc kết nối nhiều led vào cùng một đường xuất tín hiệu Phương pháp quét led cho phép nối tất cả chân nhận tín hiệu của các led vào một Port, ví dụ như 8 led 7 đoạn có thể kết nối với P0 Các ngõ ra còn lại của vi điều khiển sẽ điều khiển ON/OFF cho từng led, với ON là cấp nguồn để hiển thị và OFF là ngắt nguồn Chỉ nên cho vi điều khiển điều khiển một led 7 đoạn tại mỗi thời điểm, đảm bảo có một ngõ ra duy nhất nối với transistor.
1 Tại mỗi thời điểm chỉ có một led 7 đoạn được ON nên sẽ không xảy ra tình trạng quá tải cho tải và quá tải cho vi điều khiển khi điều khiển nhiều led 7 đoạn
Dựa vào hiện tượng lưu ảnh trên võng mạc, mắt vẫn giữ lại hình ảnh ngay cả khi ánh sáng không còn, chúng ta thiết lập mỗi LED hiển thị 24 lần mỗi giây Nhờ đó, mắt sẽ cảm nhận hình ảnh như liên tục.
4.1.1 Giải mã thập phân sang mã BCD
Mạch giải mã là thiết bị có n đầu vào và 2^n đầu ra, thường được sử dụng để chuyển đổi mã nhị phân BCD sang mã nhị phân hoặc mã 7 đoạn Bộ giải mã, còn được gọi là bộ biến đổi mã, có thể được thiết kế theo phương pháp logic cơ bản Tuy nhiên, hiện nay, người ta thường ưa chuộng sử dụng các vi mạch giải mã có sẵn trên thị trường thay vì tự thiết kế.
Giải mã BCD sang mã 7 đoạn:
Mã nhị phân BCD được chuyển đổi sang hệ thập phân và hiển thị các số thập phân thông qua 7 đoạn tương ứng với từng tổ hợp xác định, cho phép chúng ta nhận diện một chữ số trong hệ thập phân.
Các đoạn a, b, c, d, e, f, g có thể là đèn LED mắc anôt chung hoặc katôt chung, được kết nối thông qua các điện trở giới hạn dòng tới đầu ra phù hợp của bộ giải mã.
Trong thực tế người ta đã chế tạo sẵncác vi mạch để giảI mã nhị phân ra mã 7 đọan như :
Các vi mạch 7448, 74LS48, 7449 và 74LS49 là các IC giải mã 7 đoạn với đầu ra tác động ở mức cao, cho phép giải mã từ mã BCD sang thập phân Quy luật hiển thị các chữ số thập phân của các vi mạch này tương tự nhau, theo bảng chân lý, với điểm khác biệt là số 6 không sử dụng thanh a và số 9 không sử dụng thanh d.
Mã BCD đầu vào Đầu ra mã 7 thanh
Các vi mạch giải mã 7 đoạn 7447A, 74L47, 74S47 là các vi mạch 16 chân, số
6 và số 9 chỉ có 5 thanh sáng giống như 7448, 7449 Vi mạch có lối ra tác động thấp ( mức 0 ) nên đèn chỉ thị 7 đoạn có anốt chung.
LINH KIỆN ĐIỆN TỬ
- Điện trở là sự cản trở dòng điện chảy trong vật dẫn điện
- Kí hiệu của linh kiện trên sơ đồ nguyên lý:
Điện trở là một linh kiện điện tử thụ động với hai tiếp điểm kết nối, được sử dụng để hạn chế cường độ dòng điện trong mạch, điều chỉnh tín hiệu, chia điện áp và kích hoạt các linh kiện điện tử chủ động như transistor Nó đóng vai trò quan trọng trong nhiều ứng dụng khác nhau trong lĩnh vực điện tử.
- Kí hiệu linh kiện trên sơ đồ nguyên lý:
- Tụ điện có khả năng tích trữ năng lượng dưới dạng điện trường
- Công dụng của tụ điện là:
+ Dùng để tích điện và xả điện, chỉ chi tín hiệu xoay chiều đi qua, ngăn dòng một chiều
+ Khả năng nạp, xả điện nhiều hay ít phụ thuộc vào điện dungC của tụ
+ Đơn vị đo điện dung ở mạch điện tử gồm: pF (pico fara), nF (nano fara), μF (micro fara) ỨNG DỤNG CỦA TỤ ĐIỆN Đặc điểm:
Tụ điện là thiết bị có khả năng lưu trữ năng lượng điện dưới dạng điện trường bằng cách tích trữ electron Nó có thể phóng thích các điện tích này để tạo ra dòng điện, thể hiện tính chất phóng nạp của tụ Nhờ vào đặc tính này, tụ điện có khả năng dẫn điện xoay chiều hiệu quả.
Nguyên lý phóng nạp của tụ điện là khả năng tích trữ năng lượng điện dưới dạng năng lượng điện trường, tương tự như ắc quy nhỏ Tụ điện lưu trữ electron và phóng ra điện tích để tạo ra dòng điện, nhưng không thể sinh ra các điện tích electron, điều này phân biệt tụ điện với ắc quy.
Nguyên lý nạp xả của tụ điện là một đặc tính cơ bản quyết định khả năng hoạt động của nó, cho phép tụ điện dẫn điện xoay chiều Hiện tượng này trở nên rõ ràng khi điện áp giữa hai bản mạch biến đổi từ từ theo thời gian Tuy nhiên, việc nạp hoặc xả tụ điện một cách đột ngột có thể dẫn đến tình trạng nổ và phát sinh tia lửa điện do dòng điện tăng vọt.
Tụ điện hiện nay đóng vai trò quan trọng trong nhiều ứng dụng thực tế, đặc biệt trong lĩnh vực tự động hóa Một ví dụ rõ ràng là hầu hết các sản phẩm bếp từ đều được trang bị tụ điện, góp phần thiết yếu vào hoạt động của bo mạch bếp.
Tụ điện hiện nay được sử dụng rộng rãi trong kỹ thuật điện và điện tử, đặc biệt trong hệ thống âm thanh xe hơi Chúng có khả năng xây dựng bộ nhớ kỹ thuật số động cho máy tính nhị phân thông qua các ống điện tử Ngoài ra, tụ điện cũng được ứng dụng trong máy phát điện, thí nghiệm vật lý, radar và vũ khí hạt nhân Ứng dụng quan trọng nhất của tụ điện là trong việc cung cấp và tích trữ năng lượng.
- Button là nút bấm, có thể tìm thấy nó ở mọi thứ trong cuộc sống dùng để điều chỉnh các phần tử trong mạch:
- Kí hiệu linh kiện trên sơ đồ nguyên lý:
IC ổn áp là lựa chọn phổ biến cho các nhà thiết kế nhờ vào mạch điện đơn giản Hai loại ổn áp thường được sử dụng là IC 78xx và IC 79xx, trong đó "xx" đại diện cho điện áp cần được ổn định.
+ Họ 78xx là họ cho điện áp ổn định đầu ra là dương Còn xx là giá trị điện áp đầu ra như 5V, 12V
+ Họ 79xx là họ ổn định điện áp đầu ra là âm Còn xx là giá trị điện áp đầu ra ví dụ như -5V, -9V
Sự kết hợp của hai con IC này sẽ tạo ra được bộ nguồn đói xứng
THIẾT KẾ PHẦN CỨNG VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN
Sơ đồ kết nối các khối
Hiệu chỉnh thời gian giờ,phút
Reset tín hiệu hiển thị về ban đầu
Khối nguồn cung cấp nguồn cho cả mạch vi xử lý và mạch hiển thị Ở đây ta chỉ dùng nguồn 5v
Khối vi xử lý có nhiệm vụ xử lý để đưa ra tín hiệu điều khiển các đèn sáng chính xác để hiển thị đúng giờ và phút
Khối Điều Khiển Khối Hiển Thị
- Adapter nguồn dùng để hạ áp 220v xuống 12v và chỉnh lưu dòng điện AC thành DC.
- Điện áp ra còn gợn, nhấp nhô nên tụ C1 lọc để san phẳng áp nhấp đó, điện dung càng cao áp càng phẳng.
- IC 7805 dùng để tạo áp 5v DC ổn định
- Tụ C2 dùng để lọc áp ra.
1.3 Mạch dao động và mạch Reset:
Hình 3.1 Mạch dao động và mạch Reset
Tinh thể thạch anh (Quartz Crytal) là loại đá trong mờ trong thiên nhiên, chính là dioxyt silicium (SiO2).
Tinh thể thạch anh trong mạch dao động là những lát mỏng được cắt từ tinh thể với các đặc tính khác nhau tùy thuộc vào mặt cắt Các lát thạch anh có diện tích từ nhỏ hơn 1cm² đến vài cm², được mài mỏng và phẳng, với độ dày chỉ vài mm và hai mặt song song Hai mặt này được mạ kim loại và nối chân ra ngoài để thuận tiện cho việc sử dụng.
Tinh thể thạch anh có đặc tính áp điện, nghĩa là khi lực được áp dụng lên hai mặt của lát thạch anh, sẽ tạo ra điện thế xoay chiều giữa chúng Ngược lại, khi có điện thế xoay chiều tác động, lát thạch anh sẽ rung với tần số không đổi, tạo ra điện thế xoay chiều tương ứng Tần số rung động của thạch anh phụ thuộc vào kích thước, đặc biệt là độ dày của mặt cắt Mặc dù tần số rung động có thể thay đổi theo nhiệt độ, thạch anh vẫn duy trì độ ổn định tốt hơn so với các mạch dao động không sử dụng thạch anh, với tần số dao động chủ yếu phụ thuộc vào bản thân thạch anh.
Chân Reset (chân 9) có chức năng khởi động lại chip AT89C51, với mức tín hiệu tích cực là 1 Để thực hiện quá trình reset, cần cung cấp mức 1 (5V) cho chân này trong ít nhất 2 chu kỳ máy, tương đương 2 µS đối với thạch anh 12MHz.
Tần số làm việc AT89C51
Chu kỳ máy = thời gian sử lý 1 lệnh: T = 1 f
Khi reset thì trạng thái của RAM nội không thay đổi, bảng trạng thái của các thanh ghi khi reset.
1.6 Mạch hiển thị led 7 đoạn
Việc chuyển đổi tín hiệu nhị phân sang LED 7 đoạn được thực hiện qua vi điều khiển, với LED 7 đoạn được kết nối theo kiểu anode chung, tức là chân nguồn chung được nối với nguồn dương LED hoạt động hiệu quả với dòng tối thiểu là 20mA, sử dụng các chân port P3 (P3.0 đến P3.7) Các chân điều khiển LED hoạt động thông qua transistor NPN C2383, hoạt động ở chế độ bão hòa để cung cấp dòng điện cần thiết cho LED sáng Transistor NPN C2383 được kết nối với port P2 của vi điều khiển nhằm khuyếch đại dòng cho LED hoạt động ổn định.
Hình 3.3 Sơ đồ mạch hiển thị đếm
1.7 Mạch hiển thị LED đơn
Sử dụng các led đơn nối cathode chung Còn các chân anode thì được nối vào điện trở R Và nó được điều khiển bởi các chân P1
Vì LED đơn có dòng hoạt động khoảng 10mA trở lên nên ta có thể chọn điện trở R sao cho phù hợp.
Nguồn được cấp: Vcc = +5V. Điện áp phân cực thuận của các LED:
Mạch điều khiển
2.1.Sơ đồ nguyên lý mạch điều khiển
2.2 Mạch in và mạch bố trí linh kiện
2.2.1 Sơ đồ bố trí linh kiện
Hình ảnh thực tế board mạch điều khiển :
Chương trình điều khiển
Bài viết này mô tả một đoạn mã lập trình cho vi điều khiển, trong đó cấu hình timer và xử lý ngắt để điều khiển thời gian Đầu tiên, mã khởi tạo địa chỉ và thiết lập các thanh ghi cần thiết cho việc quản lý thời gian Timer 1 được cấu hình để đếm thời gian với độ chính xác 15ms Khi nút nhấn được kích hoạt, mã sẽ xóa timer và kiểm tra trạng thái của nút để thực hiện các thao tác tăng hoặc giảm giá trị giờ Nếu giá trị giờ đạt đến 24, mã sẽ đặt lại giá trị về 0, đảm bảo đồng hồ hoạt động chính xác Các hàm như `delay50ms` được sử dụng để xử lý độ trễ, giúp loại bỏ nhiễu từ nút nhấn.
;cài phút do r6 khác 8 lên nhảy tới nhãn k cjne @r0,#60,ga;so sánh phút với 60 bằng 60 xóa về 0 chưa bằng nhảy tới nhẵn ga mov @r0,#00 ga: setb tr1 jmp giam
Đoạn mã này điều khiển hoạt động của timer 1 và thực hiện các thao tác liên quan đến việc cài đặt thời gian Khi nhấn phím trên P1.3, chương trình sẽ giảm giá trị của biến @r0 và thiết lập timer 1 để bắt đầu đếm thời gian Nếu giá trị @r0 đạt 255, nó sẽ chuyển đến nhãn "op" để thiết lập giá trị mới Tương tự, khi nhấn phím trên P1.4, chương trình sẽ tăng giá trị của r0 và cho phép cài đặt phút Sau khi cài đặt xong, timer 1 sẽ bắt đầu chạy với giá trị đã được nạp Chương trình cũng bao gồm các thao tác để ngắt timer và quản lý thời gian đếm, đảm bảo rằng các biến đếm được cập nhật chính xác trong quá trình thực hiện.
Trong đoạn mã này, phép chia được thực hiện để lấy phần nguyên và số dư, ví dụ như 56/10 cho ra a=5 và b=6 Các lệnh như `movc`, `setb`, và `acall` được sử dụng để điều khiển đèn LED và thực hiện các thao tác với thanh ghi Đặc biệt, đoạn mã kiểm tra thời gian nhấp nháy và xác định xem đã đủ 1 giây hay chưa, nếu chưa thì sẽ xóa và tăng biến trong ô nhớ Ngoài ra, mã cũng sử dụng timer 0 để tạo độ trễ 50ms nhằm tránh hiện tượng dội phím Cuối cùng, một mảng dữ liệu được định nghĩa để lưu trữ giá trị cho các LED.
;timer 1 là ngắt, timer là delay, xấp xỉ 15x22x60.80 phút = 1h