bác zemen có chương trình quét led 7doan anode không pót lên cho emn tham khảo với
Thông báo
Collapse
No announcement yet.
HƯỚNG DẪN LẬP TRÌNH KEIL C CHO 8051-[Chỉ dành post bài hướng dẫn]
Collapse
X
-
cần giúp đở gấp nếu không ai trả lời thì chắc tạm biệt diển đàn luôn thôi vì hỏi nhiều mà chả ai trả lời he
các bác cho em hỏi cái chương trình em viết chạy mấy con Led đơn thôi mà em không biết sai ở đâu mà mô phỏng mải không được mặc dù nó khá giống với chương trình của bác zemen
#include<regx51.h>
extern void delay_ms(unsigned int x);
///////////////////////////////////////////////////////////////////////////
void delay_ms(unsigned int x){
unsigned char TGIAN_TRE1;
while(x--)
{
TGIAN_TRE1=122;
while(TGIAN_TRE1--);
}
}
///////////////////////////////////////////////////////////////////////////
void main()
{
unsigned char solanquay=8;
P0=0xFE;
while(solanquay!=0){
P0=P0<<1;
delay_ms(1000);
solanquay=solanquay-1;
}
taicho:
goto taicho;
}
Comment
-
Nguyên văn bởi yeubom1 Xem bài viếtcần giúp đở gấp nếu không ai trả lời thì chắc tạm biệt diển đàn luôn thôi vì hỏi nhiều mà chả ai trả lời he
các bác cho em hỏi cái chương trình em viết chạy mấy con Led đơn thôi mà em không biết sai ở đâu mà mô phỏng mải không được mặc dù nó khá giống với chương trình của bác zemen
#include<regx51.h>
extern void delay_ms(unsigned int x);
///////////////////////////////////////////////////////////////////////////
void delay_ms(unsigned int x){
unsigned char TGIAN_TRE1;
while(x--)
{
TGIAN_TRE1=122;
while(TGIAN_TRE1--);
}
}
///////////////////////////////////////////////////////////////////////////
void main()
{
unsigned char solanquay=8;
P0=0xFE;
while(solanquay!=0){
P0=P0<<1;
delay_ms(1000);
solanquay=solanquay-1;
}
taicho:
goto taicho;
}
void main()
{while(1){
unsigned char solanquay=8;
P0=0xFE;
while(solanquay!=0){
P0=P0<<1;
delay_ms(1000);
solanquay=solanquay-1;
}
}
}
Hê chạy thử coi được không, mình chưa chạy thử nữa
Comment
-
Có ai rành về i2c help me
Cái này viết bằng ASM
Code:;============CHUONG TRINH CON DOC BYTE TU AT24C04 READ_BYTE_AT: PUSH B PUSH ACC PUSH 01 MOV R1,DATAS READ_BYTE1: MOV B,ADDRESS ACALL READ_BYTE MOV @R1,A INC ADDRESS DEC R1 MOV A,R1 CJNE A,TEMP,READ_BYTE1 POP 01 POP ACC POP B RET ;=========================================================;============CHUONG TRINH CON GHI BYTE TU AT24C04;=========================================================WRITE_BYTE_AT: PUSH ACC PUSH B PUSH 01 MOV R1,DATAS WRITE_BYTE1: MOV A,@R1 MOV B,ADDRESS ACALL WRITE_BYTE ; INC ADDRESS DEC R1 MOV A,R1 CJNE A,TEMP,WRITE_BYTE1 POP 01 POP B POP ACC RET ;========================================================= ; CHUONG TRINH DOC MOT BYTE DU LIEU TU ROM 24C04 ; THANH GHI A CHUA DATA, THANH GHI B CHUA ADDRESS ;======================================================== READ_BYTE: PUSH 01 ACALL START ;------------------------------------------------------------------------- CLR SCK ACALL DE_100ms SETB SDA1 ACALL C_PULSE ;------------------------------------------------------------------------- CLR SDA ACALL C_PULSE ;------------------------------------------------------------------------- SETB SDA ACALL C_PULSE ;------------------------------------------------------------------------- CLR SDA ACALL C_PULSE ;------------------------------------------------------------------------- ACALL C_PULSE ACALL C_PULSE ACALL C_PULSE ;------------------------------------------------------------------------- ACALL C_PULSE ;------------------------------------------------------------------------- ACALL C_PULSE ; ACK ;------------------------------------------------------------------------- MOV R1,#8 MOV A,B READ_BYTE01: RRC A MOV SDA,C ACALL C_PULSE DJNZ R1,READ_BYTE01 ;------------------------------------------------------------------------- ACALL C_PULSE ; ACK ;------------------------------------------------------------------------- ACALL START ;------------------------------------------------------------------------- CLR SCK ACALL DE_100ms SETB SDA ACALL C_PULSE ;------------------------------------------------------------------------- CLR SDA ; ACALL C_PULSE ;------------------------------------------------------------------------- SETB SDA ACALL C_PULSE ;------------------------------------------------------------------------- CLR SDA ACALL C_PULSE ;------------------------------------------------------------------------- ACALL C_PULSE ;DIA CHI 000 ACALL C_PULSE ACALL C_PULSE ;------------------------------------------------------------------------- SETB SDA ACALL C_PULSE ;1 : READ ;------------------------------------------------------------------------ SETB SDA ACALL C_PULSE ; ACK ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- MOV R1,#8 READ_BYTE02: MOV C,SDA RRC A ACALL C_PULSE DJNZ R1,READ_BYTE02 ;-------------------------------------------------------------------------;------------------------------------------------------------------------- ACALL STOP POP 01 RET ;========================================================= ;=======CHUONG TRINH GHI MOT BYTE DU LIEU TU ROM 24C04========= ;=======THANH GHI A CHUA DATA, THANH GHI B CHUA ADDRESS======= ;========================================================= WRITE_BYTE: PUSH 01 ACALL START ;------------------------------------------------------------------------- CLR SCK ACALL DE_100ms SETB SDA ; ACALL C_PULSE ;------------------------------------------------------------------------- CLR SDA ; 0 ACALL C_PULSE ;------------------------------------------------------------------------- SETB SDA ; 1 ACALL C_PULSE ;------------------------------------------------------------------------- CLR SDA ; 0 ACALL C_PULSE ;------------------------------------------------------------------------- ACALL C_PULSE ; DIA CHI 000 ACALL C_PULSE ACALL C_PULSE ;------------------------------------------------------------------------- ACALL C_PULSE ;0 : WRITE ;------------------------------------------------------------------------- ACALL C_PULSE ; ACK ;------------------------------------------------------------------------- PUSH ACC MOV R1,#8 MOV A,B WRITE_BYTE01: RRC A MOV SDA,C ACALL C_PULSE DJNZ R1,WRITE_BYTE01 POP ACC ;------------------------------------------------------------------------- ACALL C_PULSE ; ACK ;------------------------------------------------------------------------- MOV R1,#8 WRITE_BYTE02: RRC A MOV SDA,C ACALL C_PULSE DJNZ R1,WRITE_BYTE02 ;------------------------------------------------------------------------- ACALL C_PULSE ; ACK ;------------------------------------------------------------------------- ACALL STOP ; Dieu kien STOP POP 01 RET ;========================================================= ;====================STARTCONDITION========================;========================================================= START: SETB SDA ; SETB SCK ; ACALL DE_100ms ; CLR SDA ; START ACALL DE_100ms ; RET ;=========================================================;=====================STOPCONDITION========================;========================================================= STOP: CLR SDA ; ACALL DE_100ms ; SETB SCK ; ACALL DE_100ms ; SETB SDA ; STOP ACALL DE_1000ms ; RET ;========================================================= C_PULSE: ACALL DE_100ms ; SETB SCK ; ACALL DE_100ms ; CLR SCK ; ACALL DE_100ms ; RET ;========================================================= ;========================================================= DE_100ms: PUSH 07 MOV R7,#250 DJNZ R7,$ POP 07 RET ;========================================================= ;========================================================= DE_1000ms: PUSH 06 PUSH 07 MOV R6,#30 LOOP_DL: MOV R7,#200 DJNZ R7,$ DJNZ R6,LOOP_DL POP 07 POP 06 RET
READ_SETPOINT:
MOV ADDRESS,#100 ; Dia chi o nho trong AT24C04
MOV DATAS,#SET1 ; Dia chi luu gia tri doc tu AT24C04
MOV TEMP,#DK1 ; Gia tri so sang de thoat khoi chuong ACALL READ_BYTE_AT ; Chuong trinh con doc loat cac byte
nhưng khi mình chuyển qua C thì không chạy được, có ai biết chỉ giùm mình với
Đây là mình viết bằng cAttached Files
Comment
-
Giúp tôi xem đoạn code này với
/************************************************** *******
Dem tu 0 toi 9 sau do lap lai voi display 7 doan
************************************************** *******/
#include<reg51.h>
void wait_a_second()
{
unsigned int x;
for(x=0;x<33000;x++);
}
main()
{
int LED=0;
int LED_ARRAY(10)={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7C,0x07,0x7F,0x67};
for(
{
P1=~LED_ARRAY(LED);
wait_a_second();
LED++;
if(LED==10)LED=0;
}
}
Nhưng không hiểu tại sao nó lại báo lỗi thế này
syntax error near '10'
'LED_ARRAY':can't initialize, bad type or class
Comment
-
Nguyên văn bởi Imhotep Xem bài viết/************************************************** *******
Dem tu 0 toi 9 sau do lap lai voi display 7 doan
************************************************** *******/
#include<reg51.h>
void wait_a_second()
{
unsigned int x;
for(x=0;x<33000;x++);
}
main()
{
int LED=0;
int LED_ARRAY(10)={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7C,0x07,0x7F,0x67};
for(
{
P1=~LED_ARRAY(LED);
wait_a_second();
LED++;
if(LED==10)LED=0;
}
}
Nhưng không hiểu tại sao nó lại báo lỗi thế này
syntax error near '10'
'LED_ARRAY':can't initialize, bad type or class
0x6D,0x7C,0x07,0x7F,0x67};
nên dùng unsigned char , đừng dùng kiểu int cho các biến đếm
Comment
-
Nguyên văn bởi baccuc1 Xem bài viếtTrong keil C mình muốn hiển thị bằng số thứ tự dòng code mà mình viết thì vào đâu để chọn?!( Ví dụ: 1,2 ,3....................n). Mong các bạn chỉ giáo giúp! Mình xin cảm ơn!
Comment
-
Nguyên văn bởi VNarmy Xem bài viếtPhép quay thì trong C ko có. Em có thể dùng inline để cài ASM vào hoặc viết đơn giản như sau:
Code:unsigned char RotateRight(unsigned char A, i){ unsigned char tmp1, tmp2; tmp1=A; A>>=i; tmp2=A; A=tmp1; A<<=(8-i); A|=tmp2; return(A); }
Comment
-
Nguyên văn bởi yeubom1 Xem bài viếtbạn nhìn phía dưới góc phải của keil có hiển thị dòng mà
Nó hiển thị ví dụ như này bạn ạ:
1 Câu lệnh
2 Câu lệnh
.
.
.
n Câu lệnh
Mong các bạn chỉ bảo giúp!
Mình cảm ơn
Comment
-
Nguyên văn bởi baccuc1 Xem bài viếtNhưng mình biết là nó có hiển thị được số thứ tự dòng code ngay đầu dòng code bạn ạ! Vì nhìn thế khi viết code sai mình dễ theo dõi hơn.
Nó hiển thị ví dụ như này bạn ạ:
1 Câu lệnh
2 Câu lệnh
.
.
.
n Câu lệnh
Mong các bạn chỉ bảo giúp!
Mình cảm ơn
ko hỉu í u , khi u viết xong chương trình, nhấn F7 . Nếu sai , trình dịch đưa ra lỗi , u chỉ cần click vào dòng thông báo lỗi í thì trình dịch tự động đưa u tới chỗ nào bị lỗi , u chữa , thế thui !
Comment
-
#include<reg51.h>
#include<stdio.h>
#include<math.h>
unsigned char M[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
unsigned char donvi,chuc,tram,nghin,num;
void delay(void)
{
TMOD = 0x02;
TH0 = TL0 = -100;
TR0 = 1;
while(!TF0);
TF0 = 0;
TR0 = 0;
}
void main(void)
{
nghin=num/1000;
tram=(num%1000)/100;
chucnum%1000)%100)/10;
donvinum%1000)%100)%10;
{
P3=0xF7;
P1=M[donvi];
delay();
P3=0xEF;
P1=M[chuc];
delay();
P3=0xDF;
P1=M[tram];
delay();
P3=0x7F;
P1=M[nghin];
delay();
}
}
Tôi muốn hỏi các bạn một chút : với chương trình này, tôi muốn thêm vào một biến đếm tự động từ 0 tới 9999 và quay lại để làm tham số hiển thị cho 4 digit được định nghĩa ở trên thì làm như thế nào
Comment
-
Em dùng ngắt thế này, nhưng chẳng hiểu nó báo lỗi PULLIC
#include <regx51.h>
void delay(int time)
{
int i=0;
TMOD = 0x01;
while(time--)
{
for(i=0;i<20;i++)
{
TH0=0x3C;
TL0=0xAF;
TR0=1;
while (!TF0);
TF0=0;
TR0=0;
}
}
}
void inter0(void) interrupt 0 using 2
{
int i;
const unsigned char Font[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
while(1)
{
for (i=0;i<9;i++)
{
P2 = Font[i];
delay(1);
}
i=0;
}
}
void main(void)
{
P2 = 0x3F;
EA=1;
EX0=1;
while(1);
}
thông báo như sau:
Build target 'Target 1'
assembling STARTUP.A51...
compiling nhay led.c...
compiling led 7 seg.c...
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: MAIN
MODULE: led 7 seg.obj (LED_7_SEG)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _DELAY
MODULE: led 7 seg.obj (LED_7_SEG)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MAIN?LED_7_SEG
Program Size: data=27.0 xdata=0 code=468
Target not created
Các anh chị xem dùm em tí ạ. Chương trình dùng ngắt để đếm và hiển thị ra led 7 đoạn từ 0-->9
Comment
Bài viết mới nhất
Collapse
-
bởi phuongac15Để bảo quản bánh kem trong kho lạnh bánh kem một cách hiệu quả, giữ được hương vị, kết cấu và hình dáng đẹp, bạn cần chú ý đến nhiệt độ, độ ẩm, cách đóng gói và thời gian bảo quản. Dưới đây là hướng dẫn chi tiết:
1. Điều kiện lý tưởng để bảo quản bánh kem trong kho lạnh- Nhiệt độ:
- Bánh kem
-
Channel: Quảng cáo
hôm nay, 21:32 - Nhiệt độ:
-
bởi vi van phamHàn chì thiếc lên dây điện nhôm luôn là sự khó khăn của anh em thợ. Dung dịch trợ hàn nhôm quãng cáo mua về chỉ hàn được sắt và inox. Tôi tìm thấy trên mạng người ta dùng sulfat đồng CuSo4 mạ đồng lên nhôm rồi hàn. Cách này không dùng...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 20:04 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nguyendinhvanNó là di chứng của cái bệnh thành tích, hình thức. Nếu không chữa trị đúng thày đúng thuốc thì sau này dễ biến chứng thành căn bệnh ảo.
Dẫu sao thì khoa học kỹ thuật công nghệ cũnc· cần kết hợp với cúng lễ ạ.
Cầu Thiên...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 22:15 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi mèomướpDạ hồi năm ngoái cháu trốn học buổi sáng về rình rồi ạ. Cụ trưởng bản vào nhà chị ấy thì chính cụ ấy mới là người rên la ấy ạ, khi đi ra thì cụ ấy tóc tai quần áo xộc xệch chân đi loạng quạng lắm ạ. Chỉ có anh thợ sửa...
-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 10:57 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi vi van phamHôm nào mèo rình cụ trưởng bản sang nhà chị hàng xóm, chờ khi chị hàng xóm rên la, méo phá cửa vào nhà giúp đỡ chị ấy rồi báo cáo kết quả lên diễn đàn nhé.
Chúc mèo lành lặn, ko mất sợi lông mèo nào. đó là kết quả chữ Tâm của người không cần sự giúp đỡ....
-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 08:00 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi vi van phamOK với bác.
Máy nó bán còn không cho tài liệu s/c. Phải bỏ tiền ra mua mới có tài liệu sc, nó chỉ cho tài liệu sử dụng mà thôi....-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 07:56 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi tuyennhanMình phải đắc đạo rồi thì mới độ được cho người vậy nên TÂM NHƯ NĂNG TỈNH mới tốt .
Khi xưa tôi nhờ phòng văn thư dùng mail công ty gửi cho hãng hỏi về một chi tiết kỹ thuật và mua linh kiện , hãng nó trả lời xin liên lạc...-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 07:04 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi dinhthuong80ĐT em dốt tiếng Anh, nên chỉ cứ tưởng họ hay nói câu cầu khiến dạng:
VERB/VERB.ING + PLEASE
Giờ được bác hiểu rộng và có tâm chỉ bảo em mới biết thêm cấu trúc:
ADJ + PLEASE
Quả là như bác bác...-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 06:20 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi mèomướpDạ cháu hông đồng ý với ý kiến của bác vi... ạ, mặc dù cháu biết bác rất thật lòng, rất muốn điều tốt đẹp đến cho chú dinh...nhưng xã hội nó vốn đã vậy rồi, mình giúp đỡ hay rộng hơn là bất cứ 1 tác động gì đến người...
-
Channel: Tâm tình dân kỹ thuật
01-03-2025, 20:39 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi vi van phamGiúp đỡ người ko cần trợ giúp, đôi khi chữ Tâm còn thiếu chưa đủ nghĩa, phải thêm vào chữ Nhẫn phía trước thành chữ Nhẫn Tâm.
Thí dụ bạn làm trong cty chuyên về điện tử, buổi họp hàng tuần diễn ra, bạn góp ý với bạn...-
Channel: Tâm tình dân kỹ thuật
01-03-2025, 18:02 -
Comment