các bác ơi, ai có code cho 89s52, nháy led matrix 8x8 hay 5x7 ko, cho e với.
Thông báo
Collapse
No announcement yet.
Tổng hợp các đề tài cho 8051-ASM-Keil(Học tập)
Collapse
X
-
pro ơi a giúp e lập trình ghép nối con 89c51 với con 8259A để mở rộng ngắt cho con VĐK với. e cố tìm đọc mãi nhưng giờ vẫn chưa bít thiết đặt trạng thái khởi đọng ban đầu cho con 8259A như thía nào. A bớt chút thời gian giúp e nha! tks a trước!
Comment
-
linh ơi,cho minh hỏi là những cái ASM mà bạn gửi có đúng ko thế, sao mih thấy mấy ct bị sai
vd như là
ORG 0000H
HUND EQU 100 ;100 x 1000 = 1 giay
COUNT EQU 1000
SETB P2.0 ;P3.0: input
LOOP: JNB P2.0,LOOP ;Cho logic 0 o P3.0
LOOP1: JB P2.0,LOOP1 ;cho logic 1 o P3.0
CLR P1.0
ACALL DELAY
SETB P1.0
SJMP LOOP
DELAY: MOV R7,#HUND
AGAIN: MOV TH0,#HIGH(COUNT)
MOV TL0,#LOW(COUNT)
SETB TR0
WAIT: JNB TF0,WAIT
CLR TF0
CLR TR0
DJNZ R7,AGAIN
RET
end
bạn ko khởi động TMOD thì lam j có thời gian trễ,với lại đk p2.0 chứ đâu phải p3.0,mấy cái ct đó bạn test chưa?
Comment
-
mấy bác nào xài c chỉ e dùng 555 chỉnh nhịp giup e vơi
code e đây ạ
#include <regx51.h>
#define led P0
void delay(unsigned int ms)
{
unsigned int i;
unsigned char j;
for(i=0;i<ms;i++)
{
for(j=0;j<125;j++)
{
}
}
}
main()
{
while(1)
{
P0=0x00;delay(1000);
P0=0x00;delay(1000);
P0=0x04;delay(1000);
P0=0x08;delay(1000);
P0=0x10;delay(1000);
P0=0x20;delay(1000);
P0=0x40;delay(1000);
P0=0x80;delay(1000);
}
}
Comment
-
Nguyên văn bởi linhnc308 Xem bài viếtBên PIC cũng có một mục như vầy và thấy có nhiều bạn hỏi nên tôi mở thêm cho bên 8051, code cho 8051 tôi có khá nhiều và sẽ cố share dần cho a e mới học, có đủ cả cho ASM và C. Sẽ chuẩn bị và up lên sớm. Mong dc sự đón nhận và ủng hộ của a e, ai có gì hay thì up lên nhé, để cho nhưng người mới đỡ khổ như tôi trước đây, cứ phải mò mẫm và đôt không biết bao nhiêu tiền net cho việc tìm tài liệu.
- Nháy LED dơn, nháy led nhiều chế độ
- LED 7 thanh
- Phím bấm
- RS232
- ADC0804, 0809
- Code cho DAC0808 tôi còn thiếu, ái có bổ xung nhé
- Led matrix
- I2C, SPI
- LCD
.....nhiều code lặt vặt khác.
Phát triển box 8051
Vẫn còn bên AVR nữa, có lẽ cung cần mở môt mục tương tự cho nó đủ bộ AT, AVR, PIC
mail: vietdung91hp@gmail.com
Comment
-
Nguyên văn bởi ngoalong911 Xem bài viếtxin cac pro giai thich gium tai sao khi toi dung ham
MOV P1.0,#3CH
thi chuong trinh bao la Undefined symbol
xin hoi khac phuc ntn ah
thank so much
nếu là p1.0 thì setb hoặc clr
còn là p1 thì mới mov p1,#...
Comment
-
Giúp mình viết code này với.
Mọi người giúp mình với. Mình đã lập trình được khi bấm công tắc thì mở LCD, còn giờ muốn bấm công tắc để LCD tắt thì làm sao ạ,chức năng giống như nút ON/OFF. Mọi người ai giỏi lập trình giúp mình với. thank! Đây là code mình viết:
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#include<math.h>
#include<stdlib.h>
#define bat 1
#define tat 0
sbit ctac = P3^0;
unsigned char dem=1;
sbit RS = P1^0;
sbit RW = P1^1;
sbit EN = P1^2;
sbit f = P3^3;
sbit b = P3^1;
sbit c1=P0^4;
sbit c2=P0^5;
sbit c3=P0^6;
sbit c4=P0^7;
unsigned char x;
unsigned char message[32];
unsigned char i,k;
void delay(unsigned long int t)
{
unsigned long int i;
for(i = 0; i<=t; ++i);
}
/*void phimnhan(void)
{ if(ctac==0)
{delay(100);
while(ctac==0);
delay(100);
dem++;
}
} */
void busy_flag (void)
{
P2 = 0xff;
RS = 0;
RW = 1;
do
{
EN = 1;;
delay (10);
EN = 0;
x = P2;
x = x&0x80;
}
while(x!= 0x80);
}
void write_command (unsigned char lcd_command)
{
busy_flag();
P2 = lcd_command;
RS = 0;
RW = 0;
EN = 1;
delay(10);
EN = 0;
delay(10);
}
void write_data(unsigned char LCD_data) // thanh ghi du lieu
{
busy_flag();
if(LCD_data!='\n')
{
P2=LCD_data;
}
else
{
write_command(0xC0);
return;
}
RS=1;
RW=0;
EN=1;
delay(80);
EN=0;
delay(80);
}
void write_string(char *s)
{
while(*s)
{
write_data(*s);
s++;
}
}
void init (void)
{
write_command(0x03); //
write_command(0x38);
write_command(0x06);
write_command(0x0e);
}
void hienthi()
{
/*if(P0==0xee){write_command(0x01);
write_command(0x80);
write_string(" phim so 1 ");
P3=0xf1;} */
/*if(P0==0xde){write_command(0x01);
write_command(0x80);
write_string(" \n phim so 2 ");P3=0xf2;} */
if(P0==0xbe){write_command(0x01);
write_command(0x80);
write_string(" ON ");
write_command(0x0c);}
if(P0==0x7e){write_command(0x01);
write_command(0x80);
write_string(" OFF ");
write_string(" 3 "); delay(500); write_command(0x01);
write_string(" 2 "); delay(500);write_command(0x01);
write_string(" 1 "); delay(500); write_command(0x01);
write_command(0x08);
return; }
/*if(P0==0xed){write_command(0x01);
write_command(0x80);
write_string(" phim so 5 ");}
if(P0==0xdd){write_command(0x01);
write_command(0x80);
write_string(" phim so 6 ");} */
if(P0==0xbd){write_command(0x01);
write_command(0x80);
write_string(" VOLUME+ ");}
if(P0==0x7d){write_command(0x01);
write_command(0x80);
write_string(" VOLUME- ");}
/*if(P0==0xeb){write_command(0x01);
write_command(0x80);
write_string(" phim so 9 ");}
if(P0==0xdb){write_command(0x01);
write_command(0x80);
write_string(" phim so 10 ");} */
if(P0==0xbb){write_command(0x01);
write_command(0x80);
write_string(" UP ");}
if(P0==0x7b){write_command(0x01);
write_command(0x80);
write_string(" DOWN ");}
/*if(P0==0xe7){write_command(0x01);
write_command(0x80);
write_string(" phim so 13 ");}
if(P0==0xd7){write_command(0x01);
write_command(0x80);
write_string(" phim so 14 ");} */
if(P0==0xb7){write_command(0x01);
write_command(0x80);
write_string(" ENTER ");}
if(P0==0x77)
{
write_command(0x01);
write_command(0x80);
sprintf(&message[0],"ESC");
write_string(&message[0]);P3=0x00;
}
}
void dieukhien(void)
{
int n[5] = {0xfe,0xfd,0xfb,0xf7};
for (i=0; i<=3;++i)
{
P0 = n[i];
hienthi();
}
}
/* Lenh cuon tang tuyen tinh
k = 0xfe;
for(i=0;i<=3;++i)
{
P0 = k;
k = _crol_(k,1);
}*/
void main (void)
{
while(1)
if(ctac==0)
{
delay(100);
init();
write_command(0x01);
write_command(0x80);
sprintf(&message[0]," CAM BIEN\nHONG NGOAI_LCD");
write_command(0x0c);
write_string(&message[0]);
/*while(ctac==1)
{
//delay(100);
write_command(0x08);
} */
while(1)
{
dieukhien();
delay(10);
}
}
}
Comment
Bài viết mới nhất
Collapse
-
bởi dinhthuong80Chắc phải mua thêm cái máy đo vận tốc gió nữa rồi!!!
-
Channel: Điện tử gia dụng
hôm nay, 16:45 -
-
bởi dinhthuong80"nếu tăng nó lên đến 90 độ thì không thổi nữa, tăng tiếp trên 90 độ nó sẽ trở thành quạt hút thôi."
là sau khi tăng lên thành 90° rồi, tiếp tục tăng nữa cho nó trên 90° đó bác, như hình vẽ xấu tệ ở dưới ạ!
-Màu xanh: dạ,...-
Channel: Điện tử gia dụng
hôm nay, 16:19 -
-
bởi vi van pham- Màu đỏ: Tăng nó lên 90 độ thì ko thổi.Tăng tiếp lên 90 độ nữa thì thành quạt hút là sao ? không hiểu.
- Màu xanh: Cùng là độ dày d, cánh nhỏ, cánh lớn, ảnh hưởng đến lưu lượng gió rất nhiều . Cái cánh quạt không phải...-
Channel: Điện tử gia dụng
hôm nay, 16:04 -
-
bởi dinhthuong801. Có lẽ cháu nói "ma sát" ở đây chưa được rõ ràng.
Ma sát ở đây chỉ là ma sát trượt qua mặt cánh quạt, và lực ma sát do không khí này có phương vuông góc với trục quay.
Như thế, nếu cùng độ dày d, tức cùng độ...-
Channel: Điện tử gia dụng
hôm nay, 15:09 -
-
bởi appongthoMã lỗi H-60, H-61 Máy giặt Panasonic là gì?
https://appongtho.com/tu-xoa-loi-h-6...iat-panasonic/
Mã lỗi H-60 và H-61 trên máy giặt Panasonic là những cảnh báo về sự cố liên quan đến hệ thống phát hiện rò rỉ điện, trong đó H-60...-
Channel: Điện tử gia dụng
hôm nay, 09:56 -
-
bởi tuyennhanTại sao quạt bàn Nhật dùng cánh to chứ không dùng cánh nhỏ , câu trả lời chắc là ở đây .
-
Channel: Điện tử gia dụng
hôm nay, 06:58 -
-
bởi tuyennhanBác Vị học ở Cao thắng à thật là ngưỡng mộ , lớp đệ tứ em học ở Nguyễn thượng Hiền chỉ được học cơ khí nguội ở trường Nhân Văn trong 3 tháng hè do các thầy ở Cao Thắng dạy ....
-
Channel: Điện tử gia dụng
hôm nay, 06:53 -
-
bởi vi van phamSao ? cháu đã chứng minh cánh quạt lớn không phải do ma sát làm giảm tốc độ chưa?
Đêm nay hắt hơi , sổ mũi, không ngũ được, uống "riệu" 1 mình chờ nhà thùng, không thấy đến, nói chuyện với cháu cho vui. Khi tôi còn là...-
Channel: Điện tử gia dụng
hôm nay, 00:03 -
Comment