完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
` #include unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66}// 0 1 2 3 4 unsigned char time1; //////延时函数参数/////// /////////////////////////////变量说明////////////////////////////////////// unsigned char time2; unsigned char time3; unsigned char count; unsigned char ms; ////////////////////////////////////////函数说明//////////////////////////////// void initial(void); ////初始化函数//// //void initial_time0(void); //////定时器0初始化/////// void anjian(void); ////////////按键函数//// void delay(unsigned char time1,time2,time3); ////延时函数//// void disp(unsigned char count); /////静态显示子函数///// void delay1(char ms); void fangbo(void); //方波函数// void sanjiaobo(void); //三角波函数// void juchibo(void); //锯齿波函数// void tixingbo(void); //正弦波函数// void main (void) { initial(); while(1) { anjian(); } } /************************************************************************* //函数名称:void anjian(void) //函数说明:按键函数 //函数功能: // 注意: *************************************************************************/ void anjian(void) { if(P3_7==0) {delay(1,50,248); if(P3_7==0) {count=1; disp(count); fangbo(); } } while(P3_7==0); count=0; disp(count); anjian(); } /************************************************************************* //函数名称:void fangbo(void) //函数说明:方波函数 //函数功能: // 注意: *************************************************************************/ void fangbo(void) { while(1) { unsigned char fangbo_1; fangbo_1+=8; if(fangbo_1>128&fangbo_1<256) {P0=0x00;} if(fangbo_1<128) {P0=0xff;} if(P3_7==0) {delay(1,50,248); if(P3_7==0) { count=2; disp(count); sanjiaobo(); } } while(P3_7==0); } } /************************************************************************* //函数名称:voidsanjiaobo(void) //函数说明:三角波函数 //函数功能: // 注意: *************************************************************************/ void sanjiaobo(void) { while(1) { unsignedchar sanjiaobo_2; if(sanjiaobo_2<=128) {P0=sanjiaobo_2;} else {P0=255-sanjiaobo_2;} sanjiaobo_2+=5; if(sanjiaobo_2>=255) {sanjiaobo_2=0x00;} if(P3_7==0) { delay(1,50,248); if(P3_7==0) {count=3; disp(count); juchibo(); } } while(P3_7==0); } } /************************************************************************* //函数名称:voidjuchibo(void) //函数说明:锯齿波函数 //函数功能: // 注意: *************************************************************************/ void juchibo(void) { while(1) { unsignedchar juchibo_3; if(juchibo_3<180) {P0=juchibo_3;} juchibo_3+=4; if(juchibo_3>=180) {juchibo_3=0x00;} if(P3_7==0) { delay(1,50,248); if(P3_7==0) {count=4; disp(count); tixingbo(); } } while(P3_7==0); } } /************************************************************************* //函数名称:voidtixingbo(void) //函数说明:梯形波函数 //函数功能: // 注意: *************************************************************************/ void tixingbo(void) { while(1) { unsignedchar tixingbo_4; if(tixingbo_4<120) {P0=tixingbo_4;} elseif(tixingbo_4==120) delay1(1); elseif(tixingbo_4<240) {P0=240-tixingbo_4;} if(tixingbo_4==240) {delay1(1);} if(tixingbo_4>240) { tixingbo_4=0x00; } tixingbo_4+=10; if(P3_7==0) {delay(1,50,248); if(P3_7==0) { count=0; disp(count); anjian(); } } while(P3_7==0); } } /************************************************************************* //函数名称:voidinitial(void) //函数说明:初始化函数 //函数功能: // 注意: *************************************************************************/ void initial(void) { P0=0xff; P1=0xff; P2=0xff; P3=0xff; } /************************************************************************* //函数名称:delay(unsignedchar time1,time2,time3) //函数说明:延时函数 //函数功能: //入口参数:unsigned chartime1,time2,time3 //出口参数: // 注意:延时时间的计算:(time1*time2*time3*8us)us time1,time2,time3可以不进行变量说明 *************************************************************************/ void delay(unsigned char time1,time2,time3) { unsigned char i,j,k; for(i=time1;i>0;i--) { for(j=time2;j>0;j--) { for(k=time3;k>0;k--); } } } /************************************************************************* //函数名称:disp(unsignedchar count) //函数说明:静态显示子函数 //函数功能: //入口参数:unsigned charcount //出口参数: // 注意: *************************************************************************/ void disp(unsigned char count) { P2=table[count]; delay(1,5,248); } void delay1(char ms) { char ti; while(ms--) { for(ti=0;ti<16;ti++){} } } ` |
|
相关推荐
12个回答
|
|
错误在哪里啊?怎么报错都不知道怎么看?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
多谢版主~~搞定啦 |
|
|
|
|
|
|
|
斑竹威武,大神级人物啊
|
|
|
|
路过学习。。。。。。。。。。。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4038 浏览 3 评论
5326 浏览 1 评论
5605 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
7325 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1208 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 21:24 , Processed in 0.762059 second(s), Total 100, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号