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,
40 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1619 | Lượt tải: 1
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:
- Bảng quảng cáo bằng đèn LED.doc