收藏 分销(赏)

51单片机电风扇程序设计.doc

上传人:a199****6536 文档编号:3068586 上传时间:2024-06-14 格式:DOC 页数:7 大小:22.50KB
下载 相关 举报
51单片机电风扇程序设计.doc_第1页
第1页 / 共7页
51单片机电风扇程序设计.doc_第2页
第2页 / 共7页
51单片机电风扇程序设计.doc_第3页
第3页 / 共7页
51单片机电风扇程序设计.doc_第4页
第4页 / 共7页
51单片机电风扇程序设计.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、#include#define uchar unsigned char#define uint unsigned int#define out P2uchar flag,count,n,m,x;/x是总开关标标志位,flag计数标志位,count变量:控制自动累加的时间长短,m档位标志位uchar temp0,temp1,temp2,temp3;/手动按键设置四个数码管的数值变量uchar tl_temp,th_temp,tl1_temp,th1_temp;/中间变量uchar xz;/uint s;/数码管显示的值/uint pwm13 = 56536,49536,36536; uint p

2、wm23 = 56536,56536,56536;/这两个数组是为了给定时器1一个初值uchar zdm10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/数码管的字段码void keyscan1();/声明键盘扫描函数void dispaly();/声明函数:选择挡位1,2,3三个档位void dispaly1();/声明:功能赋值函数void delay();/声明延时void delay() uchar i,j; for(i=0;i=10;i+) for(j=0;j=120;j+);/延时程序void keyscan1() if(P

3、3_0=0) delay(); if(P3_0=0) while(P3_0=0); flag+; if(flag=2) flag=0; /当p3_0按下falg加1,flag=2时清0;功能:下面说明 if(P1_4=0) delay(); if(P1_4=0) while(P1_4=0); temp0+; if(temp0=10) temp0=0; if(P1_3=0) delay(); if(P1_3=0) while(P1_3=0); temp1+; if(temp1=10) temp1=0; if(P1_2=0) delay(); if(P1_2=0) while(P1_2=0); t

4、emp2+; if(temp2=10) temp2=0; if(P1_1=0) delay(); if(P1_1=0) while(P1_1=0); temp3+; if(temp3=10) temp3=0; /按键调整四个数码管的调的数值 if(P3_1=0) delay(); if(P3_1=0) m=1; if(P3_2=0) delay(); if(P3_2=0) m=2; if(P3_3=0) delay(); if(P3_3=0) m=3; /按键控制三个档位if(P1_5=0) delay(); if(P1_5=0) while(P1_5=0); x+; if(x=2) x=0;

5、 /总开关void timer() interrupt 1 TH0=0X3C;TL0=0XB0;count+;if(count=20) count=0; s+; temp3=s/1000; temp2=s%1000/100; temp1=s%100/10; temp0=s%10; /用定时器控制累加的时间间隔,s自加然后得出个十百千位的数值void dispaly() P0=zdms%10; P3=0x7f; delay(); P3=0xff; P0=zdms%100/10; P3=0xbf; delay(); P3=0xff; P0=zdms%1000/100; P3=0xdf; delay

6、(); P3=0xff; P0=zdms/1000; P3=0xef; delay(); P3=0xff; /数码管显示void display1() if(m=1) tl_temp=pwm10%256; th_temp=pwm10/256; tl1_temp=pwm20%256; th1_temp=pwm20/256; else if(m=2) tl_temp=pwm11%256; th_temp=pwm11/256; tl1_temp=pwm21%256; th1_temp=pwm21/256; else if(m=3) tl_temp=pwm12%256; th_temp=pwm12/2

7、56; tl1_temp=pwm22%256; th1_temp=pwm22/256; /占空比的时间初值,我的意思是把初值付给定时器的高八位低八位 void time2() interrupt 3 if(xz=0) TL1=tl_temp;TH1=th_temp;n=0; /xz=0时把值付给定时器作初值计满电机开转 else TL1=tl1_temp; TH1=th1_temp; n=1; /xz=1时把另外的一个值付给定时器作初值,定时器计满电机停止 xz=xz;/起循环控制作用 /改变他们的初值就改变了速度void main() TMOD=0x11; TH0=0X3C; TL0=0XB0; EA=1; ET1=1; TR0=1; TR1=1; /启用两个定时器 while(1) keyscan1(); display1(); P1_0=n; if(x=1) P3=0X00; P0=0X00; if(s=10000) ET1=0; P1_0=1; s=0; P3=0X0F; P0=0XFF;else if(flag=1) ET0=0; else ET0=1; s=temp3*1000+temp2*100+temp1*10+temp0; dispaly();else s=0; P1_0=1; P3=0X0F; P0=0XFF;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服