Thiết kế mạch quang báo và đồng hồ số

Ngày nay, cùng với sự phát triển của khoa học kỹ thuật, nhất là trong lĩnh vực Điện tử - Tin học - Viễn thông, việc đưa thông tin quảng cáo đến với người tiêu dùng, đến với xã hội trở nên dễ dàng và nhanh chóng. Thông qua nhiều hình thức quảng cáo khác nhau mà các doanh nghiệp giới thiệu sản phẩm của mình đến mọi người. Trong nhiều hình thức đa dạng của thông tin quảng cáo như: Báo, đài, tivi, tờ rơi, áp phích Thì việc dùng bảng quang báo điện tử là một cách đơn giản và hiệu quả để quảng cáo. Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế. Khi đi trên đường phố lúc về đêm, bạn sẽ bắt gặp cùng với ánh đèn màu là rất nhiều các bảng quang báo lớn với các hình ảnh sinh động hay các hình ảnh, logo hiện lên với đủ kiểu (từ trên xuống, từ trái sang .). Qua đó ta thấy rằng, bảng quang báo điện tử đã được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau như: giới thiệu sản phẩm, làm biển hiệu Với ứng dụng rộng rãi như vậy, việc tìm hiểu và thiết kế một bảng thông tin như vậy đã thôi thúc em thực hiện đề tài “Thiết kế mạch quang báo và đồng hồ số” bằng vi xử lí sử dụng IC89C51. Tuy nhiên, do lần đầu thực hiện nên bảng quảng cáo của chúng tôi có thể còn nhiều sai sót. Vì vậy rất mong nhận được những ý kiến đóng góp, giúp đỡ chân thành từ phía các thầy cô cũng như các bạn sinh viên.

