Thông báo

Collapse
No announcement yet.

giúp tớ về lệnh trong C cho VDK

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp tớ về lệnh trong C cho VDK

    tớ có học C trên lớp cơ bản thì oke.
    giờ viết cho vdk có 1 số cái mới
    tớ đã biết lệnh sau
    m=0x01 tức 0000 0001
    m<<=1;
    thì dịch 1 bít thành
    m=0x03 tức 0000 0010
    dịch tiếp thì 0000 0100
    vậy tớ hỏi
    +có lệnh nào mà khi m=1111 1110 khi dịch thì thành 1111 1101
    tiếp thì 1111 1011
    +khi m=0000 0001
    dịch thì dc 0000 0011
    tiếp thì 0000 0111
    thanks bro nha

  • #2
    mình nhớ ko nhầm thì trong thư viện intrins.h có lệnh _crol_ làm nhiệm vụ quay bit thành vòng, tức là các bít dịch trái 1 bit và bít đầu thành bít cuối, còn nếu mà chỉ dùng << or >> thì các vị trí khuyết sẽ bị chèn 0
    Website chính thức đổi địa chỉ website thành
    Mời các bạn ghé thăm !!!

    Comment


    • #3
      bạn thử làm thế này được không :
      Đảo bit------>dịch bit------------>đảo bit lại

      Comment


      • #4
        #ifndef __INTRINS_H__
        #define __INTRINS_H__

        extern void _nop_ (void); // tao tre 1 chu ky may
        extern bit _testbit_ (bit);
        extern unsigned char _cror_ (unsigned char, unsigned char); // xoay tron du lieu (char rotate right)
        extern unsigned int _iror_ (unsigned int, unsigned char); // integer rotate right
        extern unsigned long _lror_ (unsigned long, unsigned char); // long
        extern unsigned char _crol_ (unsigned char, unsigned char); // xoay trai du lieu (char rotate left)
        extern unsigned int _irol_ (unsigned int, unsigned char); // int
        extern unsigned long _lrol_ (unsigned long, unsigned char); // long
        extern unsigned char _chkfloat_(float);
        extern void _push_ (unsigned char _sfr); // nhap du lieu stack
        extern void _pop_ (unsigned char _sfr); // xuat du lieu stack

        #endif
        ////////////////////////////////////////////////
        Bạn add thư viện này vào sử dụng. Trong đó lệnh _cror_ là xoay phải còn _crol_ là xoay trái cho kiểu unsigned char mà bạn đang tìm. Mình copy cái đoạn code đó trong file intrins.c của keilc. Chúc vui!

        Comment


        • #5
          mình cũng học điện tử nhưng mà ko biết ngôn ngữ C chỉ biết asm thui, mình cũng muốn viết C lắm vì hầu như mọi người viết C rất nhiều có lẽ nó dễ nhưng khó học quá, bạn nào có tài liệu hay cách viết căn bản cho mình với!cảm ơn rất nhiều

          Comment


          • #6
            Đây tớ có chút tài liệu sưu tầm trên diễn đàn mình thôi , bạn đọc nhé :
            http://www.mediafire.com/file/i5g5rb...ap_trinh_c.rar

            Comment


            • #7
              #include<at89x51.h>
              #include<intrins.h>
              unsigned char a,b,j;
              void delay(int t){
              unsigned int i;
              for(i=0;i<t;i++);
              }
              void main(){
              a=0x7f;
              for(j=0;j<8;j++){
              b=_cror_(a,j);
              P2=b;
              delay(33000);
              }

              }
              yahoo: boulevard.electronic
              Học tập & nghiên cứu

              phần mềm mình upload lên để chia sẻ:

              Comment


              • #8
                Code:
                unsigned char a=0x7f;
                void main(void)
                {
                	while (1)
                	{			
                		        P0=a;
                			a=_cror_(a,1);			
                			delay(25000);			
                		
                	}
                }
                Dùng 1 biến char a;
                và tự quay vòng 1 bit là đc

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X