資源簡介
這是一個關于微波爐的課程設計,里面包含了程序,原理圖,仿真圖。

代碼片段和文件信息
#include?
#define??uint?unsigned?int
#define??uchar?unsigned?char
uint?dis[]={0x000x000x000x00};
uint?pv=1pv_j=6pv_l=24;?//定義?檔位、加熱時間、冷卻時間(每個周期)
uint?count_s=0;????//記錄定時時間
uint?cyc0=20cyc1=20;????//?為了計時一秒,定時器一次中斷為50ms,20*50ms=1s
uchar?codevalue[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0xff};??//七段數碼管顯示碼顯示0~9和全亮
uchar?codecho[]={0xfe0xfd0xfb0xf7}; ??//位選碼
sbit?P10=P1^0; //引腳定義
sbit?P11=P1^1;
sbit?P12=P1^2;
sbit?P13=P1^3;
sbit?P14=P1^4;
sbit?P15=P1^5;
sbit?P16=P1^6;
sbit?P17=P1^7;
sbit?duan=P2^0;
sbit?wei=P2^1;
sbit?P22=P2^2;
sbit?P23=P2^3;
sbit?P24=P2^4;
/*--------------------
??延時函數,大致延時一毫秒
-------------------*/
void?delay_ms(uint?t)
{uchar?i;
while(t--) ?
{
i=250;
while(--i);
}
}
/*------------------------
???定時器初始化
--------------------------*/
void?t_clr()
{
EA=1;????????????//CPU開中斷
ET0=1;
ET1=1;???????????//定時器?中斷允許
TMOD=0X11;???????//定時器T1、T0?定時???方式一
TH0=0X3c;
TL0=0Xaf;
????????????????????//12M?晶振,65536-15536=50000,50000us*20=1000000us=1s
TH1=0X3c;
TL1=0X0af;
}
/*------------------------
????鍵盤掃描函數
--------------------------*/
void?key_scan()
{
if(!P10)
{
?delay_ms(70);
if(!P10)
count_s+=30;??????//時間?+30秒
????????if?(count_s>6000)
????????????count_s=0;
}
????if(!P11)
{
?delay_ms(70);
if(!P11)
count_s+=60;???????//時間?+1?分
????????if?(count_s>6000)
????????????count_s=0;
}
if(!P12)
{
?delay_ms(70);
if(!P12)
count_s+=300;??????//時間+5分
????????if?(count_s>6000)
????????????count_s=0;
}
if(!P13)
{
?delay_ms(70);
if(!P13)
count_s=0;?????????//時間清零
}
if(!P14)
{
?delay_ms(70);
if(!P14)
{if?(pv<3)
?pv++;???????????????//檔位+1
?????????pv_j=pv*6+6;????????//加熱時間
?????????pv_l=30-pv_j;???????//冷卻時間
}
}
if(!P15)
{
?delay_ms(70);
if(!P15)
{if?(pv>0)
?pv--;???????????????//檔位-1
?????????pv_j=pv*6+6;
?????????pv_l=30-pv_j;
}
}
if(!P16)
{
?delay_ms(70);
if(!P16)
{
?P22=1;
?????????if(count_s==0)??????????//如果沒有設定時間,不加熱,定時器不工作?
????????????{TR0=0;
????????????TR1=0;}
?????????else????????????????????//如果已經設定時間,則開始計時,開始加熱
????{???????????????????
????????????pv_j=6*pv+6;
????????????pv_l=30-pv_j;
????????????t_clr();
????????????TR0=1;
????TR1=1;
????????????P22=0;}
}
}
if(!P17)???????????????//停止加熱,終止定時器
{
?delay_ms(70);
if(!P17)
{P22=1;
?P23=0;
?TR0=0;
?TR1=0;
}
}
}
/*------------------------
????時間變換為每個顯示位
--------------------------*/
void?time_converter()
{
dis[0]=count_s/600;?????????????//取分的十位
dis[1]=(count_s/60)%10;?????????//取分的個位
?????????????????????????????????
dis[2]=(count_s%60)/10;?????????//取秒的十位
dis[3]=(count_s%60)%10;?? //取秒的個位
}
/*------------------------
???顯示函數
--------------------------*/
void?display()
{??
????
????uchar?t;
uchar?k;
for(k=0;k<4;k++) //LED顯示
{
?wei=1;
?P0=codecho[k];
?wei=0;
?????P0=0xff
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-02-21?11:47??仿真電路圖\
?????文件??????178976??2017-01-26?21:14??仿真電路圖\1.DSN
?????文件?????????768??2017-01-27?22:04??仿真電路圖\1.PWI
?????文件??????178962??2017-01-03?15:49??仿真電路圖\Last?Loaded?1.DBK
?????目錄???????????0??2017-02-21?11:47??原理圖\
?????目錄???????????0??2017-02-21?11:47??原理圖\History\
?????文件???????24622??2017-01-04?21:46??原理圖\History\WANG.~(1).SCHDOC.Zip
?????文件??????207872??2017-01-04?21:46??原理圖\WANG.SCHDOC
?????目錄???????????0??2017-02-21?11:47??程序\
?????文件????????9404??2017-01-03?16:33??程序\1
?????文件????????5113??2017-01-03?16:33??程序\1.c
?????文件????????3308??2017-01-03?16:33??程序\1.hex
?????文件??????????34??2017-01-03?16:33??程序\1.lnp
?????文件???????11341??2017-01-03?16:33??程序\1.LST
?????文件???????14050??2017-01-03?16:33??程序\1.M51
?????文件???????11197??2017-01-03?16:33??程序\1.OBJ
?????文件?????????168??2017-02-08?20:52??程序\1.plg
?????文件???????55201??2017-02-08?20:52??程序\1.uvopt
?????文件???????13217??2017-01-01?12:59??程序\1.uvproj
?????文件???????55201??2017-02-08?13:09??程序\1_uvopt.bak
?????文件???????????0??2017-01-01?12:06??程序\1_uvproj.bak
- 上一篇:飛機訂票系統軟件工程
- 下一篇:帝國競爭算法論文
評論
共有 條評論