郭天祥 - 十天学通单片机 - 实验板所有课后作业+答案(4)

2020-05-06 11:13

}

}

} P1=0xff;

//全部熄灭

for(j=0;j<10;j++) { }

delay(300); //延时

P1=~P1; //全部取反10次,既闪烁5次

6 /* 间隔300ms第一次一个管亮流动一次, 第二次两个管亮流动,依次到8个管亮, 然后重复整个过程。 */ /*********************************************************/ #include //52单片机头文件

#include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义

void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.

{ }

void main() {

uchar a,i,j;

while(1) //大循环

//主函数

//delay(500);大约延时500ms.

uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

{ }

a=0xfe; //赋初值 for(j=0;j<8;j++) { }

for(i=0;i<8-j;i++) //左移 { }

a=_crol_(a,j); //补齐,方便下面的左移一位 P1=0xff; a=a<<1;

//全部关闭

//左移一位让多一个灯点亮

P1=a; //点亮小灯 delay(200); //延时200毫秒

a=_crol_(a,1); //将a变量循环左移一位

7 /* 间隔300ms先奇数亮再偶数亮, 循环三次;一个灯上下循环三次; 两个分别从两边往中间流动三次; 再从中间往两边流动三次;8个全部闪烁3次; 关闭发光管,程序停止。 */

/*********************************************************/ #include //52单片机头文件

#include //包含有左右循环移位子函数的库 #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++) //寄偶交替 { }

for(j=0;j<3;j++) //流水灯 { } P1=0xff;

for(j=0;j<3;j++) //从两边往中间流 {

P1=0x7e; //点亮小灯 delay(300); //延时300毫秒 a=0xfe;

for(i=0;i<8;i++)

{ }

P1=a; //点亮小灯 delay(300); //延时300毫秒 a=_crol_(a,1);

P1=0x55; //点亮小灯 delay(300); //延时300毫秒 P1=0xaa;

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=0xff;

for(j=0;j<6;j++) //全部闪烁 { } P1=0xff; while(1);

P1=~P1; //点亮小灯 delay(300); //延时300毫秒

P1=0xe7; //点亮小灯 delay(300); //延时300毫秒 P1=0xdb;

delay(300); //延时300毫秒 P1=0xbd; //点亮小灯 delay(300); //延时300毫秒 P1=0x7e;

delay(300); //延时300毫秒

Lesson3

1 /* 利用定时/计数器T0从P1.0输出周期为1s的方波, 让发光二极管以1HZ闪烁, 设晶振频率为12MHz。? */ /*********************************************************/ #include //52单片机头文件

#include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit P1_0=P1^0; uchar tt; void main() { }

void timer0() interrupt 1 {

TH0=(65536-50000)/256; TL0=(65536-50000)%6; tt++; if(tt==20)

TMOD=0x01;//设置定时器0为工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1;//开总中断 ET0=1;//开定时器0中断 TR0=1;//启动定时器0 while(1);//等待中断产生

//主函数


郭天祥 - 十天学通单片机 - 实验板所有课后作业+答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:统计学原理作业题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: