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ác bác cho em hỏi lệnh so sánh trong keli c mất bao nhiêu chu kỳ máy, nó khác trong hợp ngữ a?

    Comment


    • Các bác cho em hỏi chút. Em mới học về VDK nên mới chỉ biết sơ qua. Em làm một mạch điều khiển LED 32 đường. 16 đường từ P0_0 đến P1_7 thì em điều khiển 16 chữ cái . Các hiệu ứng chạy, dồn tắt, sáng.... cho nó em đã làm Ok rồi nhưng em muốn hỏi là em dùng P3_7 và P3_6 làm 1 việc khác, P3_4,P3_5 làm một việc khác. còn P2_0 .....P2_7, P3_0..P3_3 em muốn dùng vào một hiệu úng khác với tốc độ khác. các bác cho em hỏi em muốn viết chương trình để mấy cái hiệu ứng đó chạy đồng thời với tốc độ khác nhau thì em phải làm thế nào ạ.Em rất gà nên các bác thông cảm.Em định viết chương trình mà trong hiệu ứng này sẽ cài để chạy các hiệu ứng khác nhưng như thế thì phức tạp và chương trình dài quá. Em ko biết dùng ngắt nên ko biết dùng ngắt có được ko. các bác giúp em cái. bác nào có chương trình nào VD về vấn đề này post lên hộ em cái.
      Em xin chân thành cảm ơn

      Comment


      • Hic hic. Ko co ai giúp em à. Hay là phải dùng phương pháp quét LED. Hic hic

        Comment


        • Anh oi, anh co cach nao de dieu khien cua tu dong bang cap led phat va thu roi dua tin hieu vao 8051 ko anh?
          Thanhks

          Comment


          • Trong keilc tôi dùng khai báo như thế này:
            unsigned char xdata *j;
            j=0xc001;
            *j=0x7f;;

            khai báo trên có tương đương với assembler sau không?:
            mov dptr,#0c001h
            mov a,#07fh
            movx @dptr,a

            Tôi đã thử viết trên keilc nhưng khi mô phỏng nó lúc giống lúc không tôi không hiểu sao ?
            các khai báo unsigned char xdata *j và unsigned char* xdata j ;unsigned int *j và unsigned char *j có gì khác nhau
            mong các anh chị giải thích giúp xin cám ơn.

            Comment


            • e muốn chạy chứ trên lcd nhưng chưa hiểu lắm về lâp trình c cho 8051 các bác co tài liệu hoặc chỉ dẫn giúp em với

              Comment


              • Hiện tại bọn mình đang làm đồ án môn. Nhóm mình nhận ngay đề tài Ngôi nhà thông minh này vì thấy nó rất hay. Nhưng khi mình lên mạng tìm tài liệu thì thấy có ít tài liệu. Ai có tài liệu nào thì cho mình xin được không. Cảm ơn trước nha.

                Có ai có ý kiến thì gợi ý gì hoặc có góp ý gì thì chỉ cho tớ với nhé.Thanks

                Comment


                • co pac na`o bjt ve` mang na`y ko giup em voi.........?
                  đóng mờ cửa tự động bằng khóa số , xuất trang thái ra LCD , và chuông báo nếu nhập mã số sai 3 lần...?
                  mang na`y kho wa'

                  Comment


                  • Trong keilc tôi dùng khai báo như thế này:

                    co pac na`o co keilc co the gui cho em mot ban dc ko,.?
                    gui cho em vao` mail tinhtrongbientinh_fx@yahoo.com
                    thảk cac pac nhiu`

                    Comment


                    • lap trinh cho led

                      co anh nao biet gi ve lap trinh de dieu khien cho led hoat dong ko a.giup em voi em moi vao nganh ma chang biet gi ca .mong cac anh giup do em nhiu





                      Comment


                      • Nguyên văn bởi ngohaibac Xem bài viết


















                        nhung to muon lap trinh bang hop ngu thi thu the nao vay ban?giup to cai

                        Comment


                        • Em viết 1 chương trình nhỏ làm sáng lần lượt 8 led, chạy debug bình thường nhưng khi nạp vào vi diều khiển lại không hoạt dộng. Em nhờ 1 anh test hộ thì anh ấy bảo code lỗi không chạy dược nhưng cũng không biết lỗi ở dâu. Các tiền bối chỉ giúp em với. Em cám ơn trước.
                          Chương trình em viết bằng keil C cho con AT89C51.

                          /*================================================= ==
                          Chuong trinh hien thi 8 led dung timer0
                          ================================================== =*/

                          /******************bo tien xu ly**************************/
                          #include<REGX51.h>
                          /************************************************** *******/

                          /******************khai bao bien toan cuc*****************/
                          long dem=0;
                          unsigned char n=0;
                          /************************************************** *******/

                          /******************khai bao ham***************************/
                          //khoi tao timer0
                          void khoitaotimer0(void)
                          { EA=0;
                          TMOD=0x02;
                          TH0=0x37;// gia tri 55 doi ra hex, cu sau 200 micro giay ngat 1 lan
                          TL0=0x37;
                          ET0=1;
                          EA=1;
                          TR0=1;
                          }
                          //Ham ngat su dung timer0
                          void timer0(void) interrupt 1
                          { TR0=0;
                          TF0=0;
                          dem++;
                          if(dem==5000) // Cu sau 5000 lan ngat thi dich bit
                          { P2=P2<<1;
                          n++;
                          dem=0;
                          }
                          if(n==8) // Dich bit 7 lan het 1 chu ky quay lai tu dau
                          { P2=0x01;
                          n=0;
                          }
                          TR0=1;
                          }
                          /************************************************** *******/

                          /******************ham chinh******************************/
                          void main(void)
                          { khoitaotimer0();
                          P2=0x01;
                          while(1)
                          { ;
                          }
                          }
                          /************************************************** *******/
                          Last edited by hunterX; 25-03-2010, 19:09.

                          Comment


                          • moi nguoi giup minh nha minh da thuc trang dem hon tung nay roi do

                            moi nguoi oi hay giup minh voi !minh dang lam do an mon hoc 1 mach dem san pham,khi dem duoc den 20 thi quay lai.khi do so thung duoc nang len 1.minh khong che no khong dc so thung.giup minh voi moi nguoi oi!: sau day la doan code :
                            org 00h
                            sjmp main
                            org 0030h
                            main:
                            mov dptr,#led7seg
                            mov tmod,#06h
                            mov tl0,#-20
                            mov th0,#-20
                            setb p1.0
                            setb p1.1
                            setb p1.2
                            setb p1.3
                            mov r3,#1
                            mov r4,#00
                            // mov r5,#00
                            setb tr0
                            begin:
                            mov a,tl0
                            subb a,#-21
                            lcall bin2bcd
                            mov a,30h
                            cjne a,10,thoat1
                            mov a,#00h
                            thoat1:
                            movc a,@a+dptr
                            mov 30h,a
                            mov a,31h
                            cjne a,#3,thoat2
                            mov a,#00
                            thoat2:
                            movc a,@a+dptr
                            mov 31h,a

                            ket_thuc:

                            lcall display

                            // mov a,tl0
                            //subb a,#-21
                            mov a,31h
                            cjne a,#0a4h,begin
                            mov a,r3
                            inc r3
                            lcall bin2bcd2
                            mov a,32h
                            cjne a,10,thoat11
                            mov a,#00h
                            thoat11:
                            movc a,@a+dptr
                            mov 32h,a
                            mov a,33h
                            cjne a,#2,thoat22
                            mov a,#00
                            thoat22:
                            movc a,@a+dptr
                            mov 33h,a
                            lcall display
                            //inc r3
                            sjmp begin

                            display:
                            mov p0,30h ; led1
                            clr p1.0 ; ba^.t led1 sa'ng
                            acall delay ; delay
                            setb p1.0 ; tat led1

                            mov p0,31h ; led2
                            clr p1.1 ; ba^t led2 sa'ng
                            acall delay ; delay
                            setb p1.1

                            mov p0,32h ; led1
                            clr p1.2 ; ba^.t led1 sa'ng
                            acall delay ; delay
                            setb p1.2 ; tat led1

                            mov p0,33h ; led2
                            clr p1.3 ; ba^t led2 sa'ng
                            acall delay ; delay
                            setb p1.3
                            ret

                            bin2bcd:
                            mov b,#10 ; b=10
                            div ab ; chia cho 10
                            mov 30h,b ; luu so thap vao 30h
                            mov 31h,a
                            ret
                            bin2bcd2:
                            mov b,#10 ; b=10
                            div ab ; chia cho 10
                            mov 32h,b ; luu so thap vao 30h
                            mov 33h,a
                            delay:
                            mov r1,#10
                            mov r0,#10h
                            loop: djnz r0,loop
                            djnz r1,loop
                            ret
                            led7seg:
                            db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
                            end

                            Comment


                            • Nguyên văn bởi hunterX Xem bài viết
                              Em viết 1 chương trình nhỏ làm sáng lần lượt 8 led, chạy debug bình thường nhưng khi nạp vào vi diều khiển lại không hoạt dộng. Em nhờ 1 anh test hộ thì anh ấy bảo code lỗi không chạy dược nhưng cũng không biết lỗi ở dâu. Các tiền bối chỉ giúp em với. Em cám ơn trước.
                              Chương trình em viết bằng keil C cho con AT89C51.

                              /*================================================= ==
                              Chuong trinh hien thi 8 led dung timer0
                              ================================================== =*/

                              /******************bo tien xu ly**************************/
                              #include<REGX51.h>
                              /************************************************** *******/

                              /******************khai bao bien toan cuc*****************/
                              long dem=0;
                              unsigned char n=0;
                              /************************************************** *******/

                              /******************khai bao ham***************************/
                              //khoi tao timer0
                              void khoitaotimer0(void)
                              { EA=0;
                              TMOD=0x02;
                              TH0=0x37;// gia tri 55 doi ra hex, cu sau 200 micro giay ngat 1 lan
                              TL0=0x37;
                              ET0=1;
                              EA=1;
                              TR0=1;
                              }
                              //Ham ngat su dung timer0
                              void timer0(void) interrupt 1
                              { TR0=0;
                              TF0=0;
                              dem++;
                              if(dem==5000) // Cu sau 5000 lan ngat thi dich bit
                              { P2=P2<<1;
                              n++;
                              dem=0;
                              }
                              if(n==8) // Dich bit 7 lan het 1 chu ky quay lai tu dau
                              { P2=0x01;
                              n=0;
                              }
                              TR0=1;
                              }
                              /************************************************** *******/

                              /******************ham chinh******************************/
                              void main(void)
                              { khoitaotimer0();
                              P2=0x01;
                              while(1)
                              { ;
                              }
                              }
                              /************************************************** *******/
                              tôi cũng học qua VDK .nhưng tôi thấy bài này của c hình như nhiều chỗ không hợp lý lắm
                              sai nhiều
                              đây là bài tôi đã sửa bạn down về tham khảo thử xem chạy đúng yêu cầu của bạn không


                              /*================================================= ==
                              Chuong trinh hien thi 8 led dung timer0
                              ================================================== =*/
                              /* ho ten : nguyen van hai
                              DHCN ha noi-- khoa dien */
                              /******************bo tien xu ly**************************/
                              #include<REGX51.h>
                              /************************************************** *******/

                              /******************khai bao bien toan cuc*****************/
                              long dem=0;
                              unsigned char n=0;
                              /************************************************** *******/

                              /******************khai bao ham***************************/
                              //khoi tao timer0
                              void khoitaotimer0(void)
                              {
                              TMOD=0x01;
                              TH0=-10000/256;// cu sau 2000 micro giay ngat 1 lan
                              TL0=-10000%256;
                              TR0=1;
                              while(!TF0)
                              {TF0=0;
                              TR0=0;
                              ++dem;
                              if(dem==5000) // Cu sau 5000 lan ngat thi dich bit
                              { P2=P2<<1;
                              ++n;
                              dem=0;
                              }
                              if(n==8) // Dich bit 7 lan het 1 chu ky quay lai tu dau
                              { P2=0x01;
                              n=0;
                              }

                              } }
                              //Ham ngat su dung timer

                              /************************************************** *******/

                              /******************ham chinh******************************/
                              void main(void)
                              { TMOD=0x01;
                              P2=0x01;
                              while(1)
                              { khoitaotimer0();
                              }
                              }

                              Comment


                              • Mình cần sách hoặc tài liệu để viết thuật toán led, Quý vị nào biết chỉ giúp với, mình mới tập tành bước vô nên ko biết. Xin cam ơn

                                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

                                Đang tải...
                                X