標(biāo)題:
電暖桌調(diào)溫的單片機源程序
[打印本頁]
作者:
bg7cl
時間:
2017-5-17 19:42
標(biāo)題:
電暖桌調(diào)溫的單片機源程序
51單片機源程序:
#include<reg51.h> //包含單片機寄存器的頭文件,四檔為一檔,主程序體現(xiàn)。有點過熱,占空比為了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; //設(shè)置全局變量,儲存定時器T1中斷次數(shù)
unsigned char Countor2; //設(shè)置全局變量,儲存定時器T1中斷次數(shù)
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; //設(shè)置全局變量,儲存定時器T1中斷次數(shù)
unsigned char Countor2; //設(shè)置全局變量,儲存定時器T1中斷次數(shù)
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; //關(guān)機
break;
default: //缺省值,關(guān)閉所有LED
P0=0xff;
}
}
}
復(fù)制代碼
AT89S51單片機C語言程序范例.doc
2017-5-17 19:40 上傳
點擊文件名下載附件
1.64 MB, 下載次數(shù): 3
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1