nhờ các bác giúp em một chút nào
Thông báo
Collapse
No announcement yet.
[TUT] Lý thuyết về code LED sao băng bằng ASM và KeilC cho 8051
Collapse
This is a sticky topic.
X
X
-
Nguyên văn bởi tienhuypro Xem bài viếtCòn nợ các bác cái code ASM, hy vọng sẽ có trong năm mới này. Hoặc ai giúp cái, tui sẽ hỗ trợ chỉnh sửa cho!
Comment
-
Nguyên văn bởi tienhuypro Xem bài viếtvoid main(){
TMOD=0x10; /*timer 1 16bit*/
TR1=1;
TH1=0xFE;
TL1=0xB3;
IE=0x88; /*Ket thuc khoi dong timer1*/
P0 = 0;
delay_ms(3000);
full_color1();
while(1){
full_color2();
}
}
[/CODE]
Comment
-
Nguyên văn bởi annapana Xem bài viếtcái đoạn delay _ms (3000) để làm gì vây anh???
Comment
-
Tình hình là e đang làm đồ án môn học VXL
Đề tài là dùng 89s52 sửa dụng 14 cổng chớp led trong đó có 12 cổng chớp theo kiểu sao băng còn 2 cổng còn lại chớp luân phiên.
Đầu tiên là quét sao băng 12 cổng và sáng cổng thứ 13
Kế tiếp là quét sao băng 12 cổng và sáng cổng thứ 14
Lặp lại 6 lần như thế
Tiếp là quét sao băng 12 cổng và giữa sáng chớp luân phiên 13 , 14 chớp 20 lần
Xong quay lại từ đầu
Xung delay là lấy từ ic 555.
code của e mà e dịch ra mô phỏng nó ko có chạy a
/*Thach anh su dung f=24Mhz*/
#include "regx52.h"
typedef unsigned char uchar;
typedef unsigned int uint;
sbit c1=P2^0;
sbit c2=P2^1;
sbit c3=P2^2;
sbit c4=P2^3;
sbit c5=P2^4;
sbit c6=P2^5;
sbit c7=P2^6;
sbit c8=P2^7;
sbit c9=P0^7;
sbit c10=P0^6;
sbit c11=P0^5;
sbit c12=P0^4;
/*
sbit c13=P2^3;
sbit c14=P2^2;
sbit c15=P2^1;
sbit c16=P2^0;
sbit c17=P3^7;
sbit c18=P3^6;
sbit c19=P3^5;
sbit c20=P3^4;
sbit c21=P3^3;
sbit c22=P3^2;
sbit c23=P3^1;
sbit c24=P3^0;
sbit c25=P1^7;
sbit c26=P1^6;
sbit c27=P1^5;
sbit c28=P1^4;
sbit c29=P1^3;
sbit c30=P1^2;
sbit c31=P1^1;
sbit c32=P1^0;
*/
uchar num_pwm;
uchar pwm_c[32];
uint delay_in_t1;
void isr_timer1() interrupt 3 using 2{
TH1=0xFD; /* -24000000/12/60/50 ~= -666 ->0xFD66 (50 nghia la 50 muc sang)*/
TL1=0x66; /* chu ky ngat timer1 T=(666/2)us --> T*3 = 999 us ~= 1ms*/
c1=(pwm_c[0]>num_pwm)?1:0;
c2=(pwm_c[1]>num_pwm)?1:0;
c3=(pwm_c[2]>num_pwm)?1:0;
c4=(pwm_c[3]>num_pwm)?1:0;
c5=(pwm_c[4]>num_pwm)?1:0;
c6=(pwm_c[5]>num_pwm)?1:0;
c7=(pwm_c[6]>num_pwm)?1:0;
c8=(pwm_c[7]>num_pwm)?1:0;
c9=(pwm_c[8]>num_pwm)?1:0;
c10=(pwm_c[9]>num_pwm)?1:0;
c11=(pwm_c[10]>num_pwm)?1:0;
c12=(pwm_c[11]>num_pwm)?1:0;
/*
c13=(pwm_c[12]>num_pwm)?1:0;
c14=(pwm_c[13]>num_pwm)?1:0;
c15=(pwm_c[14]>num_pwm)?1:0;
c16=(pwm_c[15]>num_pwm)?1:0;
c17=(pwm_c[16]>num_pwm)?1:0;
c18=(pwm_c[17]>num_pwm)?1:0;
c19=(pwm_c[18]>num_pwm)?1:0;
c20=(pwm_c[19]>num_pwm)?1:0;
c21=(pwm_c[20]>num_pwm)?1:0;
c22=(pwm_c[21]>num_pwm)?1:0;
c23=(pwm_c[22]>num_pwm)?1:0;
c24=(pwm_c[23]>num_pwm)?1:0;
c25=(pwm_c[24]>num_pwm)?1:0;
c26=(pwm_c[25]>num_pwm)?1:0;
c27=(pwm_c[26]>num_pwm)?1:0;
c28=(pwm_c[27]>num_pwm)?1:0;
c29=(pwm_c[28]>num_pwm)?1:0;
c30=(pwm_c[29]>num_pwm)?1:0;
c31=(pwm_c[30]>num_pwm)?1:0;
c32=(pwm_c[31]>num_pwm)?1:0;
*/
if(++num_pwm==100){
num_pwm=0;
}
++delay_in_t1;
}
/*
void delay_ms(uint time)
{
delay_in_t1 = 0;
while(delay_in_t1 <= time*3);
}
*/
void delay()////delay xung 555///////
{
while(!P3_5);
while(P3_5);
}
void main(){
TMOD=0x10; /*timer 1 16bit*/
TR1=1;
TH1=0xFD;
TL1=0x66;
IE=0x88; /*Ket thuc khoi dong timer1*/
P0 = 0;
P2 = 0;
delay_ms();
while(1){
}
}
Mấy a giúp e
Comment
-
mọi người giúp e với ạ đoạn code này của e sai chỗ nào vậy ạ e viết cho đồng hồ đếm dây
với em muốn viết code cho 2 con le đơn nháy cho nguồn thì viết thế nào ạ e cảm ơn
SECOND EQU 30H
TCOUNT EQU 31H
KCOUNT EQU 32H
KEY BIT P3.7
ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
START: MOV DPTR,#TABLE
MOV P0,#3FH
MOV P2,#3FH ;Start, digital display, "00"
MOV SECOND,#00H
MOV TCOUNT,#00H
MOV KCOUNT,#00H
MOV TMOD,#01H ;Timer 0 is in Mode 1
MOV TL0,#(65536-50000)/256
MOV TH0,#(65536-50000) MOD 256
K1: JB KEY,$ ;Wait for key
LCALL DELAY
JB KEY,$
MOV A,KCOUNT
CJNE A,#00H,K2 ;Determine the number keys
SETB TR0 ;1st button, start timer
MOV IE,#82H
JNB KEY,$
INC KCOUNT ;Button up, button clicks value plus 1
LJMP K1
K2: CJNE A,#01H,K3
CLR TR0 ;2nd key, turn off timer
MOV IE,#00H
JNB KEY,$
INC KCOUNT ;Button up, button clicks value plus 1
LJMP K1
K3: CJNE A,#02H,K1 ;The 3rd button, return to initial state
JNB KEY,$
LJMP START
INT_T0: MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000) MOD 256
INC TCOUNT
MOV A,TCOUNT
CJNE A,#2,I2 ;0.1 seconds is enough to account
MOV TCOUNT,#00H
INC SECOND
MOV A,SECOND
CJNE A,#100,I1 ;10 seconds is enough to account
MOV SECOND,#00H
I1: MOV A,SECOND
MOV B,#10
DIV AB
MOVC A,@A+DPTR ;Show time
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
I2: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DELAY: MOV R6,#20
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
END
Comment
-
Mình thấy tiêu đề này hay quá chừngAttached Files
Comment
Bài viết mới nhất
Collapse
-
bởi chinhnguyen9Hoạt động của thế hệ mạch cân bằng trước đây dựa trên nguyên lý so áp giữa 2 string liền kề. Hoạt động cân bằng chỉ kích hoạt khi sự chênh lệch vượt ngưỡng 100mV và ngưng hoạt động khi mức chênh lệch giảm xuống còn 30mV. Bản...
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 05:07 -
-
bởi chinhnguyen9Xem hình minh họa có phần thuyết minh bên trong tiện việc quan sát và đọc thuyết minh. Khi G1 high dòng điện chạy theo các đường màu đen khi G2 high dòng điện chạy theo các đường màu nâu đỏ.
Bổ sung một tính chất củng cố cho tên gọi tụ bay: Trong mạch đề cập chỉ...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 21:02 -
-
bởi chinhnguyen9Sản phẩm này ghi version 2.0 01-2024 MADE IN CHINA nhưng không thấy thương hiệu hình 1
Do 8 chân G của 8 mosfet được đấu song song thành 2 nhóm nên có cùng biên độ xung kích 12V. Nhưng Q1 và Q2 nằm cuối dãy, chân S cùa chúng có điện áp DC cao đến...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 20:37 -
-
bởi xuanthiettivi em bị mất remote lỡ vào chế độ usb giờ không chọn lại source được. ai có file nạp cho em xin với ạ. Model 32HD957T2
-
Channel: Điện tử truyền hình
Hôm qua, 10:53 -
-
Trả lời cho Giải thích nôm na từ "tụ bay"bởi chinhnguyen9Đa tạ lời cảm ơn của bạn. Mến!
-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 05:06 -
-
Trả lời cho Xin tư vấn về mạch cầu H cho inverter 1000wbởi thebinhzChắc là không được đâu bạn ơi
Quán ăn Vĩnh Yên-
Channel: Điện tử công suất
25-04-2024, 21:56 -
-
Trả lời cho Giải thích nôm na từ "tụ bay"bởi thebinhzCảm ơn bạn nhiều nha
Nhà hàng Vĩnh Yên-
Channel: Hướng dẫn sử dụng diễn đàn
25-04-2024, 21:50 -
-
bởi chinhnguyen9Vai viết này đã được chuyển sang chuyên mục phù hợp....
-
Channel: Hướng dẫn sử dụng diễn đàn
25-04-2024, 08:29 -
-
bởi chinhnguyen9
Xem hình có phần thuyết minh bên trong tiện việc quan sát và đọc thuyết minh. Khi G1 high dòng điện chạy theo các đường màu đen khi G2 high dòng điện chạy theo các đường màu nâu đỏ.
Bổ sung một tính chất củng cố cho tên gọi tụ...-
Channel: Hướng dẫn sử dụng diễn đàn
24-04-2024, 01:15 -
-
Trả lời cho CODE/ROM-dvb-vcd-dvd-mindikaraoke- Máy nạp Rombởi ThaPhong20Mình cần giúp đõ đầu California MIDI-800K
Ngày trc có nghe tin đồn đầu này có thể chạy đĩa DH-3600 nên mua Vol 26 về chạy thử và nó báo góc trái dòng code rồi tự thay nền DH-3600S luôn. Sau khi tự thay nền thì nó tiếp tục báo dòng Code...-
Channel: Thiết bị thu phát MEDIA dân dụng
23-04-2024, 19:24 -
Comment