程序見附件:
交通燈程序.rar
(54.29 KB, 下載次數: 22)
2016-1-25 21:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
以下為部分程序預覽:
- #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) //數碼管動態顯示程序
- {
- P0=0XFF;
- we=1;
- we=0;
- P0=seg_du[number];
- du=1;
- du=0;
- P0=seg_we[wei];
- we=1;
- we=0;
- }
- void UrgentScan() //緊急情況運行掃描
- {
- Seg_Display(BackupGreen/10,0);
- Seg_Display(BackupGreen%10,1);
- Seg_Display(BackupRed/10,2);
- Seg_Display(BackupRed%10,3);
- }
- void SetModel() //紅綠燈設置模式
- {
- if(StaSysterm==NormalRun)
- {
- StaSysterm=ResetGreen; //狀態機
- BackupGreen=GreenTime;
- BackupRed=RedTime;
- CopyLight=P2; //對數據進行備份
- P2=0X09;
- }
- else if(StaSysterm==ResetGreen)
- {
- StaSysterm=ResetRed;
- }
- else if(StaSysterm==ResetRed)
- {
- StaSysterm=NormalRun;
- P2=CopyLight; //恢復數據
- }
- }
- void ADDTime() //紅綠燈時間加
- {
- if(StaSysterm==ResetGreen)
- {
- BackupGreen++;
- if(BackupGreen>=BackupRed) BackupGreen=BackupRed;
- }
- else if(StaSysterm==ResetRed)
- {
- BackupRed++;
- }
- }
- void SUBTime() //紅綠燈時間減
- {
- if(StaSysterm==ResetGreen)
- {
- BackupGreen--;
-
- }
- else if(StaSysterm==ResetRed)
- {
- BackupRed--;
- if(BackupGreen>=BackupRed) BackupRed=BackupGreen;
- }
- }
- /****************
- void Confirm() //備用函數
- {
- if(StaSysterm!=NormalRun && StaSysterm!=UrgentRun)
- {
- GreenTime=BackupGreen;
- RedTime=BackupRed;
- StaSysterm=NormalRun;
- }
- }
- **************/
- void UrgentModel() //緊急模式
- {
- if(StaSysterm==NormalRun)
- {
- StaSysterm=UrgentRun;
- CopyLight=P2; //對數據進行備份
- P0=0XFF;
- we=1;
- we=0;
- }
- else if(StaSysterm==UrgentRun)
- {
- StaSysterm=NormalRun;
- P2=CopyLight; //恢復數據
- }
- else if(StaSysterm==ResetGreen || StaSysterm==ResetRed)
- {
- StaSysterm=NormalRun;
- GreenTime=BackupGreen;
- RedTime=BackupRed; //重新設置紅綠燈時間
- }
- }
復制代碼
|