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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

C51单片机使用2-流水灯测试

發(fā)布時(shí)間:2023/12/29 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C51单片机使用2-流水灯测试 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、流水燈測(cè)試

運(yùn)行效果:每隔0.6秒蜂鳴器響一聲、同時(shí)LED燈由P1_0到P1_7輪著亮。

1、流水燈電路設(shè)計(jì)

LED燈共陽(yáng)極,IO口輸出低電平為點(diǎn)亮LED燈、IO口輸出高電平則熄滅LED燈。由于單片機(jī)IO輸出的電流不足以驅(qū)動(dòng)LED燈,因此使用74HC573芯片驅(qū)動(dòng)LED燈。

2、蜂鳴器電路設(shè)計(jì)

3、C語(yǔ)言移位實(shí)現(xiàn)

(1)左移:操作符”<<“。每執(zhí)行依次左移指令,被操作的數(shù)將最高位移入單片機(jī)PSW寄存器的CY位,CY位中原來(lái)的數(shù)丟棄,最低位補(bǔ)0,其它位依次向左移動(dòng)一位。

?樣例程序:

while(1) {a=a<<1; }

(2)右移:操作符”>>“。每執(zhí)行依次右移指令,被操作的數(shù)將最低位移入單片機(jī)PSW寄存器的CY位,CY位中原來(lái)的數(shù)丟棄,最高位補(bǔ)0,其它位依次向右移動(dòng)一位。

?

while(1) {a=a>>1; }

(3)循環(huán)左移:最高位移入最低位,其它位依次向左移一位。自帶函數(shù) _crol 實(shí)現(xiàn)

?

?(4)循環(huán)右移:最低位移入最高位,其它位依次向右移位。自帶函數(shù) _cror 實(shí)現(xiàn)

?流水燈實(shí)現(xiàn)使用C51自帶的庫(kù)函數(shù)_crol_()實(shí)現(xiàn)循環(huán)左移.

測(cè)試代碼如下

//flow light and beep #include <reg51.h> #include <intrins.h>#define uint unsigned int #define uchar unsigned charunsigned char m,n; sbit beep=P2^3; //蜂鳴器void delay10ms() //延時(shí)10毫妹胱映絳? {unsigned char a,b;for(a=100;a>0;a--)for(b=225;b>0;b--); }void delay02s(void) //延時(shí)0.2秒子程序 {unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--)for(k=248;k>0;k--); }void Delay_ms(uint xms) {uint i,j; for(i=xms;i>0;i--)for(j=110;j>0;j--); }void main() {n=0xfe; //設(shè)置初始值 11111110while(1){/*//beep=0;delay02s();delay02s();delay02s();//beep=1;m=_crol_(n,1);n=m;P1=m;delay02s();delay02s();delay02s();*///beep=0;Delay_ms(500);//beep=1;m=_crol_(n,1);n=m;P1=m;Delay_ms(500);} }

4、毫秒延時(shí)函數(shù)

第一個(gè)循環(huán)語(yǔ)句執(zhí)行一次,則第二個(gè)循環(huán)語(yǔ)句執(zhí)行110次。單片機(jī)的晶振是12MHz,它的時(shí)鐘周期就是1/12us,它是單片機(jī)中最基本、最小的時(shí)間單位。在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)最基本的動(dòng)作。

需要延時(shí)多少毫秒,xms值設(shè)置多少就行。這個(gè)時(shí)間是個(gè)大概時(shí)間,需要精確的時(shí)間需要使用專(zhuān)用的定時(shí)器中斷

void Delay_ms(uint xms) {uint i,j; for(i=xms;i>0;i--)for(j=110;j>0;j--); }

總結(jié)

以上是生活随笔為你收集整理的C51单片机使用2-流水灯测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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