Nguyên văn bởi 1991conga
Xem bài viết
Thông báo
Collapse
No announcement yet.
Led matran bằng ASM có nhiều bạn quang tâm..................
Collapse
X
-
Đây là code mới kết hợp 3 kiểu chạy các bạn ngâm cứu tiếp nhé
Code:;QUETLED hien thi gom 80 cot va 8 hang SI BIT P3.0 ;pin 14 74HC595 SCK BIT P3.1 ;pin 11 74HC595 RCK BIT P3.2 ;pin 12 74HC595 ;******************************************* CHONHANG EQU P2 ;CHONHANG PORT P2 ;******************************************* CON_TRO EQU R0 DIA_CHI EQU R1 SO_COT EQU R2 TOC_DO EQU R3 DICHBIT EQU 08H ;hang 0>7 p2=00H>>07H ;**************************************** ;************BAT DAU CHUONG TRINH ******** ;****************************************** ORG 0000H LJMP MAIN ; ORG 0003H ;LJMP EX0ISR ; ORG 000BH ;Dia chi vector bo dinh thoi 0 ; LJMP T0ISR ; ORG 001BH ;Dia chi vector bo dinh thoi 1 ; LJMP T1ISR ;tao am thanh bipbip ; ORG 002BH ;Dia chi vector bo dinh thoi 2 ;*************************************** ORG 0030H ;************************** MAIN : MOV SP,#60H MOV TMOD,#11H;11H ;Ca 2 bo dinh thoi che do 1 MOV IE,#8AH ;8A;cho phep ngat do cac bo dinh thoi MOV DPTR,#CONGMINH ;******************************************************* ;*************CH/TR Chinh ***************************** PLAY: ;*************************** MOV DIA_CHI,#-80 DICH_TRAI:MOV TOC_DO,#3 LRAM: LCALL LOADLENRAM LCALL QUET8HANG DJNZ TOC_DO,EX_01 MOV TOC_DO,#3 INC DIA_CHI CJNE R1,#80,EX_01 LJMP DICH_PHAI EX_01: LJMP LRAM ;*************************** DICH_PHAI: MOV DIA_CHI,#80 dich_phai1: MOV TOC_DO,#3 LRAM_P: LCALL LOADLENRAM LCALL QUET8HANG DJNZ TOC_DO,EX_02 MOV TOC_DO,#3 DEC DIA_CHI CJNE DIA_CHI,#-80,EX_02 LJMP DICH_LEN EX_02: LJMP LRAM_P ;************************** DICH_LEN:mov r6,#100 MOV DICHBIT,#7 MOV TOC_DO,#3 LRAM_L: LCALL DICH_RAM_LEN LCALL QUET8HANG MOV A,DICHBIT CJNE A,#0,EX_04;khi DICHBIT=0 thì dung lai djnz r6,EX_05 mov DIA_CHI,#-9 ljmp dich_trai ; ljmp dich_phai1 ; LJMP LRAM_L EX_04: DJNZ TOC_DO,EX_05 MOV TOC_DO,#3 DEC DICHBIT EX_05: LJMP LRAM_L LJMP PLAY ;************************************************ ;************************************************ ;**********CH/TR con ********************** DICH_RAM_LEN: PUSH 00H PUSH 01H PUSH 02H MOV CON_TRO,#80H MOV DIA_CHI,#-9;addr giua bang=(80-62)/2 MOV SO_COT,#80 ;80cot LAPL_02: MOV A,DIA_CHI MOVC A,@A+DPTR MOV R5,DICHBIT CJNE R5,#0,Q_T1 LJMP KHDICH Q_T1: RL A ;Chay chu duoi len Q_T: CLR C;,muon chay xuong thay bang RR A RRC A ;Chay chu duoi len , DJNZ R5,Q_T;muon chay xuong thay bang RRC A KHDICH: MOV @CON_TRO,A INC CON_TRO INC DIA_CHI MOV A,DIA_CHI DJNZ SO_COT,LAPL_02 POP 00H POP 01H POP 02H RET ;********************************************** LOADLENRAM: PUSH 00H PUSH 01H PUSH 02H MOV CON_TRO,#80H ;Dia chi dau MOV A,DIA_CHI MOV SO_COT,#80 ;80cot LAPL_01: MOV A,DIA_CHI MOVC A, @A+DPTR ;lay du lieu MOV @CON_TRO,A ;ghi vao ram INC CON_TRO ;tang con to dia chi INC DIA_CHI ;tang dia chi trung gian DJNZ SO_COT,LAPL_01;du so cot chua POP 00H POP 01H POP 02H RET ;*********************************************** QUET8HANG: PUSH 07H PUSH 00H MOV R7,#7 ;chon hang LAPHANG: MOV CON_TRO,#80H CLR RCK LAPCOT: CLR SCK MOV A,@CON_TRO CLR C RRC A MOV @CON_TRO,A SETB SCK MOV SI,C INC CON_TRO CJNE CON_TRO,#0D1H,LAPCOT SETB RCK MOV CHONHANG,R7;Sang hang LCALL DELAYLED MOV CHONHANG,#8 DEC R7 CJNE R7,#-1,LAPHANG POP 00H POP 07H RET ;******************************************* ;******************************* DELAYLED: MOV 09H,#8 D1: MOV 10H,#250 DJNZ 10H,$ DJNZ 09H,D1 RET ;***************************;*********** ;************* CONGMINH: DB 7CH,0FEH,82H,82H,0CEH,4CH,0H,5CH,0BEH,0A2H,0BEH,5CH,0H,3EH,3EH,20H,3EH,1EH,0H,19H,3DH,25H,3FH,3EH,0H,0H DB 0FEH,0FEH,60H,30H,60H,0FEH,0FEH,0H,0BCH,0BEH,4H,0H,3EH,3EH,20H,3EH,1EH,0H,0FEH,0FEH,20H,3EH,1EH,0H,0H DB 0FEH,0FEH,90H,90H,80H,64H,0F6H,92H,0DEH,4CH,0H ;************* END
Comment
-
Nguyên văn bởi CONGMINHfs Xem bài viếtBạn xem lại #1 cách mà mình thiết kế mạch là mạch thật luôn đó và khả năng mở rộng của nó,cái này bạn muốn 16 hang thì chỉ cần thêm 1em 74hc138 và tốn thêm 1 chân vdk nữa là ok rồi,tất nhiên phải sữa code lại là quét 8h thành 16hàng hay 24 hàng thì tùy bạn kể cả led 2 màu luôn..
Comment
-
Nguyên văn bởi CONGMINHfs Xem bài viếtTrong code có đó bạn vì ngẩu hứng nên mình chọn 80 byte ram từ 9EH đến EFH có phải là 80 byte không ,thực chất thì từ 9EH đến EEH nhưng vì lệnh so sánh nên phải là EFH
hỡi anh em còn ai thắc mắc gì nữa không ta....!!!!
Comment
-
Nguyên văn bởi CONGMINHfs Xem bài viếthỡi anh em còn ai thắc mắc gì nữa không ta....!!!!
Comment
-
Nguyên văn bởi hongphuong98 Xem bài viếtBạn ơi,mỗi khi muốn đổi nội dung phải lôi con atmel 8951 ra nạp lại code mất công quá,làm thế nào để nhập nội dung vào ô nhớ từ máy tính?cám ơn bạn nhé.
Comment
-
Nguyên văn bởi PDEL Xem bài viếtBác qua bền này nè hướng dẩn chi tiết lắm Hướng dẫn giao tiếp máy tính từ A đến Z(Hình ảnh)
Dùng max 232 giao tiếp 89xx với máy tính nạp mã ácii tôi không biết bạn ạ!
Comment
-
Nguyên văn bởi 1991conga Xem bài viếtý em là dùng kon 595 để đưa DL ra hàng và quét cột cơ chứ ko phải kon 138. kon 138 thì em làm đc rồi
cho hàng thì bây giờ xuất 2 byte
chúc thành công !...
Comment
-
Nguyên văn bởi Ck33spkt Xem bài viếtGiờ em mới nhớ ra cái để hỏi: Ở trên em thấy bác chạy chữ "Công Minh FS", chữ này tạo như thế nào vậy bác? Mình cũng phải kẻ các ô tròn kích thước 8x80 như cái matrix của mình rồi tô chữ vào đó, xong dựa vào đó để dò ra code hả bác?
Comment
-
bác Congminh cho em hỏi 2 vấn đề cái :
- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
- để quét led lần lượt như vậy thì phải có một chương trình xử lý những đoạn mà có những cột không sáng ( kiểu như bác quét chữ CONGMINH thì đầu tiên là 32 cột tắt,sau đó là 31 cột tắt và 1 cột sáng, sau đó tiếp là 30 cột tắt và 2 cột sáng theo chữ mình quy định trong mã, cứ tiếp như vậy, đến 0 cột tắt và 32 cột sáng theo chữ trong bảng mã matrix, và sau đó là cứ dịch bình thường ). bác có thuật toán nào xử lý vấn đề đó không ? (em thì chỉ biết có hai cách là : 1, nạp thêm vào ROM những mã matrix; 2, viết một chương trình con để xử lý khoảng trắng đó- cái này hơi rắc rối), em xem trong code của bác không thấy (à em quên, bác code quét theo hàng, nhưng em muốn quét theo cột thì xử lý xao nhỉ ?)
cảm ơn bác.
Comment
-
Nguyên văn bởi huuthobka Xem bài viếtbác Congminh cho em hỏi 2 vấn đề cái :
- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
- để quét led lần lượt như vậy thì phải có một chương trình xử lý những đoạn mà có những cột không sáng ( kiểu như bác quét chữ CONGMINH thì đầu tiên là 32 cột tắt,sau đó là 31 cột tắt và 1 cột sáng, sau đó tiếp là 30 cột tắt và 2 cột sáng theo chữ mình quy định trong mã, cứ tiếp như vậy, đến 0 cột tắt và 32 cột sáng theo chữ trong bảng mã matrix, và sau đó là cứ dịch bình thường ). bác có thuật toán nào xử lý vấn đề đó không ? (em thì chỉ biết có hai cách là : 1, nạp thêm vào ROM những mã matrix; 2, viết một chương trình con để xử lý khoảng trắng đó- cái này hơi rắc rối), em xem trong code của bác không thấy (à em quên, bác code quét theo hàng, nhưng em muốn quét theo cột thì xử lý xao nhỉ ?)
cảm ơn bác.
- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
bản led của mình là 80 cột đúng không bạn,vậy từ trái qua phải cột đầu tiên mình chọn daichi là 0
thì tương ứng cột cuối bên trái là +80 và cột cuối bên phải là -80.
- để quét led lần lượt như vậy thì phải có một chương trình xử lý những đoạn mà có những cột không sáng ( kiểu như bác quét chữ CONGMINH thì đầu tiên là 32 cột tắt,sau đó là 31 cột tắt và 1 cột sáng, sau đó tiếp là 30 cột tắt và 2 cột sáng theo chữ mình quy định trong mã, cứ tiếp như vậy, đến 0 cột tắt và 32 cột sáng theo chữ trong bảng mã matrix, và sau đó là cứ dịch bình thường ). bác có thuật toán nào xử lý vấn đề đó không ? (em thì chỉ biết có hai cách là : 1, nạp thêm vào ROM những mã matrix; 2, viết một chương trình con để xử lý khoảng trắng đó
hoanh nghênh bạn đã hiểu được thấu đáo vấn đề cố giắng phát huy nhé
nếu bạn quét cột (với số cột không lớn) thì để đơn giản bạn nên tắt cột bằng mã trong bảng(mảng) luôn.
chúc thành công..!..
Comment
-
Nguyên văn bởi CONGMINHfs Xem bài viết- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
bản led của mình là 80 cột đúng không bạn,vậy từ trái qua phải cột đầu tiên mình chọn daichi là 0
thì tương ứng cột cuối bên trái là +80 và cột cuối bên phải là -80.
giả xử DIA_CHI=-80 ; sau đó có lệnh mov a,dai_chi ; rồi có lệnh movc a,@a+dptr thì nó xẽ lấy mã hiển thị ở trước ô 9E (tức là 9EH-80=4EH );
Vậy tức là mình đã tốn mất 80byte RAM rồi phải không ? (tổng cộng mất 160byte RAM cho dữ liệu trắng ?).
Em hiểu có gì sai mong bác thông cảm,
hy vọng bác giúp đàn em thắc mắc này.
thank.
Comment
-
Nguyên văn bởi huuthobka Xem bài viếtVấn đề em băn khoăn chính là chỗ này,
giả xử DIA_CHI=-80 ; sau đó có lệnh mov a,dai_chi ; rồi có lệnh movc a,@a+dptr thì nó xẽ lấy mã hiển thị ở trước ô 9E (tức là 9EH-80=4EH );
Vậy tức là mình đã tốn mất 80byte RAM rồi phải không ? (tổng cộng mất 160byte RAM cho dữ liệu trắng ?)..
Đúng rồi đó bạn nhưng ta sử lí 160byte này như thế nào chứ đâu thể dùng phí thế
lúc nào có dịp nào đó cụ thể mình sẽ hướng dẫn bạn về cái khoản trắng này,chỉ có vài lệnh thôi.
gợi ý: dlieutrang......dulieu......dlieutrang .khi diachi nằm trong tầm dlieutrang thì dptr không lấy dulieu ở bảng mà lấy dulieu trắng cố định là 00h hoặc FFH....
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Tiếng Anh cho người Việtbởi vi van phamNhững lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).
Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:31 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi bqvietThiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.Hôm qua, 17:22
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.
Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 11:52 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi vi van phamUống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
Cái khó bó cái...19-02-2025, 23:05 -
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.
Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.
Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...-
Channel: Tâm tình dân kỹ thuật
19-02-2025, 21:27 -
-
bởi xenopus123Cần hỗ trợ mạch đồng hồ vạn niên 89c52 ds1302 ds18b20 dùng 16 led 7 đoạn
-
Channel: Hỗ trợ học tập
19-02-2025, 21:24 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Nhìn kỹ hàng đi cu. Chứ ra đường cứ thấy đàn bà rồi bảo:
- Tôi cũng có vợ như thế....
Đảm bảo cu nát người luôn....-
Channel: Điện tử dành cho người mới bắt đầu
19-02-2025, 21:04 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
17-02-2025, 14:40 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
17-02-2025, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
17-02-2025, 01:38 -
Comment