标题:
电暖桌调温的单片机源程序
[打印本页]
作者:
bg7cl
时间:
2017-5-17 19:42
标题:
电暖桌调温的单片机源程序
51单片机源程序:
#include<reg51.h> //包含单片机寄存器的头文件,四档为一档,主程序体现。有点过热,占空比为了4比1或者5比1为好。晶振为4。43MHZ
sbit S1=P3^4; //将S1位定义为P1.4
sbit D1=P2^5; //将D1位定义为P2.0引脚
sbit D2=P2^6; //将D2位定义为P2.1引脚
sbit D3=P2^7;
sbit D4=P2^4;
unsigned char Countor1; //设置全局变量,储存定时器T1中断次数
unsigned char Countor2; //设置全局变量,储存定时器T1中断次数
void delay(void)
{
unsigned int n;
for(n=0;n<10000;n++)
;
}
void dang1d(void)
{
TMOD=0x10;
P0=0xfe; //第一个LED亮,高档
D1=0;
D2=0;
while(1){
D1=0;
D2=0;
delay();
break;
}
}
void dang2d(void)
{
TMOD=0x10;
P0=0xfd; //第二个LED亮,二档
D1=0;
D2=0;
while(1){
D1=0;
D2=0;
delay();
delay();
delay();
delay();
D1=1;
D2=1;
delay();
delay();
break;
}
}
void dang3d(void)
{
TMOD=0x10;
P0=0xfb; //第三个个LED亮,三档
D1=0;
D2=0;
while(1){
D1=0;
D2=0;
delay();
delay();
delay();
D1=1;
D2=1;
delay();
#include<reg51.h> //包含单片机寄存器的头文件
sbit S1=P3^4; //将S1位定义为P1.4
sbit D1=P2^5; //将D1位定义为P2.0引脚
sbit D2=P2^6; //将D2位定义为P2.1引脚
sbit D3=P2^7;
sbit D4=P2^4;
unsigned char Countor1; //设置全局变量,储存定时器T1中断次数
unsigned char Countor2; //设置全局变量,储存定时器T1中断次数
void delay(void)
{
unsigned int n;
for(n=0;n<10000;n++)
;
}
void dang1d(void)
{
TMOD=0x10;
P0=0xfe; //第一个LED亮,高档(39脚低电位)
D1=0;
D2=0;
while(1){
D1=0;
D2=0;
delay();
break;
}
}
void dang2d(void)
{
TMOD=0x10;
P0=0xfd; //第二个LED亮,二档(38脚)
D1=0;
D2=0;
while(1){
D1=0;
D2=0;
delay();
delay();
delay();
delay();
D1=1;
D2=1;
delay();
delay();
break;
}
}
void dang3d(void)
{
TMOD=0x10;
P0=0xfb; //第三个个LED亮,三档(37脚下)
D1=0;
D2=0;
while(1){
D1=0;
D2=0;
delay();
delay();
delay();
D1=1;
D2=1;
delay();
delay();
delay();
break;
}
}
void dang4d(void)
{
TMOD=0x10;
P0=0xf7; //第四个LED亮,四档(36脚)
D1=0;
D2=0;
while(1){
D1=0;
D2=0;
delay();
D1=1;
D2=1;
delay();
delay();
delay();
break;
}
}
void main(void)
{
unsigned char i;
i=0; //将i初始化为0
while(1)
{
if(S1==0) //如果S1键按下
{
delay(); //延时一段时间
delay();
if(S1==0) //如果再次检测到S1键按下
i++; //i自增1
if(i==6) //如果i=9,重新将其置为1
i=1;
}
switch(i) //使用多分支选择语句
{
case 1: dang4d(); //第一个LED亮
break;
case 2: dang3d(); //第二个LED亮
break;
case 3:dang2d(); //第三个LED亮
break;
case 4:dang1d(); //第四个LED亮
break;
case 5:P0=0xff;
D1=1;
D2=1; //关机
break;
default: //缺省值,关闭所有LED
P0=0xff;
}
}
}
复制代码
AT89S51单片机C语言程序范例.doc
2017-5-17 19:40 上传
点击文件名下载附件
1.64 MB, 下载次数: 3
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1