doc74 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2463 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Thiết kế mạch quang báo và đồng hồ số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
IÁO VIÊN HƯỚNG DẪN Chữ ký của giáo viên hướng dẫn TP.Vinh, Ngày….tháng …..năm 2010 LỜI NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Chữ ký của giáo viên phản biện TP.Vinh, Ngày….tháng…..năm 2010 LỜI NÓI ĐẦU Ngày nay, cùng với sự phát triển của khoa học kỹ thuật, nhất là trong lĩnh vực Điện tử - Tin học - Viễn thông, việc đưa thông tin quảng cáo đến với người tiêu dùng, đến với xã hội trở nên dễ dàng và nhanh chóng. Thông qua nhiều hình thức quảng cáo khác nhau mà các doanh nghiệp giới thiệu sản phẩm của mình đến mọi người. Trong nhiều hình thức đa dạng của thông tin quảng cáo như: Báo, đài, tivi, tờ rơi, áp phích… Thì việc dùng bảng quang báo điện tử là một cách đơn giản và hiệu quả để quảng cáo. Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế. Khi đi trên đường phố lúc về đêm, bạn sẽ bắt gặp cùng với ánh đèn màu là rất nhiều các bảng quang báo lớn với các hình ảnh sinh động hay các hình ảnh, logo hiện lên với đủ kiểu (từ trên xuống, từ trái sang ….). Qua đó ta thấy rằng, bảng quang báo điện tử đã được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau như: giới thiệu sản phẩm, làm biển hiệu… Với ứng dụng rộng rãi như vậy, việc tìm hiểu và thiết kế một bảng thông tin như vậy đã thôi thúc em thực hiện đề tài “Thiết kế mạch quang báo và đồng hồ số” bằng vi xử lí sử dụng IC89C51. Tuy nhiên, do lần đầu thực hiện nên bảng quảng cáo của chúng tôi có thể còn nhiều sai sót. Vì vậy rất mong nhận được những ý kiến đóng góp, giúp đỡ chân thành từ phía các thầy cô cũng như các bạn sinh viên. LỜI CẢM ƠN Trong thời gian thực hiện đề tài nhóm chúng em đã nhận được sự giúp đỡ tận tình cả về kiến thức chuyên ngành lẫn tinh thần của giáo viên hướng dẫn và các thầy cô trong khoa công nghệ . Trước tiên nhóm chúng em muốn dành tình cảm chân thành đến giáo viên hướng dẫn Lê Thị Thanh Huyền cũng như các thầy cô trong khoa công nghệ, đã tận tình hướng dẫn và giúp đỡ cho chúng em trong suốt quá trình thực hiện đồ án này. Do kiến thức còn hạn hẹp nên trong quá trình thực hiện đồ án chúng em không thể tránh khỏi những sai sót. Kính mong quý thầy cô trong hội đồng khảo thí chỉ dẫn và giúp đỡ thêm. Nhóm chúng em chắc rằng cuốn đồ án này không tránh khỏi những thiếu sót trong khi làm cũng như trong suốt quá trình chúng em thực hiện đồ án. Chúng em rất cảm ơn khi nhận được những ý kiến đóng góp quý báu của khoa, giảng viên để chúng em ngày càng hoàn thiện hơn. Chúng em xin chân thành cảm ơn. TP.Vinh, Ngày 06 tháng 11 năm 2010 CHƯƠNG 1: GIỚI THIỆU CÁC LINH KỆN TRONG MẠCH 1.1 Điện trở Điện trở là đại lượng vật lý đặc trưng cho tính chất cản trở dòng điện của một vật thể dẫn điện. Nó được định nghĩa là tỉ số của hiệu điện thế giữa hai đầu vật thể đó với cường độ dòng điện đi qua nó. Hình 1: Ký hiệu của điện trở Hình 2: Hình ảnh điện trở thực tế Trong đó: U : là hiệu điện thế giữa hai đầu vật dẫn điện, đo bằng vôn (V). I : là cường độ dòng điện đi qua vật dẫn điện, đo bằng ampe (A). R : là điện trở của vật dẫn điện, đo bằng Ohm (Ω). Điện trở được cấu tạo từ những vật liệu có điện trở suất cao như làm bằng than, magie kim loại Ni-O2, oxit kim loại, dây quấn. Để biểu thị giá trị điện trở. Người ta dùng các vòng màu để biểu thị giá trị điện trở. Mỗi màu đại diện cho một số. Có nhiều loại điện trở khác nhau nhưng được chia làm hai loại chính dựa trên cấu trúc của nó,đó là diện trở đơn và điện trở thanh . Điện trở thanh gồm nhiều diện trở đơn ghép lại với nhau. Hình 3: Các vòng màu thể hiện giá trị của điện trở Điện trở thanh thường dùng khi cần nhiều điện trở giống nhau, nhưng yêu cầu thiết kế gọn, ví dụ như kéo lên một port của vi điều khiển, hạn dòng cho dãy led, led 7 đoạn, vvv… Có 2 loại điện trở thanh thông dụng: Loại được đóng gói 1 hàng (SIP) Để ý cái chấm trên đầu, nó là chân chung, các chân còn lại nối với chân chung qua 1 điện trở, giá trị điện trở đó thường được ghi trên thân Loại đóng gói 2 hàng (DIP), nhìn giống các IC thông thường. Loại này thì 2 chân đối diện nối với nhau qua trở, giá trị cũng ghi trên thân. 1.2 Tụ điện Tụ điện là một linh kiện có tính tích trữ năng lượng điện, tụ điện được cấu tạo gồm hai bản phẳng bằng chất dẫn điện gọi là hai bản cực. Hai bản cực đặt song song với nhau, ở giữa là chất điện môi cách điện. Để đặc trưng cho khả năng tích điện của tụ điện, ta dùng đại lượng gọi là điện dung. C=ε(s/d). Đơn vị : Fara (F) Hình 4: Kí hiệu của tụ điện Hình 5: Hình dạng thực tế Phân loại: Tụ được chia làm hai loại chính đó là tụ phân cực và tụ không phân cực, ngoài ra tụ còn được gọi theo tên vật liệu cấu tạo nên chúng như tụ gốm, tụ giấy, tụ hóa… Cường độ điện trường bên trong tụ có trị số: E = = 8.86.10-12 C2/ N.m2 là hằng số điện môi của chân không. là hằng số điện môi tương đối của môi trường, đối với chân không = 1, giấy tẩm dầu = 3,6; gốm = 5,5; mica = 4 5 Đơn vị: Có 3 đơn vị chính 1µ=10-6F 1n=10-9F 1p=10-12F Như vậy điện dung tỉ lệ thuận với tiết diện của bản tụ. Tỉ lệ nghịch với khoảng cách giữa hai bản tụ và phụ thuộc vào chất điện môi. 1.3 Led (Diode phát quang) Diode phát quang là Diode phát sáng khi ta phân cực thuận cho nó và có dòng điện cấp qua. Diode này có thể phát ra màu sắc khác nhau. Tùy theo mức năng lượng giải phóng cao hay thấp mà bước sóng ánh sáng phát ra khác nhau (tức màu sắc của LED sẽ khác nhau). Mức năng lượng (và màu sắc của LED) hoàn toàn phụ thuộc vào cấu trúc năng lượng của các nguyên tử chất bán dẫn. Hình 6: Ký hiệu của led Hình 7: Hình dạng thực tế của led LED thường có điện thế phân cực thuận cao hơn diode thông thường, trong khoảng 1,5 đến 3V. Nhưng điện thế phân cực nghịch ở LED thì không cao. Do đó, LED rất dễ bị hư hỏng do điện thế ngược gây ra. 1.4 Diode Diode bán dẫn là dụng cụ bán dẫn có một lớp tiếp xúc P-N. Bên ngoài có bọc một lớp Plastic. Hai đầu của mẫu bán dẫn có tráng kim loại để nối dây ra.Có hai cách phân cực cho diode. Là phân cực thuận, phân cực nghịch. Hình 8: Ký hiệu của diode Hình 9: Hình dạng thực của diode a. Phân cực thuận: Cực dương của nguồn nối với anot, cực âm của nguồn nối với catot. b. Phân cực nghịch Ta nối cực dương của nguồn với catot và cực âm của nguồn nối với anot. c. Diode chỉnh lưu Hình dạng to, thuộc loại tiếp mặt, hoạt động ở tần số thấp. Diode chỉnh lưu dùng để đổi điện xoay chiều sang điện một chiều, chịu dòng từ vài trăm mA đến công suất cao vài trăm A. Diode chỉnh lưu thông thường là loại Silic. IC 7805 IC ổn áp 5 Vol Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản. Các loại ổn áp thường được sử dụng là IC 78xx, với xx là điện áp cần ổn áp. Ví dụ 7805 ổn áp 5V, 7812 ổn áp 12V. Việc dùng các loại IC ổn áp 78xx tương tự nhau, dưới đây là minh họa cho IC ổn áp 7805 Hình 10 : Hình dạng thực tế của IC7805 IC 7805 có 3 chân: Chân số 1 là chân IN Chân số 2 là chân GND Chân số 3 là chân OUT Ngõ ra OUT luôn ổn định ở 5V dù điện áp từ nguồn cung cấp thay đổi. Mạch này dùng để bảo vệ những mạch điện chỉ hoạt động ở điện áp 5V (các loại IC thường hoạt động ở điện áp này). Điện áp đặt trước IC 78xx phải lớn hơn điện áp cần ổn áp từ 1.5V đến 2V khoảng 7V đến 9V 1.6 Reset Có tác dụng như một công tắc đóng mở. Dùng để cho hoặc không cho dòng điện đi qua. Hình 11: Ký hiệu của reset Hình 12: Hình dạng thực của reset 1.7 IC XỬ LÝ TRUNG TÂM 89C51: 1.7.1 Sơ đồ chân 89C51: 89c51 là IC vi điều khiển (Microcontroller) do hãng Atmel sản xuất. IC này có đặc điểm như sau: 4k byte ROM,128 byte RAM nội. 4 Port I/O 8 bit. 2 bộ đếm/ định thời 16 bit. Giao tiếp truyền dữ liệu nối tiếp. 64k byte bộ nhớ bên ngoài dung để lưu chương trình điều khiển. 64k byte bộ nhớ bên ngoài dung để lưu dữ liệu. 210 bit có thể truy xuất từng bit.. Có các lệnh xử lý bit. Sơ lược về các chân của 89C51: Hình 13. Sơ đồ chân 89C51 Chức năng của các chân 89C51: Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu. Port 1: từ chân 1 đến chân 8 (P1.0 _ P1.7). Port 1 chỉ có chức năng dùng làm các đường điều khiển xuất nhập IO. Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Nếu không dùng bộ nhớ mở rộng bên ngoài thì port 2 dùng làm các đường điều khiển IO. Nếu dùng bộ nhớ mở rộng bên ngoài thì port 2 có chức năng là bus địa chỉ cao A0 – A15. Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có 2 chức năng. Các chân port này có nhiều chức năng , các công dụng chuyển đổi có liên hệ đặc biệt của 89C51. PSEN (Program store enable): PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường được nối đến chân OE\ của Eprom cho phép đọc các byte mã lệnh. PSEN ở mức thấp trong thời gian 89C51 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 89C51 để giải mã lệnh. Khi 89C51 thi hành chương trình trong EPROM nội PSEN ở mức logic 1. ALE (Address Latch Enable): Khi 89C51 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ liệu (AD7 – AD0) do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. EA\ (External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1 thì vi điều khiển thi hành chương trình từ bộ nhớ nội. Nếu ở mức 0 thì vi điều khiển thi hành chương trình từ bộ nhớ ngoại. RST (Reset): Ngõ vào chân 9 là ngõ vào Reset. Khi cấp điện cho hệ thống hoặc nhấn nút reset thì mạch sẽ reset vi điều khiển. Khi reset thì tín hiệu reset phải ở mức cao ít nhất 2 chu kì máy. Các ngõ vào bộ dao động Xtal1, Xtal2: Bộ tạo dao động được tích hợp bên trong 89C51. Khi sử dụng 89C51, người ta chỉ cần nối thêm tụ thạch anh và các tụ. Tần số tụ thạch anh thường là 12 Mh – 24 Mh. Hình14: sơ đồ mắc thạch anh vào chân XTAL 1.7.2 Cấu trúc bên trong của 89C51 B1. Sơ đồ khối bên trong 89C51: Hình 2-3. Cấu trúc bên trong của vi điều khiển 1.7.3 Tổ chức bộ nhớ. Hình 15: Bảng tóm tắt các vùng nhớ 89C51 RAM bên trong 89C51 được phân chia như sau: Các bank thanh ghi có địa chỉ từ 00H đến 1FH. RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH RAM đa dụng từ 30H đến 7FH. Các thanh ghi chức năng từ 80H đến FFH. Địa chỉ byte Địa chỉ byte 7F 7E 7D 7C 7B 7A 79 78 2F 77 76 75 74 73 72 71 70 2E 6F 6E 6D 6C 6B 6A 69 68 2D 67 66 65 64 63 62 61 60 2C 5F 5E 5D 5C 5B 5A 59 58 2B 57 56 55 54 53 52 51 50 2A 4F 4E 4D 4C 4B 4A 49 48 29 47 46 45 44 43 42 41 40 28 3F 3E 3D 3C 3B 3A 39 38 27 37 36 35 34 33 32 31 30 26 2F 2E 2D 2C 2B 2A 29 28 25 27 26 25 24 23 22 21 20 24 1F 1E 1D 1C 1B 1A 19 18 23 17 16 15 14 13 12 11 10 22 0F 0E 0D 0C 0B 0A 09 08 21 07 06 05 04 03 02 071 00 20 Bank 3 1F 18 Bank 2 17 10 Bank 1 0F 08 Bank thanh ghi 0 (maëc ñònh cho R0-R7) 07 00 RAM ña duïng 7F 30 RAM Ñòa chæ bit 87 86 85 84 83 82 81 80 80 P0 khoâng ñöôïc ñòa chæ hoùa bit 81 SP khoâng ñöôïc ñòa chæ hoùa bit 82 DPL khoâng ñöôïc ñòa chæ hoùa bit 83 DPH khoâng ñöôïc ñòa chæ hoùa bit 87 PCON 8F 8E 8D 8C 8B 8A 89 88 88 TCON khoâng ñöôïc ñòa chæ hoùa bit 89 TMOD khoâng ñöôïc ñòa chæ hoùa bit 8A TL0 khoâng ñöôïc ñòa chæ hoùa bit 8B TL1 khoâng ñöôïc ñòa chæ hoùa bit 8C TH0 97 96 95 94 93 92 91 90 90 P1 9F 9E 9D 9C 9B 9A 99 98 98 SCON khoâng ñöôïc ñòa chæ hoùa bit 99 SBUF A7 A6 A5 A4 A3 A2 A1 A0 A0 P2 AF – – AC AB AA A9 A8 A8 IE – – – BC BB BA B9 B8 B8 IP E7 E6 E5 E4 E3 E2 E1 E0 E0 ACC D7 D6 D5 D4 D3 D2 – D0 D0 PSW B7 B6 B5 B4 B3 B2 B1 B0 B0 P3 F7 F6 F5 F4 F3 F2 F1 F0 F0 B CAÙC THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT Ñòa chæ bit khoâng ñöôïc ñòa chæ hoùa bit 8D TH1 FF Hình 16: Cấu trúc bộ nhớ Ram bên trong vi điều khiển - Bộ nhớ trong 89C51 bao gồm ROM và RAM. RAM trong 89C51 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt. - 89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8951 nhưng 8951 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu Ram đa dụng: Vùng nhớ Ram đa dụng gồm có 80 byte địa chỉ từ 30H – 7FH .Vùng nhớ bank thanh ghi 32 byte từ 00H – 1FH cũng có thể dùng làm vùng nhớ Ram đa dụng. Mọi địa chỉ trong vùng Ram đa dụng đều có thể truy xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp. Bộ nhớ ngăn xếp của vi điều khiển dùng bộ nhớ Ram nội nên dung lượng bộ nhớ ngăn xếp nhỏ trong khi đó các bộ vi xử lý bên ngoài làm bộ nhớ ngăn xếp nên dung lượng tùy ý mở rộng. Ram có thể truy xuất từng bit: 89C51 chứa 210 bit được địa chỉ hóa từng bit, trong đó 128 bit chứa ở các byte có địa chỉ từ 20H đến 2FH, các bit còn lại chứa trong nhóm thanh ghi chức năng đặc biệt. Ý tưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của vi điều khiển nói chung. Các bit có thể được đặt, xóa, and, or,… với 1 lệnh đơn. Ngoài ra các port cũng có thể truy xuất được từng bít làm đơn giản phần mềm xuất nhập từng bit. Các bank thanh ghi: Bộ lệnh 89C51 hỗ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc định (sau khi reset hệ thống), các thanh ghi này ở các địa chỉ 00H đến 07H. Đây là lệnh 1 byte dùng địa chỉ thanh ghi. Tuy nhiên có thể thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ 2: MOV A, 05H. Lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn nhiều so với lệnh tương ứng dùng địa chỉ trực tiếp. Bank thanh ghi tích cực bằng cách thay đổi các bit trong từ trạng thái chương trình (PSW). Giả sử thanh ghi thứ 3 đang được truy xuất, lệnh sau đây sẽ di chuyển nội dung của thanh ghi A vào ô nhớ ram có địa chỉ 18H: MOV R0, A. Các thanh ghi có chức năng đặc biệt: 89C51 có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion Register) ở vùng trên của RAM nội từ địa chỉ 80H đến FFH. Các thanh ghi port xuất nhập: Các port của 89C51 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H, port 2 ở địa chỉ A0H, và port 3 ở địa chỉ B0H. Tất cả các port này đều có thể truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp. Các thanh ghi timer: 89C51 có chứa 2 bộ định thời đếm 16 bit được dùng cho việc định thời hoặc đếm sự kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở địa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao). Việc khởi động timer được Set bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer (TCON) ở địa chỉ 88H, chỉ có TCON được địa chỉ hóa từng bit. Các thanh ghi port nối tiếp: 89C51 chứa một port nối tiếp dành cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2 dữ liệu truyền và dữ liệu nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận hành khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp SCON ở địa chỉ 98H. Các thanh ghi ngắt: 89C51 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa chỉ A8H, cả 2 thanh ghi được địa chỉ hóa từng bit. Thanh ghi điều khiển công suất: Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa các bit điều khiển. Tín hiệu Reset: 89C51 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu kỳ, sau đó xuống mức thấp để 89C51 bắt đầu làm việc. RST có thể kích bằng tay bằng một phím nhấn thường mở, sơ đồ mạch reset như hình trên (hình a) sau khi reset hệ thống được tóm tắt như sau: Thanh ghi Nội dung Đếm chương trình PC Thanhghi tích lũy A Thanh ghi B Thanh ghi trạng thái SP DPTR Port 0 đến Port 3 IP IE Các thanh ghi định thời 0000H 00H 00H 00H 07H 0000H FFH XXX0000 B 0XX00000 B 00H Hoạt động thanh ghi TIMER 89C51 có hai timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer để: Định khoảng thời gian. Đếm sự kiện. Tạo tốc độ cho port nối tiếp trong 89C51. Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung ). Truy xuất các timer của 89C51 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng sau: SFR Mục Đích Địa chỉ Địa chỉ hóa từng bit TCON Điều khiển Timer 88H Có TMOD Chế độ Timer 89H Không TL0 Byte thấp của Timer 0 90H Không TL1 Byte thấp của Timer 1 91H Không TH0 Byte cao của Timer 0 92H Không TH1 Byte cao của Timer 1 93H Không Các thanh ghi chức năng của timer trong 8051. Thanh ghi chế độ timer (TMOD): Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho Timer 0, và Timer 1. Bit Tên Timer Mô tả 7 GATE 1 Bit mở cổng, khi lên 1 timer chỉ chạy khi INT1 ở mức cao 6 C/T 1 Bit chọn chế độ Count/Timer 1 = bộ đếm sự kiện 0 = bộ định khoảng thời gian 5 M1 1 Bit 1 của chế độ mode 4 M0 1 Bit 0 của chế độ mode 3 GATE 0 Bit mở cổng, khi lên 1 timer chỉ chạy khi INT0 ở mức cao 2 C/T 0 Bit chọn chế độ Count/Timer 1 M1 0 Bit 1 của chế độ mode 0 M0 0 Bit 0 của chế độ mode Tóm tắt thanh ghi chức năng TMOD. Thanh ghi điều khiển timer(TCON) Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer 1, Timer 0. Bit Ký hiệu Địa chỉ Mô tả TCON.7 TF1 8FH Cờ báo tràn timer 1. Đặt bởi phần cứng khi tràn, được xóa bởi phần mềm, hoặc phần cứng khi bộ xử lý chỉ đến chương trình phục vụ ngắt. TCON.6 TR1 8EH Bit điều khiển timer 1 chạy đặt xóa bằng phần mềm để cho timer chạy ngưng. TCON.5 TF0 8DH Cờ báo tràn Timer 0. TCON.4 TR0 8CH Bit điều khiển Timer 0 chạy TCON.3 IE1 8BH Cờ cạnh ngắt 1 bên ngoài. Đặt bởi phần cứng khi phát hiện một cạnh xuống ở INT1 xóa bằng phần mềm họăc phần cứng khi CPU chỉ đến chương trình phục vụ ngắt. TCON.2 IT1 8AH Cờ kiểu ngắt 1 bên ngoài. Đặt xóa bằng phần mềm để ngắt ngoài tích cực cạnh xuống mức thấp. TCON.1 IE0 89H Cờ cạnh ngắt 0 bên ngoài TCON.0 IT0 88h Cờ kiểu ngắt 0 bên ngoài Khởi động và truy xuất thanh ghi timer: Thông thường các thanh ghi được khởi động một lần đầu ở chương trình để đặt ở chế độ làm việc đúng. Sau đó, trong thân chương trình, các thanh ghi timer được cho chạy, dừng, các bit được kiểm tra và xóa, các thanh ghi timer được đọc và cập nhật…. theo đòi hỏi các ứng dụng. TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động. Ví dụ, các lệnh sau khởi động Timer 1 như timer 16 bit (chế độ 1) có xung nhịp từ bộ dao động tên chip cho việc định khoảng thời gian: MOV TMOD, #1B Lệnh này sẽ đặt M1 = 1 và M0 = 0 cho chế độ 1, C/ T= 0 và GATE = 0 cho xung nhịp nội và xóa các bit chế độ Timer 0. Dĩ nhiên, timer không thật sự bắt đầu định thời cho đến khi bit điều khiển chạy TR1 được đặt lên 1. Nếu cần số đếm ban đầu, các thanh ghi TL1/TH1 cũng phải được khởi động. Một khoảng 100 ms có thể được khởi động bằng cách khởi động giá trị cho TH1/TL1 là FF9CH: MOV TL1, #9CH MOV TH1, #0FFH Rồi timer được cho chạy bằng cách đặt bit điều khiển chạy như sau: SETB TR1 Cờ báo tràn được tự động đặt lên 1 sau 100 ms. Phần mềm có thể đợi trong 100 ms bằng cách dùng lệnh rẽ nhánh có điều kiện nhảy đến chính nó trong khi cờ báo tràn chưa được đặt lên 1: WAIT: JNB TF1, WAIT Khi timer tràn, cần dừng timer và xóa cờ báo tràn trong phần mềm: CLR TR1 CLR TF1 Ngắt ( INTERRUPT) Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác. Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi. Tổ chức ngắt của 89C51: Có 5 nguồn ngắt ở 89C51: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm. Khi có hai hoặc nhiều ngắt đồng thời, hoặc một ngắt xảy ra khi một ngắt khác đang được phục vụ, có cả hai sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng để xác định việc thực hiện các ngắt. Việc hỏi vòng tuần tự thì cố định nhưng ưu tiên ngắt thì có thể lập trình được. Cho phép và cấm ngắt : Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE ( Interrupt Enable : cho phép ngắt ) ở địa chỉ A8H. Bit Ký hiệu Địa chỉ bit Mô tả IE.7 EA AFH Cho phép / Cấm toàn bộ IE.6 _ AEH Không được mô tả IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052) IE.4 ES ACH Cho phép ngắt port nối tiếp IE.3 ET1 ABH Cho phép ngắt từ Timer 1 IE.2 EX1 AAH Cho phép ngắt ngoài 1 IE.1 ET0 A9H Cho phép ngắt từ Timer 0 IE.0 EX0 A8H Cho phép ngắt ngoài 0 Tóm tắt thanh ghi IE Các cờ ngắt : Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên một để xác nhận ngắt. Ngắt Cờ Thanh ghi SFR và vị trí bit Bên ngoài 0 IE0 TCON.1 Bên ngoài 1 IE1 TCON.3 Timer 1 TF1 TCON.7 Timer 0 TF0 TCON.5 Port nối tiếp TI SCON.1 Port nối tiếp RI SCON.0 Các lọai cờ ngắt Các vectơ ngắt : Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt. Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau Ngắt Cờ Địa chỉ vector Reset hệ thống RST 0000H Bên ngoài 0 IE0 0003H Timer 0 TF0 000BH Bên ngoài 1 IE1 0013H Timer 1 TF1 001BH Port nối tiếp TI và RI 0023H Timer 2 002BH Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này, nó giống ngắt : nó ngắt chương trình chính và nạp cho PC giá trị mới. 1.8 IC giải mã 74LS247 Loại IC dùng để giải mã số nhị phân 4 bit (số BCD) sang mã 7 đoạn. IC gồm 16 chân, hoạt động với nguồn 5V. A,B,C,D: 4 ngõ vào RBI, LT, BI/RBO được nối lên nguồn. A,b,c…g là chân ra led 7 đoạn. Led 7 đoạn dùng loại Anot chung. 1.9 IC đệm đảo ULN2803 Đây là IC gồm 8 transistor NPN ghép Darlington gắn mạch điện tử trong dãy này của chuổi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức logic thấp như: TTL, CMOS hoặc PMOS/NMOS ULN2803 được thiết kế để phù hợp với chuẩn TTL Vài chỉ số kĩ thuật của IC ULN2803: Hình 17: IC ULN2803 và sơ đồ chân Dòng điện ngõ vào khoảng 0,93mA – 1,35mA Điện áp ngõ vào khoảng 2,4V – 3V Chân 1 – 8: Ngõ và dữ liệu Chân 11 – 18: Ngõ ra dữ liệu Chân 9: Nối Mass Chân 10: Nối Vcc Trong thực tế IC này có nhiều ứng dụng đòi hỏi công suất lớn. Trong mạch này sử dụng ULN 2803 AG nhằm đệm đảo dữ liệu xuất ra từ Port 0 và port 2 của Vi xử lý nhằm nâng dòng cấp cho mạch. 2.0 IC thời gian thực DS12C887 2.0.1 Sơ đồ chân AD0-AD7: Bus đa hợp địa chỉ/dữ liệu. NC: Bỏ trống. MOT: Lựa chọn loại Bus. CS: Ngõ vào lựa chọn RTC AS: chốt địa chỉ. R/ W: Ngõ vào đọc ghi. DS: Chốt dữ liệu. RESET: Ngõ vào reset. IRQ: ngõ ra yêu cầu ngắt. SQW: Ngõ ra sóng vuông. VCC: Nguồn cung cấp +5V. GND: Mass 2.0.2 Chức năng các chân: - GND, VCC: nguồn cung cấp cho thiết bị ở những chân trên. Vcc là điện áp ngõ vào +5v. Khi điện áp 5v được cung cấp đúng chuẩn, thiết bị được truy cập đầy đủ và dữ liệu có thể đọc và ghi. Khi Vcc thấp hơn 4.25v, quá trình đọc và ghi bị cấm tuy nhiên chức năng giữ thời gian vẫn được tiếp tục không bị ảnh hưởng bởi điện áp bị sụt giảm bên ngoài. Khi Vcc rớt xuống thấp hơn 3v, Ram và bộ nhớ giờ được chuyển sang nguồn năng lượng bên trong. - MOT: là chân có tính linh hoạt để lựa chọn giữa hai loại Bus. Khi được nối lên Vcc, bus định thời Motorola được lựa chọn. Khi được nối xuống GND hoặc không nối, bus định thời Intel được lựa chọn. Chân có điện trở kéo xuống bên trong có giá trị khoảng 20K. - SQW: có thể xuất tín hiệu ra từ 1 trong 13 loại được cung cấp từ 15 trạng thái được chia bên trong của RTC. Tần số của chân SQW có thể thay đổi bằng cách lập trình thanh ghi A. Tín hiệu SQW có thể mở hoặc tắt khi ta sử dụng bit SQWE trong thanh ghi B. Tín hiệu SQW không xuất hiện khi khi Vcc thấp hơn 4.25v. - AD0-AD7: Bus đa hợp tiết kiệm chân hơn vì thông tin địa chỉ và thông tin dữ liệu được dùng chung đường tín hiệu. Cũng tại những chân, địa chỉ được suất trong suốt phần thứ 1 của chu kỳ bus và được dùng cho dữ liệu trong phần thứ 2 của chu kỳ. Đa hợp địa chỉ/ dữ liệu không làm chậm thời gian truy cập của DS12C887 khi bus chuyển từ địa chỉ sang dữ liệu sắp ra trong suốt thời gian truy cập Ram nội. Địa chỉ phải có giá trị trước khi xuất hiện sườn xuống của AS/ALE tại thời điểm mà DS12C887 chốt địa chỉ từ AD0 tới AD7. Dữ liệu phải được hiển thị và giữ ổn định trong suốt phần sau của DS hoặc xung WR. Trong chu kỳ đọc của DS12C887 ngõ ra 8 bit của dữ liệu trong suốt phần sau của DS hoặc xung RD. Chu kỳ đọc được thục hiện xong và Bus trở về trạng thái tổng trở cao cũng như khi DS bắt đầu xuống thấp trong trường hợp định thời Motorola hoặc khi RD lên cao trong trường hợp định thời Intel. - AS: xung dương cung cấp xung chốt địa chỉ trong việc phức hợp bus. Sườn xuống của AS/ ALE làm cho địa chỉ bị chốt lại bên trong của DS12C887. Sườn lên tiếp theo khi xuất hiện trên bus AS sẽ bị xoá địa chỉ bất chấp chân CS có được chọn hay không. Lệnh truy cập có thể gửi tới bằng cả hai cách. - DS: chân DS/ RD có hai kiểu sử dụng tuỳ thuộc vào mức của chân MOT. Khi chân MOT được nối lên Vcc, bus định thời Motorola được lựa chọn. Trong kiểu này DS là xung dương trong suốt phần sau của chu kỳ bus và được gọi là Data Strobe. Trong suốt chu kỳ đọc, DS báo hiệu thời gian mà DS12C887 đựoc điều khiển bus đôi. Trong chu kỳ đọc, xung quét của DS là nguyên nhân làm DS12C87 chốt dữ liệu được ghi. Khi chân MOT được nối xuống GND, Bus định thời Intel được lựa chọn. Trong kiểu này, chân DS được gọi là Read(RD) xác định chu kỳ thời gian khi DS12C887 điều khiển bus đọc dữ liệu. Tín hiệu RD có cùng định nghĩa với tín hiệu OE trong bộ nhớ riêng. - R/ W: có hai cách hoạt động. Khi chân MOT được kết nối lên Vcc cho chế độ định thời Motorola, R/ W đang ở chế độ chỉ ra hoặc là chu kỳ hiện tại là chu kỳ đọc hoặc ghi. Chu kỳ đòi hỏi chân R/ W phải ở mức cao khi chân DS ở mức cao. Chu kỳ đòi hỏi chân R/W ở mức thấp trong suốt quá trình chốt tín hiệu của DS. Khi chân MOT được nối GND cho chế độ định thời Intel, tín hiệu R/ W là tín hiệu hoạt động mức thấp được gọi là WR. Trong chế độ này chân R /W được định nghĩa như tín hiệu Write Enable trong Ram chung. - CS: tín hiệu lựa chọn phải đựoc xác định ở mức thấp ở chu kỳ bus để DS12C887 được sử dụng. CS phải được giữ trong trạng thái hoạt động rtong suốt DS và AS của chế độ định thời Motorola và trong suốt RD và WR của chế độ định thời Intel. Chu kỳ bus khi chọn vị trí mà không chọn CS sẽ chốt địa chỉ nhưng sẽ không có bất kỳ sự truy cập nào. Khi Vcc thấp hơn 4.25Volts, chức năng bên trong của DS12C887 ngăn chặn sự truy cập bằng cách không cho phép lựa chọn vào CS. Hành động này nhằm bảo vệ cả dữ liệu của đồng hồ thời gian thực bên trong cũng như dữ liệu Ram trong suốt quá trình mất nguồn. - IRQ: là ngõ ra hoạt động mức thấp, có thể sử dụng ngõ vào ngắt tới bộ vi xử lý. Ngõ ra IRQ\ ở mức thấp khi bit là nguyên nhân làm ngắt và phù hợp với bit cho phép ngắt được đặt(set). Để xoá chân IRQ\ chương trình của bộ vi xử lý thông thường được đặt ở thanh ghi C. Chân Reset cũng bị xoá trong lúc ngắt. Khi không có trạng tgái ngắt nào được sử dụng, trạng thái IRQ\ ở mức tổng trở cao. Nhiều thiết bị ngắt có thể nối tới IRQ\ Bus là một ngõ ra mở và yêu cầu một điện trở kéo lên bên ngoài. - RESET: không hiệu lực đối với lịch, đồng hồ hoặc Ram. Ở chế độ cấp nguồn, chân reset có thể bị kéo xuống trong thời gian cho phép để ổn định nguồn cung cấp. 2.0.3. Cấu trúc bên trong của DS12C887. Hình 17. Cấu trúc DS12C887 a. Sơ đồ địa chỉ của Real time clock Sơ đồ địa chỉ của DS12C887 được trình bày bao gồm 113 byte Ram thông dụng, 11 byte Ram thành phần bao gồm đồng hồ thời gian thực, lịch, dữ liệu báo giờ và 4 byte được sử dụng cho việc điều khiển và thông báo tình trạng. Tất cả 128 byte có thể được ghi hoặc đọc trực tiếp từ nhữnh trường hợp sau: - Thanh ghi C và D là hai thanh ghi chỉ đọc. - Bit thứ 7 của thanh ghi A là bit chỉ đọc. - Bit cao của byte thứ hai là bit chỉ đọc. Thời gian và địa chỉ đặt bằng cách đọc các byte bộ nhớ hiện có. Thời gian, lịch và báo giờ được đặt hoặc gán giá trị bằng cách ghi giá trị byte Ram thích hợp. Nội dung của 10 byte chứa thời gian lịch và báo giờ đều có thể hiển thị ở hai dạng nhị phân hoặc BCD. Trước khi ghi lên các thanh ghi thời gian , lịch và báo giờ bên trong, bit SET ở thanh ghi B phải được đặt ở mức 1 để ngăn ngừa sự cập nhật có thể xảy ra trong quá trình ghi đè. Thêm vào nữa là để ghi lên 10 thanh ghi chỉ thời gian, lịch và báo giờ ở một định dạng được lựa chọn(BCD) hay (nhị phân), bit chọn kiểu dữ liệu DM của thanh ghi B phải được đặt ở mức logic thích hợp. Tất cả 10 byte thời gian lịch và báo giờ phải sử dụng cùng kiểu dữ liệu. Bit được đặt ở thanh ghi B nên được xoá sau khi bit kiểu dữ liệu đã được ghi để cho phép đồng hồ thời gian thực cập nhật byte thời gian và lịch. Vào lúc đầu đồng hồ thời gian cập nhật ở một kiểu đã được lựa chọn. Kiểu dữ liệu không thể thay đổi mà không khởi động lại 10 byte dữ liệu. Bảng sau trình bày định dạng nhị phân và BCD của thời gian lịch và báo giờ. Bit lựa chọn kiểu hiển thị 24-12 không thể thay đổi mà không khởi động lại thanh ghi giờ. Khi định dạng kiểu 12 giờ được chọn bit cao của byte giờ tương ứng với PM khi nó được đặt ở mức logic 1. Byte thời gian lịch và byte báo giờ luôn được truy cập bởi vì cùng được đếm gấp đôi, mỗi giây một lần 11byte được nâng cấp và được kiểm tra tình trạng giờ. Nếu lệnh đọc dữ liệu thời gian và lịch diễn ra trong quá trình cập nhật, một vấn đề phát sinh là có thể thời gian giờ, phút, giây có thể không chính xác, xác xuất đọc không chính xác dữ liệu thời gian và lịch là rất thấp. Sau đây ta tìm hiểu các thanh ghi điều khiển trong DS12C887. - Thanh ghi A: BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 UIP: l bít trạng thái có thể theo đi được, khi bit UIP ở mức 1, quá trình cập nhật sẽ sớm xảy ra. Khi bit UIP ở mức 0, quá trình cập nhật sẽ không xảy ra ít nhất 244ms. Những thông tin về thời gian lịch và giờ ở trong Ram cũng đầy đủ cho việc truy cập khi bit UIP ở mức 0. Bit UIP là bit chỉ đọc và không bị ảnh hưởng bởi chân reset. Khi ghi bit SET ở thanh ghi B lên mức 1 để ngăn chặn quá trình cập nhật và số bit trạng UIP. DV2, DV1, DV0: 3 bit trên được sử dụng để bật tắt bộ dao động và cài đặt lại quá trình đếm xuống. Khi được đặt 010 thì đó là sự kết hợp duy nhất để bật bộ dao động lên và cho phép RTC giữ thời gian. Khi được đặt 110 sẽ cho phép bộ dao động nhưng giữ quá trình đếm xuống ở mức reset. Quá trình cập nhật tiếp theo sẽ sớm diễn ra sau 500ms sau khi kiểu 010 được ghi vào DV1, DV2, DV3. RS3, RS2, RS1,RS0: 4 bit loại lựa chọn để lựa chọn 1 trong 13 loại của bộ chia 15 trạng thái hoặc không cho phép xuất tín hiệu chia ra ngoài. Loại được lựa chọn có thể phát ra sóng vuông(chân SQW) hoặc ngắt theo chu kỳ. Người sử dụng có thể sử dụng một trong những cách sau: - Cho phép ngắt với bit PIE. - Cho phép xuất ngõ ra chân SQW với bit SQWE. - Cho phép cả hai hoạt động cùng một lúc và cùng một loại. - Không kích hoạt cả hai. Bảng sau liệt kê chu kỳ ngắt với tần số sóng vuông mà có thể lựa chọn với bit RS. Cả 4 bit đọc ghi và không bị ảnh hưởng bởi chân reset. - Thanh ghi B: BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SET PIE AIE UIE SQWE DM 24/12 DSE SET: Khi bit SET ở mức 0, thông thường quá trình cập nhật bằng cách tăng biến đếm 1 lần một giây. Khi bit SET được lên vào mức 1 mọi quá trình cập nhật đều bị cấm, và chương trình cũ thể bắt đầu khởi động byte thời gian và lịch mà không có quá trình cập nhật nào xảy ra trong quá trình khởi động, chu kỳ đọc có thể thực thi ở cùng một kiểu. SET là bit đọc ghi và không chịu ảnh hưởng bởi Reset hoặc các chức năng bên trong của DS12C887. PIE: Bit cho phép ngắt theo chu kỳ, là bit đọc ghi, nó cho phép bit cờ ngắt theo chu kỳ trong thanh ghi C để điều khiển chân IRQ\ xuống mức thấp tuỳ thuộc vào tỉ lệ phân bố của RS3 đến RS0 ở thanh ghi A. AIE: Bit cho phép ngắt báo giờ, là bit đọc ghi mà khi được đặt lên 1 nó cho phép bit cờ báo giờ(AF) ở thanh ghi C để cho phép ngắt IRQ\. Tín hiệu ngắt báo giờ diễn ra ở tất cả các giây khi cả 3 byte báo giờ chứa giờ được thể hiện ở nhị phân như sau 11XXXXXX. Các chức năng bên trong của DS12C887 không bị ảnh hưởng bởi chân AIE. UIE: Bit cho phép kết thúc quá trình ngắt cập nhật, l bit đọc ghi mà cho phép bit cờ kết thúc quá trình cập nhật ở thanh ghi C để cho phép ngắt IRQ\. Chân Reset ở mức 0 hoặc chọn SET ở mức 1. SQWE: là bit cho phép xuất sóng vuông, được đặt lên mức 1, một tín hiệu sóng vuông có tần số được đặt ở vị trí được lựa chọn của bit RS3 đến RS0 sẽ điều khiển sóng ra tại chân SQW. Khi bit SQWE được đặt ở mức thấp, chân SQW sẽ được giữ ở mức thấp. SQWE là bit đọc ghi và được xoá khi Reset. SQWE được đặt lên 1 khi được cấp Vcc. DM: Bit kiểu dữ liệu qui định khi nào là thông tin lịch và thời gian ở định dạng nhị phân hoặc BCD. Bit DM được đặt bởi chương trình có thể định dạng thích hợp và có thể đọc khi được yêu cầu. Bit này không bị thay đổi khi Reset. Mức 1 của DM sẽ hiển thị dữ liệu nhị phân, mức 0 hiển thị dữ liệu BCD. 24/ 12: Bit xác định kiểu byte giờ. Khi ở mức 1 nó hiển thị kiểu 24 giờ, bit 0 hiển thị 12 giờ. Bit này không ảnh hưởng bởi các chức năng bên trong hoặc chân reset. DSE: Bit cho phép nhớ công khai. Bit này cũng không bị ảnh hưởng bởi chức năng bên trong hoặc chân reset. - Thanh ghi C: MSB LSB BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 IRQF PF AF UF 0 0 0 0 IRQF: Bit cờ yêu cầu ngắt được đặt lên 1 khi những điều dưới đây đúng: PF=PIE=1 AF=AIE=1 UF=UIE=1 Đều có nghĩa là IRQF=(PF.PIE)+(AF.AIE)+(UF.UIE). Bất cứ lúc nào bit IRQF được đặt lên 1, chân IRQ\ được đặt xuống mức thấp. Bit cờ PF,AF và UF được xoá khi thanh ghi C được chương trình đọc hoặc chân reset ở mức thấp. - Thanh ghi D: BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 VRT 0 0 0 0 0 0 0 VRT: Bit thời gian và Ram hợp lệ, biểu thị tình trạng của pin được kết nối chân VBAT. Bit này không phải là bit ghi được và luôn có giá trị là 1 khi đọc, nếu hiên thị mức 0, nguồn năng lượng pin bên trong đã cạn và cả hai mục dữ liệu thời gian thực lẫn dữ liệu Ram đều bị nghi ngờ. Bit này không bị ảnh hưởng bởi chân reset. CHƯƠNG 2: GIỚI THIỆU VÀ THI CÔNG MẠCH QUANG BÁO 2.1 Sơ đồ nguyên lý mạch quang báo 2.2 Chức năng từng khối trong mạch Hình 18: Sơ đồ khối mạch quang báo 2.2.1 Khối nguồn Dùng cầu diode và ic 7805 có nhiệm vụ ổn định nguồn 5vDC cho mạch điện, các tụ dùng để chống nhiễu dòng cho mạch. 2.2.2 Khối tạo dao động Tạo xung nhịp dao động cho Vi Điều Khiển. Sử dụng thạch anh tần số 12MHz . 2.2.3 Khối điều khiển trung tâm(89C51) Gồm chíp vi điều khiển AT89c51 có nhiệm vụ xuất tín hiệu điều khiển khối led đơn hiển thị tại các port của nó. 2.2.4 Khối giải mã Các port xuất nhập của vi điều khiển cùng lúc nhiều thiết bị trên một port ,đòi hỏi phải có dòng khuyếch đại dòng điện ngõ ra tại các port. Trong mạch này dùng ic ULN2803 để khuyếch đại dòng điện tại ngõ vào các khối này còn làm chức năng là bộ dệm đảo cho dữ liệu. 2.2.5 Khối hiển thị Cứ mỗi nhánh có 4 led đơn nối tiếp với nhau và nối tiếp với 1 điện trở 100, sau đó nối song song các nhánh với nhau để kết được nhiều led. 2.3 Lưu đồ giải thuật mạch quang báo BEGIN ĐIỀU KHIỂN LED TẮT (P0)=0/0=TẮT (P0)=0/0=TẮT GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 4 LED SÁNG (P0)=00000101B/2=SÁNG (P2)=10100000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 4 LED SÁNG (P0)=00001010B/2=SÁNG (P2)=01100000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 3 LED SÁNG (P0)=00010001B/2=SÁNG (P2)=10000000B/1=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 3 LED SÁNG (P0)=00100010B/2=SÁNG (P2)=01000000B/1=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 4 LED SÁNG (P0)=01000001B/2=SÁNG (P2)=10100000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 6 ̉̉̉̉ ̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉̉LED SÁNG (P0)=00111110B/5=SÁNG (P2)=01000000B/1=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 7 LED SÁNG (P0)=01111101B/6=SÁNG (P2)=10000000B/1=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 9 LED SÁNG (P0)=11111110B/7=SÁNG (P2)=01100000B/2=SÁNG ĐIỀU KHIỂN 10 LED SÁNG (P0)=11111101B/7=SÁNG (P2)=10100001B/3=SÁNG ĐIỀU KHIỂN 10 LED SÁNG (P0)=11111110B/7=SÁNG (P2)=01000011B/3=SÁNG ĐIỀU KHIỂN 11 LED SÁNG (P0)=11111101B/7=SÁNG (P2)=10000111B/4=SÁNG ĐIỀU KHIỂN 4 LED SÁNG (P0)=10000010B/2=SÁNG (P2)=01100000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS GỌI CT TẠO TRỄ DELAY 500MS GỌI CT TẠO TRỄ DELAY 500MS GỌI CT TẠO TRỄ DELAY 500MS GỌI CT TẠO TRỄ DELAY 500MS GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 13 LED SÁNG (P0)=11111110B/7=SÁNG (P2)=01101111B/6=SÁNG MAIN: ĐIỀU KHIỂN 3 LED SÁNG (P0)=00000001B/1=SÁNG (P2)=01000001B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 4 LED SÁNG (P0)=00000010B/1=SÁNG (P2)=10101000B/3=SÁNG ĐIỀU KHIỂN 4 LED SÁNG (P0)=00000001B/1=SÁNG (P2)=01100100B/3=SÁNG ĐIỀU KHIỂN 3 LED SÁNG (P0)=00000010B/1=SÁNG (P2)=10000010B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 3 LED SÁNG (P0)=00000001B/1=SÁNG (P2)=01010000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 3 LED SÁNG (P0)=00000110B/2=SÁNG (P2)=10000000B/1=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 5 LED SÁNG (P0)=00001101B/3=SÁNG (P2)=01100000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 6 LED SÁNG (P0)=00011101B/4=SÁNG (P2)=10100000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 14 LED SÁNG (P0)=11111101B/7=SÁNG (P2)=10111111B/7=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 4 LED SÁNG (P0)=00000110B/2=SÁNG (P2)=01010000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 6 LED SÁNG (P0)=00001101B/3=SÁNG (P2)=10011000B/3=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 9 LED SÁNG (P0)=00011110B/4=SÁNG (P2)=01111100B/5=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 13 LED SÁNG (P0)=01111101B/6=SÁNG (P2)=01111111B/7=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 13 LED SÁNG (P0)=11111101B/7=SÁNG (P2)=10011111B/6=SÁNG GỌI CT TẠO TRỄ DELAY 500MS ĐIỀU KHIỂN 3 LED SÁNG (P0)=00000010B/1=SÁNG (P2)=01100000B/2=SÁNG GỌI CT TẠO TRỄ DELAY 500MS DELAY500MS CẤT TẠM GIÁ TRỊ CỦA R0 VÀO STACK NẠP GIÁ TRỊ VÒNG LẶP (R0)=100 KHỞI ĐỘNG TIMER (TIMER 0, MODE 1) (TMOD)=01H NẠP GIÁ TRỊ CHO TIMER (TDELAY =20000.TMAY) (TH0/TL0=-5000=EC78H CHO TIMER HOẠT ĐỘNG (TR0)=1 CHƯA ĐỦ THỜI GIAN (TF00=0 DỪNG TIMER (TR0)= 0 XÓA CỜ TRÀN TIMER (TF0)= 0 GIẢM SỐ LẦN LẶP SỐ LẦN LẶP # 0 (CHƯA LẶP XONG) LẤY LẠI GIÁ TRỊ CHO R0 TỪ STACK RET DELAY500MS: DEL: S 2.4 Chương trình mạch quang báo ;************************************************** ;CHUONG TRINH CHAY LED QUANG BAO ;KET NOI: THU TU PORT0.0 -> PORT2.7 ;2LED VIEN TRONG,11LED CHU,1LED"DEIGNED..",2LED VIEN NGOAI(CO DEM DAO) ;************************************************** $MOD51 ORG 00H MAIN: MOV P0,#00000101B MOV P2,#10100000B ACALL DELAY500MS MOV P0,#00001010B MOV P2,#01100000B ACALL DELAY500MS MOV P0,#00010001B MOV P2,#10000000B ACALL DELAY500MS MOV P0,#00100010B MOV P2,#01000000B ACALL DELAY500MS MOV P0,#01000001B MOV P2,#10100000B ACALL DELAY500MS MOV P0,#10000010B MOV P2,#01100000B ACALL DELAY500MS MOV P0,#00000001B MOV P2,#01000001B ACALL DELAY500MS MOV P0,#00000010B MOV P2,#10000010B ACALL DELAY500MS MOV P0,#00000001B MOV P2,#01100100B ACALL DELAY500MS MOV P0,#00000010B MOV P2,#10101000B ACALL DELAY500MS MOV P0,#00000001B MOV P2,#01010000B ACALL DELAY500MS MOV P0,#00000110B MOV P2,#10000000B ACALL DELAY500MS MOV P0,#00001101B MOV P2,#01100000B ACALL DELAY500MS MOV P0,#00011101B MOV P2,#10100000B ACALL DELAY500MS MOV P0,#00111110B MOV P2,#01000000B ACALL DELAY500MS MOV P0,#01111101B MOV P2,#10000000B ACALL DELAY500MS MOV P0,#11111110B MOV P2,#01100000B ACALL DELAY500MS MOV P0,#11111101B MOV P2,#10100001B ACALL DELAY500MS MOV P0,#11111110B MOV P2,#01000011B ACALL DELAY500MS MOV P0,#11111101B MOV P2,#10000111B ACALL DELAY500MS MOV P0,#11111110B MOV P2,#01101111B ACALL DELAY500MS MOV P0,#11111101B MOV P2,#10111111B ACALL DELAY500MS MOV P0,#00000110B MOV P2,#01010000B ACALL DELAY500MS MOV P0,#00001101B MOV P2,#10011000B ACALL DELAY500MS MOV P0,#00011110B MOV P2,#01111100B ACALL DELAY500MS MOV P0,#01111101B MOV P2,#01111111B ACALL DELAY500MS MOV P0,#11111110B MOV P2,#01011111B ACALL DELAY500MS MOV P0,#11111101B MOV P2,#10011111B ACALL DELAY500MS MOV P0,#00000010B MOV P2,#01100000B ACALL DELAY500MS MOV P0,#11111101B MOV P2,#10111111B ACALL DELAY500MS MOV P0,#00000010B MOV P2,#01000000B ACALL DELAY500MS MOV P0,#11111101B MOV P2,#10011111B ACALL DELAY500MS MOV P0,#00000010B MOV P2,#01100000B ACALL DELAY500MS LJMP MAIN ;**************************************************** ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS ;**************************************************** DELAY500MS: PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#HIGH(-5000) MOV TL0,#LOW(-5000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END 2.5 Mạch in mạch quang báo CHƯƠNG 3 : GIỚI THIỆU VÀ THI CÔNG MẠCH ĐỒNG HỒ SỐ 3.1 Sơ đồ nguyên lý 3.2 Sơ đồ khối và chức nằng các khối 3.2.1 Khối giải mã Khối giải mã mạch dồng hồ dùng IC 74LS47 dùng để giải mã nhị phân 4 bit (BCD) sang mã 7 đoạn, các chân a,b,c,d,e,f,g được nối với các chân của led 7 đoạn. 3.2.2 Khối hiển thị Khối hiện thị dùng led 7 doạn để hiện thị và transistor A1015 để khuyếch đại tín hiệu đến. 3.2.3 Khối công tắc Khối công tắc được kết nối với khối lưu thời gian để điều chỉnh giờ, phút, giây. 3.2.4 Khối lưu giờ Khối lưu thời gian dùng dallas DS 12887 điện áp 5v được cung cấp ổn định thì ic được truy cập đầy đủ và dữ liệu có thể đọc và ghi. Khi Vcc thấp hơn 5v thì quá trình đọc và ghi bị cấm tuy nhiên giữ thời gian vẫn được tiếp tục không bị ảnh hưởng. 3.2.5 Khối kết led 7 đoạn Khối kết led 7 đoạn dùng các led đơn, các thanh được kết nối tiếp nhau và nối với nhau theo kiểu anot chung. 3.3 Lưu đồ giải thuật mạch đồng hồ số 3.4 Chương trình đồng hồ ;************************************************************ ;CHUONG TRINH DIEU KHIEN RTC DS12C887 HIEN THI THOI GIAN CO DIEU KHIEN ;TREN BO HIEN THI LED 7 DOAN(RTC LIEN KET KIEU RAM NGOAI VOI 89C51) ;************************************************************ $MOD51 ORG 00H LJMP MAIN ORG 03H LJMP NGAT ORG 30H MAIN: MOV R3,#1 ;BIEN HEN GIO CHAN LE BEGIN: LCALL ENABLE_RTC LED5 BIT P1.1 LED6 BIT P1.0 MOV IE,#81H MOV R2,#0 MOV 20H,#0 ;O NHO CHUA GIAY MOV 21H,#0 ;O NO CHUA PHUT MOV 22H,#0 ;O NHO CHUA GIO MOV 23H,#0 ;O NHO DON VI CUA GIAY MOV 24H,#0 ;O NHO CHUC CUA GIAY MOV 25H,#0 ;O NHO DON VI CUA PHUT MOV 26H,#0 ;O NHO CHUC CUA PHUT MOV 27H,#0 ;O NHO DON VI CUA GIO MOV 28H,#0 ;O NHO CHUC CUA GIO LCALL DOC_DATA LCALL CHOPTAT ;2 LED DON CHOP TAT THEO NHIP GIAY LCALL HEX_BCD LCALL HIEN_THI SJMP BEGIN ;****************************************** DOC_DATA: MOV R0,#0 MOV R1,#20H X12: MOVX A,@R0 MOV @R1,A MOV R7,#0 MOV R7,20H ;****************************************** ;DOAN CHUONG TRINH DOC TU RTC VAO VXL ;****************************************** DOC: MOV R0,#0 MOV R1,#20H X1: MOVX A,@R0 MOV @R1,A INC R0 INC R0 INC R1 CJNE R0,#06,X1 RET ;********************************************* ;CHUYEN TU SO HEX SANG BCD ;********************************************* HEX_BCD: MOV A,20H MOV B,#10 DIV AB MOV 23H,B MOV 24H,A MOV A,21H MOV B,#10 DIV AB MOV 25H,B MOV 26H,A MOV A,22H MOV B,#10 DIV AB MOV 27H,B MOV 28H,A RET ;********************************************* ;DOAN CHUONG TRINH QUET LED ;********************************************* HIEN_THI: MOV A,23H ORL A,#0F0H MOV P2,A CLR LED6 SETB LED5 LCALL DELAY MOV A,24H ORL A,#0F0H MOV P2,A CLR LED5 SETB LED6 LCALL DELAY MOV A,25H ORL A,#70H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,26H ORL A,#0B0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,27H ORL A,#0D0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,28H ORL A,#0E0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY RET ;*************************************************** ;DOAN CHUONG TRINH NGAT DE CHINH GIO PHUT ;CO LONG VAO CHUONG TRINH CHON LED DE LED NHAP NHAY ;*************************************************** NGAT: MOV R0,#0BH MOV A,#80H MOVX @R0,A LCALL HIEN_THI1 JNB P3.2,NGAT LOOP1: LCALL HIEN_THI1 JNB P3.2 ,THOAT_NGAT JNB P3.3 ,TANG_GIATRI_PHUT JNB P3.4 ,GIAM_GIATRI_PHUT JNB P3.5 ,CHUYEN1 LJMP LOOP1 THOAT_NGAT: LCALL HIEN_THI JNB P3.2,THOAT_NGAT MOV R0,#0 MOV A,20H MOVX @R0,A LCALL HEX_BCD LCALL HIEN_THI MOV R0,#0AH MOV A,#0AFH MOVX @R0,A MOV R0,#0BH MOV A,#0EH MOVX @R0,A RETI CHUYEN1: LCALL HIEN_THI JNB P3.5,CHUYEN1 INC R2 MOV A,R2 CJNE A,#2,RETURN MOV R2,#0 RETURN: LJMP LOOP2 TANG_GIATRI_PHUT: LCALL HIEN_THI MOV A,21H INC A CJNE A,#60,CONT_1 MOV A,#0 CONT_1: MOV 21H,A MOV R0,#2 MOVX @R0,A LCALL HEX_BCD LJMP LOOP1 GIAM_GIATRI_PHUT: LCALL HIEN_THI MOV A,21H CJNE A,#0,CONT_3 MOV A,#60 CONT_3: DEC A MOV 21H,A MOV R0,#2 MOVX @R0,A LCALL HEX_BCD LJMP LOOP1 LOOP2: LCALL HIEN_THI2 JNB P3.2,THOAT_NGAT JNB P3.3,TANG_GIATRI_GIO JNB P3.4,GIAM_GIATRI_GIO JNB P3.5,CHUYEN2 LJMP LOOP2 CHUYEN2: LCALL HIEN_THI2 JNB P3.5,CHUYEN2 INC R2 MOV A,R2 CJNE A,#2,RETURN2 MOV R2,#0 RETURN2: LJMP LOOP1 TANG_GIATRI_GIO: LCALL HIEN_THI MOV A,22H INC A CJNE A,#24,CONT_22 MOV A,#0 CONT_22: MOV 22H,A MOV R0,#4 MOVX @R0,A LCALL HEX_BCD LJMP LOOP2 GIAM_GIATRI_GIO: LCALL HIEN_THI . MOV A,22H CJNE A,#0,CONT_42 MOV A,#24 CONT_42: DEC A MOV 22H,A MOV R0,#4 MOVX @R0,A LCALL HEX_BCD LJMP LOOP2 ;************************************************** ;DOAN CHUONG TRINH LAM CHO PHUT CHOP TAT HIEN_THI1: MOV A,23H ORL A,#0F0H MOV P2,A CLR LED6 SETB LED5 LCALL DELAY MOV A,24H ORL A,#0F0H MOV P2,A CLR LED5 SETB LED6 LCALL DELAY MOV A,25H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY LCALL PHUTTAT MOV A,26H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY LCALL PHUTTAT MOV A,27H ORL A,#0D0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,28H ORL A,#0E0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY LCALL DELAY_THOIGIANLEDSANG RET PHUTTAT: MOV A,23H ORL A,#0F0H MOV P2,A CLR LED6 SETB LED5 LCALL DELAY MOV A,24H ORL A,#0F0H MOV P2,A CLR LED5 SETB LED6 LCALL DELAY MOV A,25H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,26H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,27H ORL A,#0D0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,28H ORL A,#0E0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY RET ;*********************************************** ;DOAN CHUONG TRINH LAM CHO GIO CHOP TAT ;*********************************************** HIEN_THI2: MOV A,23H ORL A,#0F0H MOV P2,A CLR LED6 SETB LED5 LCALL DELAY MOV A,24H ORL A,#0F0H MOV P2,A CLR LED5 SETB LED6 LCALL DELAY MOV A,25H ORL A,#70H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,26H ORL A,#0B0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,27H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY LCALL GIOTAT MOV A,28H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY LCALL GIOTAT LCALL DELAY_THOIGIANLEDSANG RET GIOTAT: MOV A,23H ORL A,#0F0H MOV P2,A CLR LED6 SETB LED5 LCALL DELAY MOV A,24H ORL A,#0F0H MOV P2,A CLR LED5 SETB LED6 LCALL DELAY MOV A,25H ORL A,#70H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,26H ORL A,#0B0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,27H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY MOV A,28H ORL A,#0F0H MOV P2,A SETB LED6 SETB LED5 LCALL DELAY RET ;************************************************** ;DOAN CHUONG TRINH DE 2LED DON CHOP TAT ;************************************************** CHOPTAT: CLR P1.2 LCALL DELAY_CHOPTAT SETB P1.2 LCALL DELAY_CHOPTAT RET ;************************************************** ;DOAN CHUONG TRINH DELAY 2.5MS DE QUET LED ;************************************************** DELAY: PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;************************************************** DELAY_THOIGIANLEDSANG: MOV R7,#5 LAP1: MOV R6,#10 LCALL DOC LCALL HEX_BCD LCALL HIEN_THI DJNZ R6,$ DJNZ R7,LAP1 RET ;************************************************** DELAY_CHOPTAT: MOV R7,#36 LAP2: MOV R6,#100 LCALL DOC LCALL HEX_BCD LCALL HIEN_THI DJNZ R6,$ DJNZ R7,LAP2 RET END 3.5 Mạch in mạch đồng hồ số Tài liệu tham khảo Giáo trình điện tử số – Khoa công Nghệ Điện Tử - Trường Đại Học Công Nghiệp TPHCM Giáo trình Thí Nghiệm Vi Xử Lý – Khoa công Nghệ Điện Tử - Trường Đại Học Công Nghiệp TPHCM Giáo trình Vi Xử Lý – Khoa công Nghệ Điện Tử - Trường Đại Học Công Nghiệp TPHCM Hướng Dẫn Thí Nghiệm Vi Xử Lý – Trường Đại Học Bách Khoa TPHCM Họ Vi Điều Khiển 8051 – Tống Văn Ôn

Các file đính kèm theo tài liệu này:

  • doc74269191-đò-án.doc