1、b+);while(1) delay(); led0=1; led1=0; led1=1; led2=0; led2=1; led3=0; led3=1; led4=0; led4=1; led5=0; led5=1; led6=0; led6=1; led7=0; led7=1; 方法2 总线方法#define uchar unsigned char#define uint unsigned intunsigned chartable=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; uchara,b; uchari; while(1) for(i=0;i8;
2、i+) P0=tablei;/11111110/ P0=0xfd;/11111101方法三 移位流水 uchark,i; k=0xfe;/11111110 P0=k; k=k uchark; k=_crol_(k,1);蜂鸣器 继电器1月28号sbit beep=P01; beep=1;sbit relay=P00; relay=1; relay=0;_步进电机的按键控制1月29号void delay(unsigned int t); /Motorsbit k1=P27;sbit k2=P26;sbit F1 = P10;sbit F2 = P11;sbit F3 = P12;sbit F4
3、= P13;unsigned char codeFFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9; /反转unsigned char codeFFZ8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1; /正转/* 步进电机驱动*/void motor_ffw() unsigned char i; unsigned int j; for (j=0; j12; j+) /转1*n圈 for (i=0; i i+) /一个周期转30度 P1 = FFWi&0x1f; /取数据 delay(10); /调节转速void motor
4、_ffz() P1 = FFZi& void motor_stop() P1=1; voiddelay(unsigned int t) unsigned int k; while(t-) for(k=0; k80; k+) main() P2=0xff; switch (P2) case(0xfe): motor_ffw();break; case(0xfd): motor_ffz(); default : motor_stop(); break;_呼吸灯4月13号#include#define uint unsigned intuint i;sbit led=P23;void delay(u
5、int a) while(a-=1);void breath() uint i; for(i=1;=499; led=0; delay(i); led=1; delay(501-i); for(i;i=1;i-) while(1) breath(); _流水呼吸灯4月15号 /调用库函数#define uint unsigned int /宏定义uint i;uchar bb; while(a-) ; /定义延时函数void breath() /定义呼吸函数i+) /FOR循环 P2=bb; /控制BB位的LED /延时,随着 FOR循环 延时点亮的时间逐渐缩短,即每次循环的时间减少,亮度减弱
6、 P2=0XFF; /BB位LED为低电平的时间增长,高电平时间为0i-) /由高电平时间为0转换为低电平为0 bb=0xfe; while(1) /循环主函数 bb=_crol_(bb,1); /_crol_带循环 /是位左移,后面补0/数码管动态显示7月21号intduanxuan=0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f;int i,k,e,z=0xfe;void delay (int j) while (j-);void disp() P0=0x00;P1=0xff; P0=duanxuank; P1=z; delay(200); z=z z=z|
7、0x01;void main () for (k=0;k0;t-) for(j=19;jj-); intnum; P3=0xff;/消抖 if(k1=0) delay(200); if (k1=0) num+; led=0; if(num=8) num=0; while (!k1); else P1=smg_gynum;_88月2号 矩阵键盘#define uint unsigned int uchar duanxuan16= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c;uchar table12=0xed,0xd
8、d,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77;void display(uchar i) P1=duanxuani;void delay_50us(uint t) uchar j; for(;unsigned char i,key_1,key_2,hh;while (1) P3=0xf0; key_1=P3; if(key_1!=0xf0) delay_50us(200); key_1=P3; P3=0x0f; key_2=P3; hh=key_1|key_2; for(i=0; if(hh=tablei) display(i); br
9、eak; _8月7号 中断函数 sbit p=P00; while(a-) ; /定义延时函数 void clock(void) p=0; delay(100); IT0=0; EA=1; EX0=1; P2=0x00; clock();void it0() interrupt 0 P2=0xf0_8月11号 定时器方式的数码管动态显示unsigned char num,k=0,z=0xfe;int duanxuan=0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f; TMOD=0X01; /设置定时器工作方式为定时方式1 TH0=(65536-500)/256; /装入初值12M晶振定时 TL0=(65536-500)%256; /打开总中断开关 ET0=1; /打开定时器开关 TR0=1; /启动定时器 if(num=5) k+; k=k%8; z=_crol_(z,1); /等待中断响应void time0 () interrupt 1 num+;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1