|
程序見附件:
交通燈程序.rar
(54.29 KB, 下載次數(shù): 22)
2016-1-25 21:42 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
以下為部分程序預(yù)覽:
- #include "use.h"
- #include "main.h"
- uchar code seg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar code seg_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- uchar BackupGreen,BackupRed,CopyLight;
- void Seg_Display(uchar number,uchar wei) //數(shù)碼管動(dòng)態(tài)顯示程序
- {
- P0=0XFF;
- we=1;
- we=0;
- P0=seg_du[number];
- du=1;
- du=0;
- P0=seg_we[wei];
- we=1;
- we=0;
- }
- void UrgentScan() //緊急情況運(yùn)行掃描
- {
- Seg_Display(BackupGreen/10,0);
- Seg_Display(BackupGreen%10,1);
- Seg_Display(BackupRed/10,2);
- Seg_Display(BackupRed%10,3);
- }
- void SetModel() //紅綠燈設(shè)置模式
- {
- if(StaSysterm==NormalRun)
- {
- StaSysterm=ResetGreen; //狀態(tài)機(jī)
- BackupGreen=GreenTime;
- BackupRed=RedTime;
- CopyLight=P2; //對(duì)數(shù)據(jù)進(jìn)行備份
- P2=0X09;
- }
- else if(StaSysterm==ResetGreen)
- {
- StaSysterm=ResetRed;
- }
- else if(StaSysterm==ResetRed)
- {
- StaSysterm=NormalRun;
- P2=CopyLight; //恢復(fù)數(shù)據(jù)
- }
- }
- void ADDTime() //紅綠燈時(shí)間加
- {
- if(StaSysterm==ResetGreen)
- {
- BackupGreen++;
- if(BackupGreen>=BackupRed) BackupGreen=BackupRed;
- }
- else if(StaSysterm==ResetRed)
- {
- BackupRed++;
- }
- }
- void SUBTime() //紅綠燈時(shí)間減
- {
- if(StaSysterm==ResetGreen)
- {
- BackupGreen--;
-
- }
- else if(StaSysterm==ResetRed)
- {
- BackupRed--;
- if(BackupGreen>=BackupRed) BackupRed=BackupGreen;
- }
- }
- /****************
- void Confirm() //備用函數(shù)
- {
- if(StaSysterm!=NormalRun && StaSysterm!=UrgentRun)
- {
- GreenTime=BackupGreen;
- RedTime=BackupRed;
- StaSysterm=NormalRun;
- }
- }
- **************/
- void UrgentModel() //緊急模式
- {
- if(StaSysterm==NormalRun)
- {
- StaSysterm=UrgentRun;
- CopyLight=P2; //對(duì)數(shù)據(jù)進(jìn)行備份
- P0=0XFF;
- we=1;
- we=0;
- }
- else if(StaSysterm==UrgentRun)
- {
- StaSysterm=NormalRun;
- P2=CopyLight; //恢復(fù)數(shù)據(jù)
- }
- else if(StaSysterm==ResetGreen || StaSysterm==ResetRed)
- {
- StaSysterm=NormalRun;
- GreenTime=BackupGreen;
- RedTime=BackupRed; //重新設(shè)置紅綠燈時(shí)間
- }
- }
復(fù)制代碼
|
|