日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机50个实例代码_常用的51单片机代码

發(fā)布時間:2023/12/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机50个实例代码_常用的51单片机代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

51單片機實驗板原理圖

1.流水燈實驗

#include void delay(unsigned int Cnt){unsigned int t;while(Cnt--){t = 120;while(t--);}}void main( )/*主程序*/{ P1=0xfe;delay( 400 ); /*500為延時參數(shù),可根據(jù)實際需要調(diào)整*/P1=0xfd;delay( 500 );P1=0xfb;delay( 500 );P1=0xf7;delay( 500 );P1=0xef;delay( 500 );P1=0xdf;delay( 500 );P1=0xbf;delay( 500 );P1=0x7f;delay( 500 );}

2.數(shù)碼管動態(tài)顯示

#include#include#define uchar unsigned char#define uint unsigned intsbit duan=P2^6; sbit wei=P2^7; uchar code tab[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x00,0x40}; //uchar idata dis_buf[6]={17,17,17,17,17,17}; //void delayms(uint i) { uint j; for(;i>0;i--) for(j=120;j>0;j--) {;}}void main() { uchar k,m,n,bitcode,segcode; while(1) { for(n=0;n<17;n++) { dis_buf[0]=dis_buf[1]; dis_buf[1]=dis_buf[2]; dis_buf[2]=dis_buf[3]; dis_buf[3]=dis_buf[4]; dis_buf[4]=dis_buf[5]; dis_buf[5]=n; for(m=0;m<100;m++) { bitcode=0xfe; for(k=0;k<6;k++) { P0=0xff; wei=1; wei=0; segcode=dis_buf[k]; P0=tab[segcode]; duan=1; duan=0; P0=bitcode; wei=1; wei=0; delayms(1); bitcode=_crol_(bitcode,1); } } } }}

3.數(shù)碼管靜態(tài)顯示

#include #define uchar unsigned char #define uint unsigned int sbit DUAN=P2^6;sbit WEI=P2^7;uchar code led[6]={0x00,0x01,0x02,0x03,0x04,0x05};uchar data ledwei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};uchar data displaytab[6]={ 0x06, 0x5b ,0x4f ,0x66 ,0x6d ,0x7d };void delay() {uchar x,y;for(x=2; x>0; x--)for(y=250; y>0; y--);}void main( ) {uchar i;while(1){for (i=0;i<6;i++){P0=displaytab[led[i]];DUAN=1;DUAN=0;P0=ledwei[i]; WEI = 1;WEI = 0;delay();P0=0x00;DUAN = 1;DUAN = 0;} }}

4.數(shù)碼管顯示相同的內(nèi)容

#include #define uchar unsigned char #define uint unsigned int sbit DUAN=P2^6;sbit WEI=P2^7;uchar code led[6]={0x00,0x01,0x02,0x03,0x04,0x05};uchar data ledwei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};uchar data displaytab[6]={ 0x06, 0x5b ,0x4f ,0x66 ,0x6d ,0x7d };void delay() {uchar x,y;for(x=2; x>0; x--)for(y=250; y>0; y--);}void main( ) {uchar i;while(1){for (i=0;i<6;i++){P0=displaytab[led[i]];DUAN=1;DUAN=0;P0=ledwei[i]; WEI = 1;WEI = 0;delay();P0=0x00;DUAN = 1;DUAN = 0;} }}

5.脈沖計數(shù)

#include #define uchar unsigned char #define uint unsigned int sbit DUAN=P2^6;sbit WEI=P2^7;sbit K1=P3^4;sbit K2=P3^5;sbit K3=P3^6;sbit K4=P3^7;uint q=9999;uchar data led[6]={9,9,9,9,0,0};uchar data ledwei[6]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar data displaytab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay() /*延時函數(shù),約1mS*/{uchar x,y;for(x=2; x>0; x--)for(y=250; y>0; y--);}void display() /*主程序*/{uchar i;for (i=0;i<6;i++){P0=displaytab[led[i]];DUAN=1;DUAN=0;P0=ledwei[i]; WEI = 1;WEI = 0;delay(); P0=0xff;/*消影2,位選全部關(guān)斷*/ WEI = 1;WEI = 0;P0=0x00;/*消影1,熄滅斷碼*/ DUAN = 1;DUAN = 0;} }void main(){TMOD=0x06;EA=1;ET0=1;ET1=1;TH0=0xff;TL0=0xff;TH1=0xff;TL1=0xff;TR0=1;TR1=1; PT0=1;while(1){display();}}void T0_int() interrupt 1{display();display(); if(K1==0) {q++;led[5]=q/100000;led[4]=q%100000/10000;led[3]=q%10000/1000;led[2]=q%1000/100;led[1]=q%100/10;led[0]=q%10/1;}top:while(!K1){display();}display(); display();while(!K1){ goto top;}} void T1_int() interrupt 3{display();display(); if(K2==0) {q--;led[5]=q/100000;led[4]=q%100000/10000;led[3]=q%10000/1000;led[2]=q%1000/100;led[1]=q%100/10;led[0]=q%10/1;}top:while(!K2){display();}display(); display();while(!K2){ goto top;}}

6.脈沖測量

#include #define uchar unsigned char #define uint unsigned int sbit DUAN=P2^6;sbit WEI=P2^7;sbit K1=P3^4;sbit K2=P3^5;sbit pulse=P3^3;uchar count_high;uchar count_low;uint num;uchar data led[6]={0,0,0,0,0,0};uchar data ledwei[6]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar data displaytab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay() /*延時函數(shù),約1mS*/{uchar x,y;for(x=2; x>0; x--)for(y=250; y>0; y--);}void read_count(){count_high=TH1;count_low=TL1;num=count_high*256+count_low;}void display() /*主程序*/{uchar i;for (i=0;i<6;i++){P0=displaytab[led[i]];DUAN=1;DUAN=0;P0=ledwei[i]; WEI = 1;WEI = 0;delay();P0=0xff;/*消影2,位選全部關(guān)斷*/ WEI = 1;WEI = 0;P0=0x00;/*消影1,熄滅斷碼*/ DUAN = 1;DUAN = 0;} }void main(){TMOD=0x06;EA=1;ET0=1;TR0=1;TH0=0xff;TL0=0xff;while(1){display();}}void T0_int() interrupt 1{display(); display(); if(K1==0) { TMOD=0X90; while(pulse==1); TR1=1; while(pulse==0); while(pulse==1); TR1=0; read_count();led[5]=num/100000;led[4]=num%100000/10000;led[3]=num%10000/1000;led[2]=num%1000/100;led[1]=num%100/10;led[0]=num%10/1;}top:while(!K1){display();}display(); display();while(!K1){ goto top;}}

總結(jié)

以上是生活随笔為你收集整理的51单片机50个实例代码_常用的51单片机代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。