完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
/*--------函数申明--------*/
void mode_change(); void Init_timer0(void); void Init_Timer1(void); int main() { LCD_Init(); WRITE_Str(1,3,"Hello World",11); WRITE_Str(2,1,"Welcome to Use",14); sys_delays(5); LCD_Clear(); WRITE_Str(1,3,"Choose mode",11); mode_change(); WRITE_Str(2,3,"Tempture:",9); WRITE_COM(0x80+0x40+12); WRITE_DATA(0xdf); WRITE_DATA(0x43); Init_Timer0(); Init_Timer1(); while(1) { while(mode == 1) { if(GD == 0) { sys_delayxms(200); Counter=0; L1=0; L2=1; L3=1; TR1=1; FS=0; while(Flag_5s == 0); TR1=0; FS=1; Flag_5s=0; } if(K1 == 0) { sys_delayxms(10); if(K1 == 0) { mode=1; LCD_Clear(); WRITE_Str(1,7,"Mode:1",6); } } if(K2 == 0) { sys_delayxms(10); if(K2 == 0) { mode=2; LCD_Clear(); WRITE_Str(1,7,"Mode:2",6); } } if(K3 == 0) { sys_delayxms(10); if(K3 == 0) { mode=3; LCD_Clear(); WRITE_Str(1,7,"Mode:3",6); } } } while(mode == 2) { if(GD == 0) { sys_delayxms(200); Counter=0; L1=0; L2=0; L3=1; TR1=1; FS=0; while(Flag_10s == 0); TR1=0; FS=1; Flag_10s=0; } if(K1 == 0) { sys_delayxms(10); if(K1 == 0) { mode=1; LCD_Clear(); WRITE_Str(1,7,"Mode:1",6); } } if(K2 == 0) { sys_delayxms(10); if(K2 == 0) { mode=2; LCD_Clear(); WRITE_Str(1,7,"Mode:2",6); } } if(K3 == 0) { sys_delayxms(10); if(K3 == 0) { mode=3; LCD_Clear(); WRITE_Str(1,7,"Mode:3",6); } } } while(mode == 3) { if(GD == 0) { sys_delayxms(200); Counter=0; L1=0; L2=0; L3=0; TR1=1; FS=0; while(Flag_15s == 0); TR1=0; FS=1; Flag_15s=0; } if(K1 == 0) { sys_delayxms(10); if(K1 == 0) { mode=1; LCD_Clear(); WRITE_Str(1,7,"Mode:1",6); } } if(K2 == 0) { sys_delayxms(10); if(K2 == 0) { mode=2; LCD_Clear(); WRITE_Str(1,7,"Mode:2",6); } } if(K3 == 0) { sys_delayxms(10); if(K3 == 0) { mode=3; LCD_Clear(); WRITE_Str(1,7,"Mode:3",6); } } } } } //模式选择 void mode_change() { mode=0; while(mode == 0) { if(K1 == 0) { sys_delayxms(10); if(K1 == 0) { mode=1; LCD_Clear(); WRITE_Str(1,7,"Mode:1",6); } } if(K2 == 0) { sys_delayxms(10); if(K2 == 0) { mode=2; LCD_Clear(); WRITE_Str(1,7,"Mode:2",6); } } if(K3 == 0) { sys_delayxms(10); if(K3 == 0) { mode=3; LCD_Clear(); WRITE_Str(1,7,"Mode:3",6); } } } } void Init_Timer0(void) { TMOD |= 0x01 ; //使用模式1,16位计数器,使用"|"符号可以在使用多个定时器时不受影响 TH0=(65535-50000)/256; //给定初值 TL0=(65535-50000)%256; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关关闭 } void Timer0_IRS() interrupt 1 { TH0=(65535-60000)/256; //给定初值 TL0=(65535-60000)%256; Tem_Counter++; if(Tem_Counter >= 25) { Tem_Counter=0; ReadTemperature(); WRITE_Num(2,10,Tempture%100/10); WRITE_Num(2,11,Tempture%10); if(Tempture > 30) BZ=0; else BZ=1; } } void Init_Timer1(void) { TMOD |= 0x10 ; //使用模式1,16位计数器,使用"|"符号可以在使用多个定时器时不受影响 TH1=(65535-50000)/256; //给定初值 TL1=(65535-50000)%256; EA=1; //总中断打开 ET1=1; //定时器中断打开 TR1=0; //定时器开关关闭 } void Timer1_IRS() interrupt 3 { TH1=(65535-50000)/256; //给定初值 TL1=(65535-50000)%256; Counter++; if(mode == 1 && Counter == 100) { Counter=0; Flag_5s=1; } if(mode == 2 && Counter == 200) { Counter=0; Flag_10s=1; } if(mode == 3 && Counter == 300) { Counter=0; Flag_15s=1; } } 下面是仿真图 |
|
相关推荐
1个回答
|
|
|
已解决
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1691 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4753 浏览 0 评论
4238 浏览 9 评论
3830 浏览 16 评论
4406 浏览 1 评论
4221浏览 3评论
2389浏览 0评论
3404浏览 0评论
1170浏览 0评论
2854浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 11:14 , Processed in 0.647283 second(s), Total 79, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
746