欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
帶詳細注釋跑馬燈源碼 單片機輸入輸出端口控制實驗
[打印本頁]
作者:
wjcjy
時間:
2018-6-4 16:57
標題:
帶詳細注釋跑馬燈源碼 單片機輸入輸出端口控制實驗
實驗一 單片機輸入輸出端口控制實驗
用P1口作為輸出口,接8位用作邏輯電平顯示的發光二極管。設計程序使發光二極管間隔300ms先奇數亮再偶數亮,循環3次;一個發光二極管亮上下循環3次;兩個分別從兩邊向中間流動3次;再從中間向兩邊流動3次;8個全部閃爍3次;關閉全部發光二極管,停止
有程序及注釋
#include<reg52.h> //52單片機頭文件
#include <intrins.h> //包含有左右循環移位子函數的庫
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
void delay(uint z) //延時函數,z的取值為這個函數的延時ms數,如delay(200);大約延時200ms.
{//delay(500);大約延時500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函數
{
uchar a,i,j;
for(j=0;j<3;j++) //寄偶交替
{
P1=0x55; //點亮小燈
delay(300); //延時300毫秒
P1=0xaa;
delay(300); //延時300毫秒
}
for(j=0;j<3;j++) //流水燈
{
a=0xfe;
for(i=0;i<8;i++)
{
P1=a; //點亮小燈
delay(300); //延時300毫秒
a=_crol_(a,1);
}
P1=0xff;
for(j=0;j<3;j++) //從兩邊往中間流
{
P1=0x7e; //點亮小燈
delay(300); //延時300毫秒
P1=0xbd;
delay(300); //延時300毫秒
P1=0xdb; //點亮小燈
delay(300); //延時300毫秒
P1=0xe7;
delay(300); //延時300毫秒
}
P1=0xff;
for(j=0;j<3;j++) //從中間往兩邊流
{
P1=0xe7; //點亮小燈
delay(300); //延時300毫秒
P1=0xdb;
delay(300); //延時300毫秒
P1=0xbd; //點亮小燈
delay(300); //延時300毫秒
P1=0x7e;
delay(300); //延時300毫秒
P1=0xff;
for(j=0;j<6;j++) //全部閃爍
{
P1=~P1; //點亮小燈
delay(300); //延時300毫秒
}
P1=0xff;
while(1);
}
思考題程序代碼:
#include <reg52.h> //包含所需的頭文件
#include <intrins.h>
#define uint unsigned int //定義類型別名為無符號的整型
#define uchar unsigned char //定義類型別名為無符號的字符型
void delayms(uint);//聲明延時子函數
void main()
{
uint i,j;
uchar aa;// 定義一個變量給p1口賦值
aa=0xfe;//賦值11111110
for(i=0;i<3;i++)
{
P1=0x55; // 點亮所有奇數小燈
delayms(300);//延時300毫秒
P1=0xaa; //點亮所有偶數小燈
delayms(300); //延時300毫秒
}
for(i=0;i<3;i++)
{
for(j=0;j<7;j++)
{
P1=aa;//點亮第一個小燈
delayms(300);
aa=_crol_(aa,1);//將aa循環左移一位后賦值給aa循環7次
}
aa=0x7f;//把11101111賦值給aa
for(j=0;j<7;j++)
{
P1=aa;//點亮中間的小燈
delayms(300);//延時300ms
aa=_cror_(aa,1); //將aa循環左移一位后賦值給aa循環7次
}
}
for(i=0;i<3;i++)//兩個分別從兩邊向中間依次點亮
{
P1=0x7e;
delayms(300);
P1=0xbd;
delayms(300);
P1=0xdb;
delayms(300);
P1=0xe7;
delayms(300);
}
for(i=0;i<3;i++)//從中間向兩邊依次點亮
{
P1=0xe7;
delayms(300);
P1=0xdb;
delayms(300);
P1=0xbd;
delayms(300);
P1=0x7e;
delayms(300);
}
for(i=0;i<3;i++)
{
P1=0x00;//全亮
delayms(300);//延時300ms
P1=0xff;//全滅
delayms(300);
}
while(1);
}
void delayms(uint xms)//延時子程序
{uint i,j;
for(i=xms;i>0;i--)//i=xms
for(j=110;j>0;j--);
}
復制代碼
完整的Word格式文檔51黑下載地址:
單片機實驗.doc
(21 KB, 下載次數: 8)
2018-6-4 16:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1