亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

unsigned

整型的每一種都分為:無符號(unsigned)和有符號(signed)兩種類型(float和double總是帶符號的),在除char以外的數據類型中,默認情況下聲明的整型變量都是有符號的類型;char在默認情況下總是無符號的。在除char以外的數據類型中,如果需聲明無符號類型的話就需要在類型前加上unsigned。無符號版本和有符號版本的區別就是無符號類型能保存2倍于有符號類型的正整數數據,比如16位系統中一個short能存儲的數據的范圍為-32768~32767,而unsigned能存儲的數據范圍則是0~65535。由于在計算機中,整數是以補碼形式存放的。根據最高位的不同,如果是1,有符號數的話就是負數;如果是無符號數,則都解釋為正數。另外,unsigned若省略后一個關鍵字,大多數編譯器都會認為是unsignedint。
  • 一個按鍵控制的 10 級變速跑馬燈試驗

    在本課中,我們要用一個按鍵來實現跑馬燈的 10 級調速。這又會涉及到鍵的去抖的問 題。  本課的試驗結果是,每按一次按鍵,跑馬速度就降低一級,共 10 級。  這里我們又增加了一個變量 speedlever,來保存當前的速度檔次。  在按鍵里的處理中,多了當前檔次的延時值的設置。  請看程序:  ――――――――――――――――  #define uchar unsigned char //定義一下方便使用  #define uint unsigned int  #define ulong unsigned long  #include <reg52.h> //包括一個 52 標準內核的頭文件    sbit P10 = P1^0; //頭文件中沒有定義的 IO 就要自己來定義了  sbit P11 = P1^1;  sbit P12 = P1^2;  sbit P13 = P1^3;  sbit K1= P3^2;    bit ldelay=0; //長定時溢出標記,預置是 0  uchar speed=10; //設置一個變量保存默認的跑馬燈的移動速度  uchar speedlever=0; //保存當前的速度檔次    char code dx516[3] _at_ 0x003b;//這是為了仿真設置的  //一個按鍵控制的 10 級變速跑馬燈試驗  void main(void) // 主程序  {   uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//預定的寫入 P1 的值   uchar ledi; //用來指示顯示順序   uint n;     RCAP2H =0x10; //賦 T2 的預置值 0x1000,溢出 30 次就是 1 秒鐘   RCAP2L =0x00;   TR2=1; //啟動定時器   ET2=1; //打開定時器 2 中斷   EA=1; //打開總中斷     while(1) //主程序循環   {   if(ldelay) //發現有時間溢出標記,進入處理   {   ldelay=0; //清除標記   P1=ledp[ledi]; //讀出一個值送到 P1 口   ledi++; //指向下一個   if(ledi==4)   {   ledi=0; //到了最后一個燈就換到第一個   }   }   if(!K1) //如果讀到 K1 為 0   {   for(n=0;n<1000;n++); //等待按鍵穩定   while(!K1); //等待按鍵松開   for(n=0;n<1000;n++); //等待按鍵穩定松開     speedlever++;   if(speedlever==10)speedlever=0;   speed=speedlever*3; //檔次和延時之間的預算法則,也可以用查表方法,做出 不規則的法則   }   }  }  //定時器 2 中斷  timer2() interrupt 5  {   static uchar t;   TF2=0;   t++;     if((t==speed)||(t>30)) //比較一個變化的數值,以實現變化的時間溢出,同時限制了最慢速 度為 1 秒   {   t=0;   ldelay=1;//每次長時間的溢出,就置一個標記,以便主程序處理   }  }  ――――――――――――――――――――――   請打開 lesson11 目錄的工程,編譯,運行,看結果:  按 K1,速度則降低一次,總共 10 個檔次。 

    標簽: 10 按鍵控制 變速 跑馬燈

    上傳時間: 2017-11-06

    上傳用戶:szcyclone

  • 模擬 PWM 輸出控制燈的 10 個亮度級別

    LED 一般是恒流操作的,如何改變 LED 的亮度呢?答案就是 PWM 控制。在一定的 頻率的方波中,調整高電平和低電平的占空比,即可實現。比如我們用低電平點亮一個 LED 燈,我們假設把一個頻率周期分為 10 個時間等份,如果方波中的高低電平占空比是 9:1, 這是就是一個比較暗的亮度,如果方波中高低電平占空比是 10:0,這時,全部是高電平, 燈是滅的。如果占空比是 5:5,就是一個中間亮度,如果高低比是 1:9,是一個比較亮的 亮度,如果高低是 0:10,這時全部是低電平,就是最亮的。  實際上應用中,電視屏幕墻中的幾十百萬 LED 象素都是這樣控制的,而且每一個象素 都有紅綠藍 3 個 LED,每個 LED 可以變化的亮度是幾百到幾萬或者更多的級別,以實現真 彩色的顯示。還有在您的手機中,背光燈的亮度如果是可以變化的,也應該是這種工作方式。 目前的城市彩燈也有很多都使用了 LED,需要控制亮度是也是 PWM 控制。  下面來分析我們的例程,在這個例程中,我們將定時器 2 溢出定為 1/1200 秒。每 10 次脈沖輸出一個 120HZ 頻率。這每 10 次脈沖再用來控制高低電平的 10 個比值。這樣,在 每個 1/120 秒的方波周期中,我們都可以改變方波的輸出占空比,從而控制 LED 燈的 10 個 級別的亮度。  為什么輸出方波的頻率要 120HZ 這么高?因為如果頻率太低,人眼就會看到閃爍感 覺。一般起碼要在 60HZ 以上才感覺好點,120HZ 就基本上看不到閃爍,只能看到亮度的變 化了。  下面請看程序,程序中有比較多的注釋:  ―――――――――――――――――――――――  #define uchar unsigned char //定義一下方便使用  #define uint unsigned int  #define ulong unsigned long  #include <reg52.h> //包括一個 52 標準內核的頭文件    sbit P10 = P1^0; //要控制的 LED 燈  sbit K1= P3^2; //按鍵 K1    uchar scale;//用于保存占空比的輸出 0 的時間份額,總共 10 份    char code dx516[3] _at_ 0x003b;//這是為了仿真設置的  //模擬 PWM 輸出控制燈的 10 個亮度級別  void main(void) // 主程序  {   uint n;     RCAP2H =0xF3; //賦 T2 的預置值,溢出 1 次是 1/1200 秒鐘   RCAP2L =0x98;   TR2=1; //啟動定時器   ET2=1; //打開定時器 2 中斷   EA=1; //打開總中斷   while(1) //程序循環   { ;//主程序在這里就不斷自循環,實際應用中,這里是做主要工作   for(n=0;n<50000;n++); //每過一會兒就自動加一個檔次的亮度   scale++;   if(scale==10)scale=0;   }  }  //1/1200 秒定時器 2 中斷  timer2() interrupt 5  {   static uchar tt; //tt 用來保存當前時間在一秒中的比例位置   TF2=0;     tt++;   if(tt==10) //每 1/120 秒整開始輸出低電平   {   tt=0;     if(scale!=0) //這里加這一句是為了消除滅燈狀態產生的鬼影   P10=0;   }     if(scale==tt) //按照當前占空比切換輸出高電平   P10=1;    }  ――――――――――――――――――  在主程序中,每延時一段時間,就自動換一個占空比,以使亮度自動變化,方便觀察。  編譯,運行,看結果。  可以看到,LED 的亮度以每種亮度 1 秒左右不斷變化,共有 10 個級別。

    標簽: PWM 10 模擬 控制燈 亮度 輸出

    上傳時間: 2017-11-06

    上傳用戶:szcyclone

  • 單片機用精度除法函數

    精度除法函數。 調用函數,并輸入被除數、除數和精確到小數點后多少位。即可得到商的整數部分和小數部分。 /*************************精度除法函數********************************/ //======================================================================== // 函數: Void chufa(unsigned long beichushu,unsigned long chushu, unsigned char wei) // 描述: 精度除法 // 參數: unsigned long beichushu,  被除數 // unsigned long chushu,   除數 // unsigned char wei   精確到小數點后多少位 // 返回: 無. // 版本: V1.0, 2017-8-3 //========================================================================

    標簽: 單片機 函數 精度 除法

    上傳時間: 2018-04-16

    上傳用戶:qibao9891

  • pid教程

    pid控制 #ifndef _PID_H #ifndef _PID_H #ifdef _PID_C     #define PID_EXT #else     #define PID_EXT extern #endif typedef struct PID {     int SetPoint;          unsigned char BitMove;          float Proportion;     float Integral;     float Derivative;          int iError;     int iIncpid;          int LastError;     int PrevError;          int Uk; }PID,*pPID; PID_EXT PID sPID; PID_EXT pPID sptr; void IncPIDInit(void); int IncPIDCalc(int NextPoint); #endif

    標簽: pid 教程

    上傳時間: 2019-08-02

    上傳用戶:stcwzy

  • 矩陣式鍵盤

    include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; }

    標簽: 矩陣式鍵盤

    上傳時間: 2021-12-18

    上傳用戶:2590813506

  • RFID讀卡模塊RC522串口讀寫器13.56mhz ic卡設計射頻模塊串口文檔資料+Rc522Ma

    RFID讀卡模塊RC522串口讀寫器13.56mhz ic卡設計射頻模塊串口文檔資料+Rc522Manager上位機API工具軟件1).MF RC522 是應用于 13.56MHz 非接觸式通信中高集成度讀寫卡系列芯 片中的一員。是 NXP 公司針對“三表”應用推出的一款低 電壓、低成本、 體積小的非接觸式讀寫卡芯片,是智能儀表和便攜 式手持設備研發的較好 選擇。 2).MF RC522 利用了先進的調制和解調概念,完全集成了在 13.56MHz 下 所有類型的被動非接觸式通信方式和協議。支持 ISO14443A 的多層應用。 其內部發送器部分可驅動讀寫器天線與ISO 14443A/MIFARE卡和應答機的通 信,無需其它的電路。接收器部分提供一個堅固而有效的解調和解碼電路, 用于處理 ISO14443A 兼容的應答器信號。數字部分處理 ISO14443A 幀和錯 PcdAnticoll(unsigned char *pSnr) //防沖撞 0101:PcdSelect(unsigned char *pSnr) //卡片選擇 0110:PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr) //驗證卡片密碼 0111:PcdRead(unsigned char addr,unsigned 

    標簽: rfid rc522 串口

    上傳時間: 2021-12-22

    上傳用戶:

  • 電子書- 十天學會單片機實例100.pdf

    電子書-十天學會單片機實例100.pdf//實例 4:用單片機控制一個燈閃爍:認識單片機的工作頻率 #include<reg51.h> //包含單片機寄存器的頭文件 /**************************************** 函數功能:延時一段時間 *****************************************/ void delay(void) //兩個 void 意思分別為無需返回值,沒有參數傳遞 { unsigned int i; //定義無符號整數,最大取值范圍 65535 for(i=0;i<20000;i++) //做 20000 次空循環 ; //什么也不做,等待一個機器周期 } /******************************************************* 函數功能:主函數 (C 語言規定必須有也只能有 1 個主函數) ********************************************************/ void main(void) { while(1) //無限循環 { P1=0xfe; //P1=1111 1110B, P1.0 輸出低電平 delay(); //延時一段時間 P1=0xff; //P1=1111 1111B, P1.0 輸出高電平 www.91

    標簽: 單片機

    上傳時間: 2022-03-19

    上傳用戶:kingwide

  • 宏晶 STC15F2K60S2開發板配套軟件源碼 基礎例程30例

    宏晶 STC15F2K60S2開發板配套軟件源碼 基礎例程30例/**********************基于STC15F2K60S2系列單片機C語言編程實現使用如下頭文件,不用另外再包含"REG51.H"#include <STC15F2K60S2.h>***********************/#include "STC15F2K60S2.H"//#include "REG51.H" //sfr P4   = 0xC0;#define  uint unsigned int  #define  uchar unsigned char  /**********************引腳別名定義***********************/sbit SEL=P4^3; // LED和數碼管選擇引腳 高:LED有效 低:數碼管有效 // SEL連接的單片機引腳必須為帶有上拉電阻的引腳 或將其直接連接VCC#define data P2 // 數據輸入定義  /**********************函數名稱:Delay_1ms功能描述:延時入口參數:unsigned int t 表示要延時t個1ms 出口參數:無備注:通過參數t,控制延時的時間長短***********************/void Delay_1ms(uint t){ uchar j;   for(;t>0;t--)       for(j=110;j>0;j--)     ;}/**********************函數名稱:Led_test功能描述:對8個二極管進行測試,依次輪流點亮8個二極管入口參數:無出口參數:無備注:  ***********************/void Led_test(){    uchar G_value=0x01; // 給變量賦初值 SEL=1;    //高電平LED有效   while(1) { data=G_value; Delay_1ms(10000); G_value=G_value<<1; if(G_value==0x00) { data=G_value; Delay_1ms(10000); G_value=0x01;      } }}/***********************主函數************************/void main(){ ///////////////////////////////////////////////// //注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關的IO口均為 //      高阻態,需將這些口設置為準雙向口或強推挽模式方可正常使用 //相關IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2 //        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5 ///////////////////////////////////////////////// P4M1=0x00; P4M0=0x00; P2M0=0xff; P2M1=0x00; //將P2設為推挽 Led_test();  }

    標簽: STC15F2K60S2

    上傳時間: 2022-05-03

    上傳用戶:

  • 51單片機的全自動洗衣機控制系統代碼

    通電后,進水指示燈亮起,用戶通過對按鍵的操作選擇洗衣服的哪一個流程,若直接選擇啟動按鍵,則洗衣機從進水→洗衣服→泡洗→脫水→出水→結束進行整個流程。若不直接選擇啟動,那么用戶可以根據自己的需要對菜單選擇鍵進行操作,把洗衣機切換到自己想要的那個流程去。⑴洗滌過程:在進入洗滌過程,首先進水閥接通,開始向洗衣機供水,當到達要求水位時,進水閥斷電關閉,停止進水;電機M接通,帶動波輪旋轉,形成洗衣水流。電機M是一個正反轉電機,可以形成往返水流,有利于洗滌衣物。⑵漂洗過程:與洗滌過程操作相同,只是時間短一些。⑶脫水過程:洗滌或漂洗過程結束后,電機M停止轉動,排水閥M接通,開始排水。排水閥動作的同時,電機M也接通,使電機可以帶動內桶轉動。當水位低到一定值,再經過一段時間后,電機開始正轉,帶動內桶高速旋轉,甩干衣物。 unsigned char as; //水位,保存sbit k1=P1^0;//進水閥控制端口sbit k2=P1^1;//排水閥控制端口sbit k3=P1^2;//電機控制繼電器一號sbit k4=P1^3;//電機控制繼電器2號sbit led1=P2^0;//浸泡洗指示燈sbit led2=P2^1;//速洗指示燈sbit led3=P2^2;//標準洗指示燈sbit led4=P2^3;//脫水指示燈sbit led5=P2^4;//烘干指示燈sbit s1=P3^2;//數碼管顯示第一位公共端sbit s2=P3^3;//數碼管第二位顯示控制公共端sbit k5=P3^0;//烘干電機sbit ks1=P3^4;//洗衣機電源開關sbit ks2=P3^5;//洗衣機模式選擇sbit ks3=P3^6;//啟動按鍵sbit kk1=P3^1;//洗滌完報警參考仿真圖:

    標簽: 51單片機 控制系統

    上傳時間: 2022-05-14

    上傳用戶:

  • STM32F103驅動W5500網絡程序

    #include "W5500.h"/***************----- 網絡參數變量定義-----***************/unsigned char Gateway_IP[4];// 網關IP 地址unsigned char Sub_Mask[4]; // 子網掩碼unsigned char Phy_Addr[6]; // 物理地址(MAC)unsigned char IP_Addr[4]; // 本機IP 地址unsigned char S0_Port[2]; // 端口0 的端口號(5000)unsigned char S0_DIP[4]; // 端口0 目的IP 地址unsigned char S0_DPort[2]; // 端口0 目的端口號(6000)unsigned char UDP_DIPR[4]; //UDP( 廣播)模式,目的主機IP 地址unsigned char UDP_DPORT[2]; //UDP( 廣播)模式,目的主機端口號/***************----- 端口的運行模式-----***************/unsigned char S0_Mode =3; // 端口0 的運行模式,0:TCP 服務器模式,1:TCP 客戶端模式,2:UDP(廣播)模式#define TCP_SERVER 0x00 / /TCP服務器模式#define TCP_CLIENT 0x01 / /TCP客戶端模式#define UDP_MODE 0x02 / /UDP(廣播)模式

    標簽: stm32f103 驅動 w5500

    上傳時間: 2022-06-23

    上傳用戶:

主站蜘蛛池模板: 湄潭县| 乌苏市| 清徐县| 武定县| 兴和县| 二手房| 藁城市| 岐山县| 洮南市| 沈阳市| 涟源市| 宿州市| 宣化县| 雅安市| 黄石市| 兴义市| 抚顺县| 兴国县| 科技| 临桂县| 视频| 望奎县| 康平县| 武邑县| 咸宁市| 武隆县| 徐水县| 吕梁市| 开江县| 通渭县| 布尔津县| 昌邑市| 花垣县| 祁门县| 聂荣县| 华蓥市| 柘荣县| 乌兰浩特市| 安庆市| 兴安县| 崇文区|