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
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • cái keil này mới à nha, các bác ui tui sử dụng msc de viet cho ho 89xx va 80xx, vậy muốn chuyển wa keil thì dùg ngôn ngử gì, và xin cho hỏi 1 điều nữa đó là mình có thể lập trình rồi chạy trực tiếp bằng một kic gắn với máy tính wa cổng LPT đc kô,

    Comment


    • Nguyên văn bởi thanhtinh Xem bài viết
      cac anh oi gip em lam the nao giao tiep voi ban phim hex va gui no len lcd 20x1
      thay giao em bat viet chuong trinh bang c su dung 89c51
      trong này có nhiều code liên quan đến cái bạn cần ,nghiên cứu đi nhé,có gì trao đổi lại.
      http://www.8052.com/codelib.phtml


      http://dientuvietnam.net/forums/showthread.php?t=8577

      Comment


      • Nguyên văn bởi jindo Xem bài viết
        cam on anh zemen nhieu anh kho hieu la phai boi vi em moi chi biet ngat ve ly thuyet con thuc te la em chua lam bai nao ve ngat ca nen cung ko biet no hoat dong ra sao nua,neu cac anh co bai ngat nao don gian de hieu viet ve C thi Post len cho em tham khao DZoi .Cam on cac anh,mong dc huong dan nhieu hon
        bạn nên sử dụng proteus để mô phỏng xem mạch của mình chạy có bị treo không, như vậy thì dễ hơn nhiều.
        trước mình cũng làm như bạn nhiều khi gắn ic vô mạch không thấy nó chạy cứ tưởng nó die. sau này xài proteus đỡ mất thời gian hơn nhiều.

        Comment


        • Bác nào biết cách reset bằng phần mềm ko? thay cho việc ấn nút reset
          Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

          Comment


          • chào các bác có bác nào mix giữa C va ASM trong keil C chua chi giúp với
            tui dùng
            #pragma asm
            ;code here
            #pragma endasm
            dịch không báo lỗi nhưng chạy không được
            please help me
            thanks very much

            Comment


            • cho em xin cái mạch đèn zao thông ngã tư đi, nhưng ko phải là mạch của mấy tiến sĩ viết nha, mấy chú i' viet cao wa' xa'

              Comment


              • các anh ơi em là newbie em đang học lập trình nhúng C cho vi điều khiển 8051.
                Em đang chạy keil C bản mới nhất nhưng khi viết chương trình và biên dịch thì bị báo lỗi như sau:

                FATAL ERROR L210: I/O ERROR ON INPUT FILE.
                EXCEPTION: 0021H PATH OR FILE NOT FOUND.
                FILE: myfirst.obj
                target not created.

                còn đây là source code:

                // first embeded file.
                #include <reg52.h>

                // LED is to be connected to this pin.
                sbit LED_pin = P1^5;

                //Stores the LED state.
                bit LED_state_G;

                // function prototype.
                void LED_FLASH_Init(void);
                void LED_FLASH_Change_State(void);
                void DELAY_LOOP_Wait(const unsigned int);

                // ham chinh.
                void main(void)
                {
                LED_FLASH_Init();

                while(1)
                {
                //change the LED state (OFF to ON, or vice versa)
                LED_FLASH_Change_State();
                DELAY_LOOP_Wait(1000);
                }
                }

                // ham LED_FLASH_Init();
                void LED_FLASH_Init(void)
                {
                LED_state_G = 0;
                }

                // ham LED_FLASH_Change_State().
                void LED_FLASH_Change_State(void)
                {
                if(LED_state_G == 1)
                {
                LED_state_G = 0;
                LED_pin = 0;
                }
                else{
                LED_state_G = 1;
                LED_pin = 1;
                }
                }

                // ham delay_loop_wait(constant unsigned int)
                void DELAY_LOOP_Wait(const unsigned int DELAY)
                {
                unsigned int x,y;
                for(x=0; x <= DELAY; x++)
                {
                for(y = 0; y <= 120; y++);
                }
                }

                em cấu hình cpu là generic 8052(all variants).
                anh nào có thể giúp em với được ko????

                Comment


                • toi moi doc bai của cac ban thay hay qua. nhơ các bạn chỉ giúp :1 bye là 8 bit, thanh ghi A, B , R1-R7 ( trong rom), dia chi 0001, mã máy 7D25 với câu lệnh : mov R5,#25H; thêm giá trị 25h vào R5, có dung lượng 1bye, vậy Rom có dung lượng 4k bye thì ghi dược bao nhieu câu lệnh dung lượng 1 bye và có bao nhieu hex và hex là gì có dung lượng là bao nhiêu?

                  Comment


                  • Nguyên văn bởi dovancuongbl Xem bài viết
                    toi moi doc bai của cac ban thay hay qua. nhơ các bạn chỉ giúp :1 bye là 8 bit, thanh ghi A, B , R1-R7 ( trong rom), dia chi 0001, mã máy 7D25 với câu lệnh : mov R5,#25H; thêm giá trị 25h vào R5, có dung lượng 1bye, vậy Rom có dung lượng 4k bye thì ghi dược bao nhieu câu lệnh dung lượng 1 bye và có bao nhieu hex và hex là gì có dung lượng là bao nhiêu?
                    Thứ nhất các thanh ghi A,B,R1-R7 đặt trong RAM chứ không phải ROM như bạn nghĩ.

                    Thứ hai: Câu lệnh 7D25 có dung lượng 2 byte chứ ko phải 1 byte

                    Thứ ba: Hex là chỉ hệ cơ số 16. Một số Hex được chứa trong 4 bit => 2 số hex tương ứng với 1 byte. Vậy 4Kbyte tương ứng chứa 8196 (8K) số hex.
                    AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                    Xem thêm tại Online Store ---> Click here
                    Mob: 0982.083.106

                    Comment


                    • xin chi giao

                      mình mới học keil C vài hôm và đang làm một bài như sau: gán một mảng arr bằng mảng b: nhưng kết quả arr=!b ?? mình nghĩ cái này liên quan đến tham biến tham trị gì đó. mong các bác chỉ giáo


                      Code:
                      #include <reg52.h>
                      #include <absacc.h>
                      unsigned char arr[];
                      unsigned char size;
                      
                      //
                      void delay(unsigned char time)
                      {
                      	int e,f;
                      	for(e=0;e<time;e++)
                      	for(f=0;f<30000;f++)   ;
                      
                      }
                      //
                      void outPort(unsigned char port)
                      {
                      		XBYTE[0x8000]=port;
                      }
                      //
                      void fontData(char key)	 
                      {
                        	unsigned char i;
                      	unsigned char a[]={0,4,42,42,42,62,30,0};
                      	unsigned char b[]={0,254,18,18,18,12,0};
                          unsigned char c[]={0,28,34,34,34,0};
                         	switch (key)
                         	{
                         	  case 'a': 
                      	 			size=8;		
                      	        
                      	  break;
                      	  case 'b':
                      				size=7;	
                      				for(i=0;i<size;i++)
                      				arr[i]=b[i];
                      	  break;
                      	  case 'c': 
                      				size=6;
                      	   		  	
                      	  break;
                         	}
                      
                      }
                      //
                      void main()
                      {
                         	XBYTE[0x8003]=128;
                      	size=0;
                      	arr[0]=254;
                      	arr[1]=10;
                        	fontData('b');
                         	XBYTE[0x8000]=arr[0];
                      	XBYTE[0x8001]=arr[1];
                      	
                      }


                      Lần sau bạn nên viết chương trình trong tag code
                      Last edited by VNarmy; 13-11-2007, 18:15.

                      Comment


                      • Nguyên văn bởi alasca Xem bài viết
                        các bạn hãy vào đây mà download xuống nhé.Trong này có một số tài liệu về 8051 có bài tập và ví dụ với từng chương LCD, ADC,DAC, keyboad....rất cụ thể bằng ASM và C do mình sưu tầm được.


                        mail: nguyendungvidieukhien@gmail.com

                        user: nguyendungvidieukhien
                        pass: vidieukhien


                        Vào mục thư nháp mà download xuống nhé 100% nguyên chất. Mong anh em giữ gìn cho mọi người
                        dùng chung. Ai có gì hay Xin góp phần nữa chứ heeeeee
                        sao cho mọi người pass mà lại ko vào dc la sao hả ban

                        Comment


                        • cam on ban VNamry, may sẽ doc tu dia chi 0000 đến địa chỉ ffffh, mỗi địa chỉ 2 bye, mỗi cau lệnh 2 bye ( hex) 1 bye (nhị phân), vậy nếu rom của IC có dung lượng 4kbye thì ta có 1.000 câu lệnh ( hex) và nhieu hơn thế nữa nếu có câu lệnh bye nhị phân; vi tôi thấy tài nguyên rom là rất nhỏ, chúng ta viết thừa máy không chạy, viết thiêu thi càng khó hơn.
                          cho minh hoc them chút nua nhé : Ic nhỏ hơn, rẻ hơn, ít chân hơn ( <20 chân) có bán tren thị trường không.
                          mình kết nối cổng côm, USB trực tiếp với máy tính máy tính có nhận ra không, cần phải làm gì ( phần cứng, phần mền)

                          Comment


                          • xin chỉ giáo

                            mình mới lập trình keil C và chưa biết cách nào để gán hai mảng cho nhau:
                            Code:
                            int a[5]  //bien toan cuc
                            
                            void gan()
                            {
                            int i;
                            int b[5]={1,2,3,4,5};
                            for(i=0;i<5;i++)
                            a[i]=b[i];
                            
                            }
                            //
                            void main()
                            {
                            gan();
                            
                            }
                            Mục đích của chương trình là gán mảng a bằng mảng b. xong kết quả lại ra đâu đâu. Mong các cao nhân giúp đỡ càng nhanh càng tốt
                            Last edited by VNarmy; 14-11-2007, 13:26.

                            Comment


                            • ban KEIK C full

                              Chào anh em .Mình đang làm đồ án .Khi dịch ra file Hex không được vì mình dùng bản giới hạn limti giới hạn 2k nên không dịch được .Nếuai có chia sẻ cho anh em với mình cảm ơn nhiều .

                              Comment


                              • Nguyên văn bởi genju Xem bài viết
                                mình mới lập trình keil C và chưa biết cách nào để gán hai mảng cho nhau:
                                Code:
                                int a[5]  //bien toan cuc
                                
                                void gan()
                                {
                                int i;
                                int b[5]={1,2,3,4,5};
                                for(i=0;i<5;i++)
                                a[i]=b[i];
                                
                                }
                                //
                                void main()
                                {
                                gan();
                                
                                }
                                Mục đích của chương trình là gán mảng a bằng mảng b. xong kết quả lại ra đâu đâu. Mong các cao nhân giúp đỡ càng nhanh càng tốt
                                Chương trình bạn viết đúng rồi. Bạn có thể debug trong Keil để thử.
                                Nếu không được bạn đổi lại chương trình main như sau:

                                Code:
                                void main()
                                {
                                while(1){gan();}
                                
                                }
                                AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                                Xem thêm tại Online Store ---> Click here
                                Mob: 0982.083.106

                                Comment

                                Về tác giả

                                Collapse

                                kien_tran Tìm hiểu thêm về kien_tran

                                Bài viết mới nhất

                                Collapse

                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                  Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                  hôm nay, 14:51
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                  Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                  hôm nay, 14:39
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                  Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                  hôm nay, 14:28
                                • bqviet
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi bqviet
                                  Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                  Hôm qua, 20:26
                                • mèomướp
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi mèomướp
                                  Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                  Hôm qua, 12:32
                                • vi van pham
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi vi van pham
                                  Nhữ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ó...
                                  20-02-2025, 21:31
                                • bqviet
                                  Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                  bởi bqviet
                                  Thiế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 đó.
                                  20-02-2025, 17:22
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Tiế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,...
                                  20-02-2025, 11:52
                                • vi van pham
                                  Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                  bởi vi van pham
                                  Uố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
                                • nhathung1101
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi nhathung1101
                                  Nế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???...
                                  19-02-2025, 21:27
                                Đang tải...
                                X