C语言课程设计报告-附录2

更新时间:2023-10-08 04:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

重庆科技学院C语言程序设计课程设计报告 附录2源程序

附录2源程序

#include //指示灯 sbit D0=P2^3; sbit D1=P2^4; sbit D2=P2^5; sbit D3=P2^6;

sbit Mode=P2^0; sbit Up =P2^1; sbit Down=P2^2; sbit Ent =P3^2; //蜂鸣器 sbit Beep=P1^4;

sbit LED0=P1^0; sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3;

unsigned char code Duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0x77,0x76,0x55,0x39};

unsigned char Disp[4]={1,2,3,4}; //与时间有关的变量

unsigned char Hour=12,Min=0,Sec=0; unsigned char Menu=0;

unsigned char AHour=12,AMin=10,Alarm=0; //闹钟开关 unsigned int MB=0,DMB=0,AlarmDMB=0;

unsigned char FlagKeyDown=0,FlagTimer=0,FlagBeep=0,FlagMB=0,FlagDMB=0;

void UpdateDisp(void); void TimerDeal(void); void KeyDeal(void); void AlarmDeal(void);

12

重庆科技学院C语言程序设计课程设计报告 附录2源程序

//主函数 main(void) { }

13

TMOD= 0x01; TH0 = 0xEE; TL0 = 0x00; TR0 = 1; ET0 = 1; EA = 1; while(1) { }

UpdateDisp(); if(FlagKeyDown==1) { }

if(FlagTimer==1) { }

switch(Menu) { }

case 0: D0=0,D1=1,D2=1,D3=1; break; case 1: D0=1,D1=0,D2=1,D3=1; break; case 2: D0=1,D1=1,D2=0,D3=1; break; case 3: D0=1,D1=1,D2=1,D3=0; break; default: D0=1,D1=1,D2=1,D3=1; FlagTimer=0; TimerDeal(); AlarmDeal(); FlagKeyDown=0; KeyDeal();

重庆科技学院C语言程序设计课程设计报告 附录2源程序

//中断函数,5ms

void Timer0(void)interrupt 1 { static unsigned char Bit=0,Cnt=0,FlagFlash=0,Bite=0;

static unsigned int CntKey=0,CntTimer=0,CntMB=0,CntDMB=0,Count=0;

TH0 = 0xEE; TL0 = 0x00; //蜂鸣器

if(FlagBeep==1) Beep=!Beep;

else

Beep=1;

//1s计时

if(++CntTimer>200) { CntTimer=0; FlagTimer=1;

}

//倒计时蜂鸣5s

if(FlagBeep==1 && Menu==2 ) { if(++Count>1000) {

Count=0; FlagBeep=0; AlarmDMB=0;

}

}

//100ms计时 if(FlagMB==1) { if(++CntMB>20)

{ CntMB=0;

if(MB<9999)

MB+=1;

14

重庆科技学院C语言程序设计课程设计报告 附录2源程序

}

}

//倒计时 if(FlagDMB==1) { }

//按键动态扫描

if(Mode==0||Up==0||Down==0||Ent==0) {

if(++CntKey>20) {

CntKey=0; FlagKeyDown=1;

//有键按下 //消抖处理,

if(++CntDMB>200) { }

CntDMB=0; if(DMB>0)

DMB-=1;

}

}

else CntKey=0; //数码管显示

if(Menu==5 || Menu==4) {

P1 = P1|0x0F;

P0 = Duan[Disp[Bite]]; if(CntTimer<100) {

switch(Bite)

{

case 0: LED0=0; break; case 1: LED1=0; break; case 2: LED2=0; break; case 3: LED3=0; break;

15

重庆科技学院C语言程序设计课程设计报告 附录2源程序

}

}

}

if(CntTimer>=100) {

if(Menu==4) {

}

if(Menu==5) }

Bite=0;

switch(Bite) { }

case 0: LED0=0;break; case 1: LED1=0; break; case 2: LED2=1; break; case 3: LED3=1; break; switch(Bite) { }

case 0: LED0=1; break; case 1: LED1=1; break; case 2: LED2=0; break; case 3: LED3=0; break;

{

}

if(++Bite>3)

else {

P1 = P1|0x0F; P0 = Duan[Disp[Bit]]; switch(Bit) {

case 0: LED0=0; break;

16

本文来源:https://www.bwwdw.com/article/jvud.html

Top