Đề tài Thiết kế và thi công bảng quảng báo

Vi mạch ULN2803 (hoặc tương tự ULN2803) là một trong những vi mạch đệm được dùng khá phổ biến.Vi mạch ULN2803 là các mảng Darlington chịu được dòng điện lớn và điện áp cao, trong đó 8 cặp Darlington cực góp hở với các cục phát chung. Từng kênh trong số 8 kênh đều có thể chịu được lâu dài dòng điện đến 500mA với biên độ đỉnh lên đến 600mA. Mỗi một kênh có một diode chặn (suppression), diode này có thể được sử dụng trong trường hợp tải có tính cảm ứng, chẳng hạn như các rơle.

Lối vào của ULN2803 tương thích TTL. Những ứng dụng điển hình của vi mạch đệm là điều khiển cuộn dây solenoid, rơle, môtơ một chiều, các bộ hiển thị LED, đầu máy tản nhiệt,

 

doc40 trang | Chia sẻ: maiphuongdc | Lượt xem: 1602 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế và thi công bảng quảng báo, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ứ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. Thông thường LED có điện thế phân cực thuận cao hơn các loại diode khác khoảng 1,5 đến 3V nhưng điện thế phân cực ngược ở LED lại không cao. Đèn LED có những ứng dụng rất phong phú và rộng rãi: làm bộ phận hiển thị trong các thiết bị điện, điện tử, trang trí, làm đèn giao thông, các đèn LED phát ra tia hồng ngoại được dùng trong các thiết bị điều khiển từ xa trong điện tử dân dụng… thậm chí ngày nay người ta đã sử dụng đèn LED phát ánh sáng trắng để thay thế cho các thiết bị chiếu sáng thông thường như đèn sợi đốt, đèn neon, đèn compact… Đây chắc chắn sẽ là một bước tiến quan trọng trong ngành công nghiệp năng lượng vì hiện tại đèn LED trắng có tuổi thọ tới 50.000 giờ sử dụng, gấp 50 lần so với bóng đèn 60W. Điều này có nghĩa là chúng có thể thắp sáng liên tục trong vòng gần 6 năm. Hơn thế nữa chúng dùng điện áp thấp nên không gây cháy nổ mà tiết kiệm điện hơn nhiều so với bóng đèn khác. Một trong những ứng dụng quan trọng và phổ biến hiện nay của đèn LED chính là trong lĩnh vực quảng cáo: bảng quảng cáo bằng đèn LED. Đèn LED thực sự là 1 bước đột phá mới trong công nghệ cao nói chung và trong quảng cáo nói riêng. Đó là các bảng hiệu, bảng chỉ dẫn, panel quảng cáo… có sử dụng đèn LED và mạch điện tử để tạo hiệu ứng ánh sáng. Qua tìm hiểu ta thấy nhiều đặc điểm nổi bật của nó như tuổi thọ cao, tiết kiệm điện, không gây cháy nổ, an toàn tuyệt đối, chống rung động tốt, đặc biệt là nó vẫn sáng rõ vào ban ngày. Vì vậy có thể dụng cả những biển quảng cáo trong nhà (indoor) và ngoài trời (outdoor) cho hiệu quả cao để gây sự chú ý, đồng thời truyền đạt thông tin đến khách hàng và người đi đường. Bảng điện tử có thông tin thay đổi được còn được gọi là bảng quang báo hay màn hình điện tử LED. Nhiều màu sắc, nhiều cách hiển thị sinh động, dễ dàng thu hút sự chú ý của mọi người, dễ dàng thay đổi thông tin trên bảng điện tử. Những đặc điểm trên khiến cho Bảng quang báo trở thành phương tiện truyền đạt thông tin hiện đại, phổ biến một cách nhanh chóng từ khi nó xuất hiện. Bảng LED quảng cáo được sử dụng cả indoor, outdoor và semi-outdoor: Bảng indoor sử dụng tốt trong nhà, không sử dụng ngoài trời được vì không đủ độ sáng và không chịu được mưa nắng. Bảng outdoor có độ sáng cao, kết cấu chắc chắn, chịu được mưa nắng. Bảng semi-outdoor (bán ngoài trời) có độ sáng cao, sử dụng tốt ngoài trời nhưng chịu mưa nắng kém nên bảng quảng cáo loại này thường được đặt ở dưới mái hiên nhà. Trong lĩnh vực quảng cáo, ứng dụng của đèn LED được thể hiện dưới nhiều hình thức khác nhau như: Bảng thông tin điện tử chữ chạy: là sản phẩm của ngành công nghệ cao với nhiều ưu điểm nổi bật đã trở thành một phần không thể thiếu trong nhiều lĩnh vực của cuộc sống. Điểm nổi bật của bảng thông tin điện tử là khả năng thay đổi thông tin và phương thức trao đổi thông tin. Với nhiều tính năng độc đáo, bảng thông tin điện tử (bảng quang báo, bảng điện tử, bảng LED) luôn thu hút được đông đảo sự chú ý quan sát của nhiều người. Do đó, nó là sản phẩm đắc dụng cho các chương trình quảng cáo, các bản tin chứng khoán, tài chính… Cũng vì tính tiện lợi mà bảng thông tin điện tử được ứng dụng rộng rãi ở nhiều nơi với nhiều mục đích khác nhau như: khách sạn, nhà hàng, trung tâm thương mại, trụ sở công ty, ngân hàng, sân bay, hiệu vàng, sàn giao dịch chứng khoán … Biển hiệu, biển vẫy gây chú ý cho khách đi đường: là loại biển quảng cáo điện tử sử dụng đèn LED siêu sáng được lập trình bằng vi điều khiển tạo nên các hiệu ứng hiển thị khác nhau gây ấn tượng mạnh mẽ và sự chú ý đặc biệt đối với người đi đường. Bảng quảng cáo màn hình Full Colour: là dòng sản phẩm mới, ứng dụng những công nghệ khoa học tiên tiến nhất của ngành LED hiện nay. Sản phẩm được ứng dụng trong mọi lĩnh vực của xã hội như văn hóa, truyền thông, thể thao, du lịch. Giới thiệu chung về hệ thống. Với mục đích tìm hiểu về cách thiết kế và xây dựng một bảng quảng cáo điện tử bằng đèn LED đơn giản, nhóm em đã xây dựng một hệ thống quang báo với sơ đồ khối như sau: 12VDC 5VDC 11.Sơ đồ khối hệ thống. Khối Máy tính: gồm có một giao diện cho người dung sử dụng để giao tiếp giữa máy tính với khối xử lý trung tâm (VĐK), để chọn các thông số cần truyền như: nội dung, hiệu ứng, màu sắc… Khối nguồn: có chức nắng cung cấp nguồn cho hệ thống gồm nguồn 5v và ngồn 12v Khối xử lý trung tâm: có chức năng xử lý các dữ liệu mà máy tính truyền tới VĐK từ đó đưa vào khối chốt để điều khiển khối hiển thị từ đó mới có thể hiển thị nội dung. Khối chốt: có chức năng quy định sự hoạt động của các hàng, cột và led ma trận. Khối lưu trữ: có chức năng lưu trữ dữ liệu nhận được từ máy tính, để có thể hiển thị nội dung sau khi ngắt kết nối với máy tính, hay khi bị mất nguồn nuôi. Khối hiển thị: có chức năng nhận tín hiệu điều khiển từ khối chốt và dữ liệu từ khối xử lý trung tâm để hiển thị LED theo yêu cầu. Giới thiệu về ma trận LED. Bộ hiển thị: Trong một hệ thống vi xử lý bộ hiển thị đóng một vai trò hết sức quan trọng, nó là nơi dùng để giao tiếp giữa máy và người sử dụng. Từ màn hình hiển thị người sử dụng có thể quan sát, cảm nhận được quá trình làm việc của hệ thống. Khi người sử dụng muốn viết một chương trình nào đó trên mạch KIT sau khi đưa dữ liệu vào, nhờ có màn hình hiển thị mà ta có thể kiểm tra dữ liệu nhập vào đã đúng hay chưa. Hiện nay trên thị trường có nhiều loại màn hình hiển thị như hiển thị màn hình Video, bằng ma trận LED, bằng LED 7 đoạn. Trong các cách hiển thị trên, việc hiển thị bằng LED 7 đoạn có cấu trúc đơn giản và dễ sử dụng. Thật ra, dù là loại LED nào đi nữa thì cấu tạo của chúng cũng từ các phần từ LED rời qua công nghệ sản xuất chúng sẽ có những hình dạng khác nhau. Và như ta đã biết nguyên lý hoạt động của Diode Phát Quang là sẽ phát sáng khi có dòng điện chạy qua cỡ (5 – 30)mA. Do đó nó có thể chị thị được: Tín hiệu 1: khi có dòng điện chạy qua, Diode sáng. Tín hiệu 0: khi không có dòng điện chạy qua, Diode tắt. Ma trận LED 8x8(2 màu): Ma trận LED 8x8 gồm có 24 chân, các chân được đánh số thứ tự từ 1 – 24, bao gồm 8 chân điều khiển dòng, 8 chân điều khiển cột đỏ và 8 chân điều khiển cột xanh. Ma trận LED 8x8 gồm có 64 điểm, mỗi điểm tương ứng là một LED phát quang. Tùy từng loại ma trận LED mà ta có loại quét LED cho LED sáng ở mức cao hay mức thấp. Ở đây ta sử dụng LED với 8 hàng là Anod và 8 cột là Catod. Khi ta muốn điểm nào sáng ta chỉ cần cấp mức 1 tương ứng với Anod và mức 0 tương ứng với Catod. Hình 31. Sơ đồ khối ma trận LED 8x8 (2 màu) Phương pháp quét ma trận LED Để điều khiển ma trận LED cần có mạch điều khiền hàng hay cột, mạch xuất dữ liệu. Các mạch này phải kết hợp chặt chẽ với nhau. Với một ma trận hiển thị, nếu sử dụng LED đơn thì số lượng LED rất lớn, kéo theo số mạch chốt nhiều, dẫn đến phần hiển thị quang báo trở nên phức tạp, cồng kềnh, khó kết nối, khó vẽ mạch in, không có tính kinh tế. Phương pháp MULTIPLEX cho phép ta điều khiển ma trận LED với số lượng đường dây và mạch in giảm đáng kể. Theo phương pháp này tại mỗi thời điểm chi duy nhất có một hàng hoăc một cột LED sáng. Các LED phát sáng theo tần số đủ nhanh để mắt người cảm thấy LED sáng liên tục, nhờ hiện tượng lưu ảnh trên võng mạc của mắt, nhưng chú ý làm sao cho các LED sáng rõ không có cảm giác rung. Do LED được cấp dòng phát sáng trong thời gian ngắn, nên để LED thấy rõ biên độ dòng xung phải lớn hơn nhiều lần so với dòng DC trung bình qua LED. Với chế độ làm việc biên độ dòng khá lớn, LED có thể bị hư nếu thời gian quá lâu. Vì vậy các ma trận LED phải được bảo vệ thích hợp tránh hư hỏng. Phương pháp MULTIPLEX được dùng trong phương pháp truyền data nối tiếp hay song song, được chia thành hai loại thường dùng: quét hàng hay quét cột trên bảng LED. Việc chọn hàng hay chọn cột cần có một mạch chọn lệnh để chọn hàng hay cột thích hợp. Bao gồm 2 phần: Về phần cứng gồm mạch dao động và mạch giải mã cho các cột các hàng. Dùng phần mềm để xử lý chọn hàng hay chọn cột.Tần số quét quy định bằng phần mềm. Khảo sát bộ nhớ ngoài EEPROM (AT28C64) TỔNG QUÁT VỀ EEPROM HAY(Read-Only Memory): ROM là một loại thiết bị lưu trữ dùng trong máy tính và các thiết bị khác.Nó có tên như vậy vì không dễ để ghi thông tin lên nó. Không giống như RAM, thông tin trên ROM vẫn được duy trì dù nguồn điện cấp không còn. ROM, theo đúng nghĩa, chỉ cho phép đọc dữ liệu từ chúng tuy nhiên tất cả các loại ROM đều cho phép ghi dữ liệu ít nhất một lần, hoặc khi sản xuất lần đầu hoặc trong bước lập trình. Một số loại ROM cho phép xóa và lập trình lại nhiều lần. EEPROM (tiếng Anh: Electrically Erasable Programmable Read-Only Memory) hay còn gọi là ROM điện là một chip nhớ không xoá được thường dùng trong các máy tính và các thiết bị di động để lưu trữ một lượng dữ liệu thấp và cần thiết thay đổi nội dung được. EEPROM thuộc loại "bộ nhớ không mất dữ liệu khi ngừng cung cấp điện" (non-volatile storage). Có thể nói EEPROM là công nghệ mới nhất của ROM mà điều khác biệt cơ bản là chúng có khả năng xoá được bằng phương pháp lập trình mà chúng không cần đến các thiết bị chuyên dụng như các thế hệ trước của nó. Bằng cách sử dụng EEPROM (hoặc flash ROM) người ta có thể dễ dàng xoá bỏ các chương trình được nạp trên nó của các bo mạch chủ trong máy tính cá nhân mà không cần thêm một thao tác cơ học nào khác kể cả tháo vỏ máy tính. EEPROM còn giúp các thiết bị khác (bo mạch mạng, bo mạch đồ hoạ, wireless access points, bộ định tuyến...hoặc trong điện thoại, thiết bị giải trí số cá nhân...) có thể nâng cấp firmware mà không cần thay đổi chip nhớ, việc mà trước kia người ta thường thực hiện gắn chip trên các đế để có thể thay thế sau này bằng cách gỡ bỏ chúng và thay bằng chip khác. EEPROM AT28C64 Chức năng của các chân EEPROM AT28C64 Vss: ground Hình 32. Sơ đồ chân của EEROM AT28C64 Bảng sau cho ta chế độ hoạt động của EEROM AT28C64 phụ thuộc vào trạng thái của các chân điều khiển. Bảng trên: thể hiện Chế độ hoạt động của AT28C64 IC Max232. 1.Giới thiệu sơ lược Cổng giao tiếp RS-232 là giao diện phổ biến rộng rãi nhất, giống như cổng máy in, cổng nối tiếp được sử dụng rổng rãi cho mục đích đo lường và điều khiển. 2.Đặc điểm của chuẩn RS-232 Việc truyền dữ liệu RS-232 được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gởi đi nối tiếp nhau trên một đường truyền dẫn. Đầu nối Chức năng Tên Hướng DB-25 DB-9 1 Đất GND 2 3 Truyền dữ liệu TXD Xuất 3 2 Nhận dữ liệu RXD Nhập 4 7 Yêu cầu gửi RTS Xuất 5 8 Xoá việc gửi CTS Nhập 6 6 Dữ liệu sẵn sàng DSR Nhập 7 5 Nối đất vỏ máy GND 8 1 Dò sóng mang DCD 20 4 Terminal sẵn sàng DTR Xuất 22 9 Bộ chỉ thị vòng RI Nhập Bảng 32. Các chân và chức năng trên đầu nối 25 và 9 chân 3.Truyền dữ liệu qua chuẩn RS-232 Mức tín hiệu chân ra RXD tùy thuộc vào đường dẫn TXD và thông thường nằm trong khoảng –12V đến +12V. Các bit dữ liệu được gởi đảo ngược lại. Mức điện áp đối với mức cao nằm giữa –12V đến –3V và mức thấp nằm giữa +3V đến +12V. 4.Giới thiệu vi mạch giao tiếp MAX 232 Vi mạch MAX 232 của hãng MAXIM là một vi mạch chuyên dùng trong giao diện nối tiếp với máy tính. Chúng có nhiệm vụ chuyển đổi mức TTL ở lối vào thành mức +10V hoặc –10V ở phía truyền và các mức +3…+15V hoặc -15…-3V thành mức TTL ở phía nhận. Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận. Đường dẫn điều khiển lối vào CTS, điều khiển việc xuất ra dữ liệu ở cổng nối tiếp khi cần thiết, được nối với chân 9 của vi mạch MAX 232. Còn chân RST (chân 10 của vi mạch MAX) nối với đường dẫn bắt tay để điều khiển quá trình nhận. Thường thì các đường dẫn bắt tay được nối với cổng nối tiếp qua các cầu nối, để khi không dùng đến nữa có thể hở mạch các cầu này. Cách truyền dữ liệu đơn giản nhất là chỉ dùng ba đường dẫn TxD, RxD và GND (mass). Hình 33. Sơ đồ kết nối Để có thể giao tiếp được với máy vi tính ta cần phải chuyển được mức Logic của tín hiệu bình thường (mức logic 0 ứng với 0 à 2.5V và logic 1 ứng với 3.5V à 5V) sang mức logic của tín hiệu truyền sang máy tính (mức logic 0 ứng với -12V và logic 1 ứng với +12V). Ta sẽ sử dụng IC MAX 232 để đảm nhiệm chức năng này. Đây là mạch chuẩn và rất đơn giản, chỉ cần gắn đúng linh kiện và đúng các chân như trên hình là mạch có thể chạy ổn định. Không nhất thiết phải tính toán bất kỳ giá trị nào khác. IC ULN2803. Vi mạch ULN2803 (hoặc tương tự ULN2803) là một trong những vi mạch đệm được dùng khá phổ biến.Vi mạch ULN2803 là các mảng Darlington chịu được dòng điện lớn và điện áp cao, trong đó 8 cặp Darlington cực góp hở với các cục phát chung. Từng kênh trong số 8 kênh đều có thể chịu được lâu dài dòng điện đến 500mA với biên độ đỉnh lên đến 600mA. Mỗi một kênh có một diode chặn (suppression), diode này có thể được sử dụng trong trường hợp tải có tính cảm ứng, chẳng hạn như các rơle. Lối vào của ULN2803 tương thích TTL. Những ứng dụng điển hình của vi mạch đệm là điều khiển cuộn dây solenoid, rơle, môtơ một chiều, các bộ hiển thị LED, đầu máy tản nhiệt,… Đối với mỗi một trong số các bộ đệm, có một diode với anode (cực dương) được kết nối với lối ra, còn catode (cực âm) được nối với điểm chung cho toàn bộ 8 diode. Lối ra này là loại cực góp hở, có nghĩa là tải bên ngoài được nối giữa nguồn nuôi và lối ra của bộ đệm. Nguồn nuôi có thể là một nguồn điện áp dương bất kì nhỏ hơn +50V, như được chỉ định trong các tài liệu kĩ thuật của nhà cung cấp. Giá trị tải phải ước tính sao cho dòng điện chạy qua lâu dài nhỏ hơn 500mA và dòng đỉnh nhỏ hơn 600mA tính trên mỗi mạch đệm. Hình 312. Sơ đồ chân và cấu tạo ULN2803 TÍNH TOÁN NGUỒN CUNG CẤP: Một hàng led matran bao gồm 16 con led ( 8 led xanh và 8 led đỏ), ta lại có 8 con led matran do đó tổng cộng một hàng ta có 16*8 = 128 con led đơn Mà nguồn cung cấp cho 1 led đơn là 10mA, Đồng thời theo phương pháp MULTIPLEX thì tại 1 thời điểm chỉ có 1 hàng led sáng ( đối với led matran). Nên ta sẽ đặt trường hợp là toàn bộ led ở 1 hàng sáng ở một thời điểm. Do đó dòng điện maximum cung cấp cho hàng led tại 1 thời điểm là: Imax = 10mA*128led = 1.28 A Vậy nguồn cung cấp cần thiết sẽ phải lớn hơn 1.28A là an toàn nhất. NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG VÀ LƯU ĐỒ GIẢI THUẬT CỦA CHƯƠNG TRÌNH. Khi khởi động mạch quang báo, vi điều khiển sẽ đọc thông tin được lưu trước trong EEPROM về kiểu chạy chữ , màu sắc, tốc độ và nội dung của bản tin. Sau đó vi điều khiển sẽ gọi chương trình hiển thị để hiển thị nội dung ra bảng quang báo. Khi chương trình quản lí trên máy tính yêu cầu cập nhật bản tin mới cho bảng quang báo, vi điều khiển sẽ ngừng việc hiển thị để chờ nhận dữ liệu mới từ máy tính. Sau đó lưu nội dung vừa nhận được vào EEPROM để phục vụ cho việc hiển thị bảng quang báo. Sau khi nhận xong, vi điều khiển sẽ bắt đầu hiển thị nội dung mới cập nhật LƯU ĐỐ CÁC CHƯƠNG TRÌNH CỦA HỆ THỐNG. Lưu đồ chương trình chính BEGIN MAIN (để hiển thị và lấy 5byte xđ cấu hình) Đ S Đ S Đ S S Đ END Lưu đồ chương trình con ReadPC Lưu đồ chương trình con D.YEN Lưu đồ chương trình con ReadPC Lưu đồ chương trình dịch từ phải qua trái Lưu đồ chương trình hiển thị CHƯƠNG TRÌNH XỬ LÝ VI ĐIỀU KHIỂN ;p1 data hang ;p0 xuat du lieu dieu khien chot du lieu hang cho tung led va chot cot ;p3.2 mo chot cot xanh ;p3.3 mo chot cot do ;p3.4 mo chot data hang bienc equ 30h bient equ 31h bienkc equ 32h bienmc equ 33h bientd equ 34h bien1 equ 35h org 0000h mov tmod,#20h mov scon,#52h mov th1,#-24 setb tr1 clr ri lcall tatled lb4: lcall docrom lb: mov a,bienkc cjne a,#01,lb1 lcall chaychu sjmp lb3 lb1: mov a,bienkc cjne a,#02,lb2 lcall choptat sjmp lb3 lb2: mov a,bienkc cjne a,#03,lb3 lcall dyen lb3: jnb ri,lb lcall readpc sjmp lb4 chaychu: mov r6,#00h mov r7,#00h lbx2: mov r2,bientd lbx1: lcall hienthi jnb ri,lbx3 ljmp lbx4 lbx3: djnz r2,lbx1 inc r7 cjne r7,#00,lbx5 inc r6 lbx5: mov a,r6 cjne a,bienc,lbx2 mov a,r7 cjne a,bient,lbx2 lbx4: ret choptat: mov r6,#00h mov r7,#40h mov r2,#100 ;thoi gian sang lbd1: lcall hienthi jnb ri,lbd3 ljmp lbd4 lbd3: djnz r2,lbd1 mov r2,#50 ;thoi gian tat lbd5: lcall tatled jnb ri,lbd2 ljmp lbd4 lbd2: lcall delay1 djnz r2,lbd5 lbd4: ret dyen: mov r6,#00h mov r7,#40h lcall hienthi ret ;chuong trinh con hien thi 8 led ma tran hang 1 hienthi: mov r1,#00 ;copy dia chi dau de quan li data mov r3,#8 ;so lan hien thi la 8 cot mov r4,#01h ;goi ma quet ra port 2 xx1: jnb ri,xx3 ljmp xx4 xx3: mov a,r7 clr c add a,r1 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot1 clr p3.4 mov a,r1 clr c add a,#8 add a,r7 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot2 clr p3.4 mov a,r1 clr c add a,#16 add a,r7 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot3 clr p3.4 mov a,r1 clr c add a,#24 add a,r7 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot4 clr p3.4 mov a,r1 clr c add a,#32 add a,r7 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot5 clr p3.4 mov a,r1 clr c add a,#40 add a,r7 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot6 clr p3.4 mov a,r1 clr c add a,#48 add a,r7 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot7 clr p3.4 mov a,r1 clr c add a,#56 add a,r7 mov dpl,a mov a,r6 addc a,#00 mov dph,a movx a,@dptr mov p1,a setb p3.4 lcall chot8 clr p3.4 mov p2,r4 lcall chonmau lcall delay lcall tatled mov a,r4 rl a mov r4,a inc r1 djnz r3,xx2 xx4: ret xx2: ljmp xx1 chonmau: mov a,bienmc ;mau chu cjne a,#01,mau1 setb p3.3 ;mau do clr p3.3 mau1: cjne a,#02,mau2 setb p3.2 ;mau xanh clr p3.2 mau2: cjne a,#03,mau3 setb p3.2 ;mau cam clr p3.2 setb p3.3 clr p3.3 mau3: ret chot1: mov p2,#01h mov p2,#00 ret chot2: mov p2,#02h mov p2,#00 ret chot3: mov p2,#04h mov p2,#00 ret chot4: mov p2,#08h mov p2,#00 ret chot5: mov p2,#10h mov p2,#00 ret chot6: mov p2,#20h mov p2,#00 ret chot7: mov p2,#40h mov p2,#00 ret chot8: mov p2,#80h mov p2,#00 ret delay: mov 7dh,#100 djnz 7dh,$ ret delay1: mov 7eh,#60 del1: mov 7fh,#100 djnz 7fh,$ djnz 7eh,del1 ret docrom: mov dptr,#1ffah movx a,@dptr mov bienc,a mov dptr,#1ffbh movx a,@dptr mov bient,a mov dptr,#1ffch movx a,@dptr mov bienkc,a mov dptr,#1ffdh movx a,@dptr mov bienmc,a mov dptr,#1ffeh movx a,@dptr mov bientd,a mov a,bient clr c add a,#40h mov bient,a mov a,bienc addc a,#00 mov bienc,a ret readpc: mov dptr,#1ffah jnb ri,$ clr ri mov a,sbuf movx @dptr,a mov bienc,a mov dptr,#1ffbh jnb ri,$ clr ri mov a,sbuf movx @dptr,a mov bient,a mov dptr,#1ffch jnb ri,$ clr ri mov a,sbuf movx @dptr,a mov bienkc,a mov dptr,#1ffdh jnb ri,$ clr ri mov a,sbuf movx @dptr,a mov bienmc,a mov dptr,#1ffeh jnb ri,$ clr ri mov a,sbuf movx @dptr,a mov bientd,a mov dptr,#0040h mov a,bient clr c add a,#40h mov bient,a mov a,bienc addc a,#00 mov bienc,a read1: jnb ri,$ clr ri mov a,sbuf movx @dptr,a inc dptr mov a,dph cjne a,bienc,read1 mov a,dpl cjne a,bient,read1 read3: mov bien1,#40h read2: lcall delay mov a,#00 movx @dptr,a lcall delay1 inc dptr djnz bien1,read2 ret tatled: mov p1,#00h mov p2,#0ffh setb p3.4 ;tat hang clr p3.4 mov p2,#00h setb p3.2 ;tat cot xanh clr p3.2 setb p3.3 ;tat cot do clr p3.3 ret end CHƯƠNG TRÌNH TRÊN VISUAL BASIC Dim send1(0 To 1023) As Byte Dim ma1(32 To 700) As String Dim lencode As Integer Dim highlencode As Integer Dim lowlencode As Integer Dim kieuchay As Integer Dim mauchu As Integer Dim tocdo As Integer Private Sub xaclap() Dim tam1 As String Dim m As Integer Dim n As Integer 'HANG TREN lencode = 0 lowlencode = 0 highlencode = 0 m = 1 Do While m < Len(Text1) + 1 tam1 = ma1(Asc(Mid(Text1, m, 1))) n = 1 Do While n < Len(tam1) send1(lencode) = Mid(tam1, n, 3) lencode = lencode + 1 lowlencode = lowlencode + 1 If lowlencode = 256 Then lowlencode = 0 highlencode = highlencode + 1 End If n = n + 4 Loop m = m + 1 Loop End Sub Private Sub CTAT_Click() kieuchay = "2" End Sub Private Sub DTRAI_Click() kieuchay = "1" End Sub Private Sub DYEN_Click() kieuchay = "3" End Sub Private Sub exit_Click() End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "1200,n,8,1" MSComm1.InputLen = 0 'nhan tat ca du lieu vao MSComm1.PortOpen = True 'mo cong cho phep truyen Text1.Enabled = True MAUDO.Value = True DTRAI.Value = True X1.Value = True 'DATA HANG ma1(34) = "014 000 014 000" 'dau " ma1(60) = "016 056 068 000" 'dau < ma1(62) = "068 056 016 000" 'dau > ma1(63) = "006 001 081 009 006 000" 'dau ? ma1(43) = "016 016 056 016 016 000" 'dau + ma1(61) = "020 020 020 020 000" 'dau = ma1(32) = "000 000 000" 'khoang trang ma1(33) = "144 144 255" 'dau ! ma1(44) = "160 096 000" 'dau , ma1(45) = "008 008 008 008 008 000" 'dau - ma1(46) = "096 096 000" 'dau . ma1(58) = "054 054 000" 'dau : ma1(48) = "062 081 073 069 062 000" 'so 0 ma1(49) = "066 127 064 000" 'so 1 ma1(50) = "066 097 081 073 070 000" 'so 2 ma1(51) = "033 065 069 075 049 000" 'so 3 ma1(52) = "024 020 018 127 016 000" 'so 4 ma1(53) = "039 069 069 069 057 000" 'so 5 ma1(54) = "060 074 073 073 048 000" 'so 6 ma1(55) = "001 113 009 005 003 000" 'so 7 ma1(56) = "054 073 073 073 054 000" 'so 8 ma1(57) = "006 073 073 041 030 000" 'so 9 ma1(65) = "126 017 017 017 126 000" 'chu A ma1(66) = "127 073 073 073 054 000" 'chu B ma1(67) = "062 065 065 065 034 000" 'chu C ma1(68) = "127 065 065 034 028 000" 'chu D ma1(69) = "127 073 073 073 065 000" 'chu E ma1(70) = "127 009 009 009 001 000" 'chu F ma1(71) = "062 065 073 073 058 000" 'chu G ma1(72) = "127 008 008 008 127 000" 'chu H ma1(73) = "065 127 065 000" 'chu I ma1(74) = "032 064 065 063 001 000" 'chu J ma1(75) = "127 008 020 034 065 000" 'chu K ma1(76) = "127 064 064 064 064 000" 'chu L ma1(77) = "127 002 012 002 127 000" 'chu M ma1(78) = "127 004 008 016 127 000" 'chu N ma1(79) = "062 065 065 065 062 000" 'chu O ma1(80) = "127 009 009 009 006 000" 'chu P ma1(81) = "062 065 081 033 094 000" 'chu Q ma1(82) = "127 009 025 041 070 000" 'chu R ma1(83) = "070 073 073 073 049 000" 'chu S ma1(84) = "001 001 127 001 001 000" 'chu T ma1(85) = "063 064 064 064 063 000" 'chu U ma1(86) = "031 032 064 032 031 000" 'chu V ma1(87) = "063 064 063 064 063 000" 'chu W ma1(88) = "099 020 008 020 099 000" 'chu X ma1(89) = "007 008 112 008 007 000" 'chu Y ma1(90) = "097 081 073 069 067 000" 'chu Z ma1(97) = "116 084 084 124 000" 'chu a ma1(98) = "127 072 072 048 000" 'chu b ma1(99) = "056 068 068 040 000" 'chu c ma1(100) = "048 072 072 127 000" 'chu d ma1(101) = "056 084 084 088 000" 'chu e ma1(102) = "004 062 005 000" 'chu f ma1(103) = "024 164 164 248 000" 'chu g ma1(104) = "127 008 008 112 000" 'chu h ma1(105) = "059 000" 'chu i ma1(106) = "128 125 000" 'chu j ma1(107) = "127 016 040 051 000" 'chu k ma1(108) = "127 000" 'chu l ma1(109) = "124 004 120 004 120 000" 'chu m ma1(110) = "124 004 004 120 000" 'chu n ma1(111) = "056 068 068 056 000" 'chu o ma1(112) = "252 036 036 024 000" 'chu p ma1(113) = "024 036 036 252 000" 'chu q ma1(114) = "124 008 004 000" 'chu r ma1(115) = "072 086 086 100 000" 'chu s ma1(116) = "004 063 068 000" 'chu t ma1(117) = "060 064 064 124 000" 'chu u ma1(118) = "060 064 064 060 000" 'chu v ma1(119) = "060 064 060 064 060 000" 'chu w ma1(120) = "108 016 016 108 000" 'chu x ma1(121) = "012 016 016 252 000" 'chu y ma1(122) = "068 100 084 076 068 000" 'chu z End Sub Private Sub SEND_Click() Call xaclap MSComm1.Output = Chr$(highlencode) 'khai bao send bao nhieu byte MSComm1.Output = Chr$(lowlencode) MSComm1.Output = Chr$(kieuchay) 'send byte thay doi kieu chay MSComm1.Output = Chr$(mauchu) 'send byte thay doi mau chu MSComm1.Output = Chr$(tocdo) 'send byte thay doi toc do For i = 0 To (lencode - 1) MSComm1.Output = Chr$(send1(i)) 'send cac byte ky tu Next End Sub Private Sub MAUCAM_Click() Text1.ForeColor = &H80FF& mauchu = "3" End Sub Private Sub MAUDO_Click() Text1.ForeColor = &HFF& mauchu = "1" End Sub Private Sub MAUXANH_Click() Text1.ForeColor = &HFF00& mauchu = "2" End Sub Private Sub X1_Click() tocdo = "10" End Sub Private Sub X2_Click() tocdo = "50" End Sub Private Sub X3_Click() tocdo = "100" End Sub TỔNG KẾT Những

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

  • docBảng quảng cáo bằng đèn LED.doc
Tài liệu liên quan