云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 以作息时间控制为主的多功能任务设计

以作息时间控制为主的多功能任务设计

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 2:48:22

#include //52单片机头文件,声明各寄存器等 #include

#define uint unsigned int //宏定义符号,类似于替换 #define uchar unsigned char

sbit key1=P3^4; //宏定义位,也即IO口定义 sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; sbit fm=P2^3; sbit dula=P2^6; sbit wela=P2^7; sbit bear=P2^3;

uint i; //定义各符号 uchar aa,bb,numdu,numwe;

uchar sec1,min1,hour1,year1,mon1,day1,temp1,temp2,sec2,min2,hour2; //主功能符号定义 uchar code tablew[]={0x71,0x6d,0x5b,0x3f, 0x6d,0x5b,0x06, };

uchar code tablewe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

uchar code table[]={0x3f,0x06,0x5b,0x4f, //主功能数组定义 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e, 0x79,0x71};

void w1(); //子函数声明 void w2(); void w3(); void w4();

void delayms(uint xms); void timer0();

void delay(uint z); //主功能子函数声明 void init();

void display(uchar hour,uchar min,uchar sec); void keyscan(); void alarm(); void time1();

/*--------------------------------------

主函数

----------------------------------------*/

void main() { key1=1; key2=1; key3=1; key4=1; while(1) { while(!key1)w1(); while(!key2)w2(); while(!key3)w3(); while(!key4)w4(); } }

/*-------------------------------------- 按键控制蜂鸣器过程 ----------------------------------------*/ void w1() { if(!key1) {

delayms(300); if(key1) { fm=!fm; } } }

/*-------------------------------------- 按键控制流水灯过程 ----------------------------------------*/ void w2() { loop1:P1=0xff; if(!key2) { delayms(300); if(key2)

//延时防抖,松手检测

{

aa=0xfe; while(1) { P1=aa;

//赋初值11111110 //大循环

delayms(100); //延时500毫秒 aa=_crol_(aa,1); //将aa循环左移1位后再赋给aa //相应的cror是循环右移一位 if(!key2) { delayms(300); if(key2) goto loop1; } } } } }

/*-------------------------------------- 按键控制数码管过程 ----------------------------------------*/ void w3() {

loop2:wela=1; P0=0xff; if(!key3) { delayms(300); if(key3) { numdu=0; numwe=0; while(1) {

numdu++; if(numdu==7) numdu=1; dula=1; P0=tablew[numdu]; dula=0; wela=1; P0=tablewe[numwe]; //开段锁存器 //送段码 //锁存段码 //开位锁存器 //送位码

wela=0; //锁存位码 numwe++; if(numwe==6) numwe=0; delayms(5); if(!key3) { delayms(300); if(key3) goto loop2; } } } } }

/*--------------------------------------

按键控制作息时间过程 ----------------------------------------*/ void w4() { if(!key4) { delayms(300); if(key4) { init(); //主功能主程序 while(1) { keyscan(); alarm(); } } } }

/*------------------------------------------

延时函数(用于按键,蜂鸣器,流水灯等的延时) ------------------------------------------*/ void delayms(uint xms) { uint i,j;

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

#include //52单片机头文件,声明各寄存器等 #include #define uint unsigned int //宏定义符号,类似于替换 #define uchar unsigned char sbit key1=P3^4; //宏定义位,也即IO口定义 sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; sbit fm=P2^3; sbit dula=P2^6; sbit wela=P2^7; sbit bear=P2^3; uint i;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com