QQ飞车城邦守护兽怎么进化(QQ飞车城邦守护兽) 韩式盘发简单教程(韩式盘发简单教程图解) 地下城assertion failed错误怎么办(assertion failed怎么解决) 向量相乘坐标公式怎么推算出来的(向量相乘坐标公式) 拉丁舞裙服装怎么画(拉丁舞裙服装怎么画简笔画) 裁决之镰怎么解除(裁决之镰怎么办) 10178什么意思(1017代表什么意思) 如何选择进口婴儿奶粉(如何选择进口婴儿奶粉牌子) EVIDENT与深圳湾实验室举办首届EVIDENT Discovery Center生物成像主题研讨 合肥欢乐岛旅游攻略(合肥欢乐岛旅游攻略路线) 侏儒症的症状及病因(侏儒症的症状) 漂白 护理牙齿如何变白?(漂白牙齿怎么漂白) 波尔多液怎么配制?(波尔多液怎么配制用来防治西瓜枯萎病) tam是什么意思啊(TAM是什么意思) 手把手教你如何用百度网盘下载BT种子文件(百度网盘如何使用种子文件下载) 采访问题怎么写(采访问题) 英雄联盟如何参与MSI半决赛活动(英雄联盟msi比赛赛程) 架立筋图片示意图(架立筋图片) 最右如何添加交友卡(最右怎么看交友卡) 鹅口疮该如何治疗(鹅口疮该如何治疗才能好) 海贼王克比头像(海贼王克比) 怎么在机蜜租一辆特斯拉汽车?(如何租特斯拉) IE浏览器出错崩溃怎么办?(电脑提示ie浏览器崩溃是什么意思) 情人节送男朋友礼物吗(情人节送男朋友礼物) AutoCAD中制作等高线地形图(cad中怎么画等高线地形图) 第二年车险计算方法(第二年车险计算方法怎么算) 神雕侠侣后传第一部(神雕侠侣后传) 不可不学的摄影技巧 七:婴儿摄影技巧(儿童摄影拍摄技巧) 陶瓷密度天平的使用方法及详细操作步骤(陶瓷密度天平的使用方法及详细操作步骤图片) 浙江杭州同济科技职业学院(杭州同济科技职业学院) 蛋挞的家常做法(葡式蛋挞的家常做法) 标准文献检索渠道(国内的标准文献检索的主要途径不包括( )) 魔兽世界海加尔山之战现在的入口在哪?(魔兽世界海加尔山在哪里) 挞伐的意思(挞伐) 网易企业邮箱客户端设置:[1]POP设置 Win7(网易邮箱pop服务器设置) 手机进水怎么处理最好?(手机进水怎么处理最好用) 价外税名词解释(价外税) 爷爷的爷爷的爸爸怎么叫(爷爷的爷爷的爸爸怎么叫的) 融商环球平台PC端MT5怎么安装与登录(融商环球MT5) 重庆市体彩中心服务大厅怎么样(重庆市体彩中心) 怎么做凉拌莴笋丝(怎么做凉拌莴笋丝视频) 易烊千玺TFBOYS同款手链(易烊千玺项链同款) 如何去掉磁盘被写保护?(怎么去掉磁盘被写保护) 圈养羊怎么养#校园分享#(圈养羊怎么养视频) 制订和制定有什么区别呢(制订和制定有什么区别) 胃疼怎么办 胃疼怎样快速止疼(胃一直疼怎么快速止疼) 动力臂和阻力臂的画法(动力臂) 《小小部队》攻略:打开任务地图(小兵经验区) 打女友犯法吗(打女友屁股) 电话会议怎么开(电视电话会议怎么开)
您的位置:首页 >百科精选 >

51单片机C语言教程错误(51单片机c语言教程)

导读 关于51单片机C语言教程错误,51单片机c语言教程这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一起来看看吧!1、=

关于51单片机C语言教程错误,51单片机c语言教程这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一起来看看吧!

1、======================================/*按键可以调整当时时间2、按键可以调节定时时间3、定时时间到继电器吸合*8位数码管显示 时间格式格式 12-08-00 标示12点08分00秒S1 用于小时 加1操作 S2 用于小时减1操作S3 用于分钟 加1操作S4 用于分钟减1操作*//*----------------------------------------------- 名称:普通时钟 日期:2009.5 修改:无 内容:------------------------------------------------*/#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit KEY1=P3^0; //定义端口参数sbit KEY2=P3^1;sbit KEY3=P3^2;sbit KEY4=P3^3;sbit LED=P1^2; //定义指示灯参数code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 0-9unsigned char StrTab[8]; //定义缓冲区unsigned char minute=30,hour=12,second; //定义并且初始化值 12:30:00/******************************************************************//* 延时函数 *//******************************************************************/void delay(unsigned int cnt){ while(--cnt);}/******************************************************************//* 显示处理函数 *//******************************************************************/void Displaypro(void){ StrTab[0]=tab[hour/10]; //显示小时 StrTab[1]=tab[hour%10]; StrTab[2]=0x40; //显示"-" StrTab[3]=tab[minute/10]; //显示分钟 StrTab[4]=tab[minute%10]; StrTab[5]=0x40; //显示"-" StrTab[6]=tab[second/10]; //显示秒 StrTab[7]=tab[second%10]; }/******************************************************************//* 主函数 *//******************************************************************/main()//主函数{ TMOD |=0x01;//定时器0 10ms in 12M crystal 用于计时 TH0=0xd8; //初值 TL0=0xf0; ET0=1; TR0=1; TMOD |=0x10; //定时器1用于动态扫描 TH1=0xF8; //初值 TL1=0xf0; ET1=1; TR1=1; EA =1; Displaypro(); //调用显示处理while(1)//主循环 { if(!KEY1) //按键1去抖以及动作 { delay(10000); if(!KEY1) { hour++;if(hour==24)hour=0; //正常时间 小时 加1 Displaypro(); } } if(!KEY2) //按键2去抖以及动作 { delay(10000); if(!KEY2) { hour--;if(hour==255)hour=23; //正常时间 小时减1 Displaypro(); } } if(!KEY3) //按键去抖以及动作 { delay(10000); if(!KEY3) { minute++;if(minute==60)minute=0;//分加1 Displaypro(); } } if(!KEY4) //按键去抖以及动作 { delay(10000); if(!KEY4) { minute--;if(minute==255)minute=59; //分减1 Displaypro(); } } }}/******************************************************************//* 定时器1中断 *//******************************************************************/void time1_isr(void) interrupt 3 using 0//定时器1用来动态扫描{ static unsigned char num; TH1=0xF8;//重入初值 TL1=0xf0; switch (num){ case 0:P2=0;P0=StrTab[num];break; //分别调用缓冲区的值进行扫描 case 1:P2=1;P0=StrTab[num];break; case 2:P2=2;P0=StrTab[num];break; case 3:P2=3;P0=StrTab[num];break; case 4:P2=4;P0=StrTab[num];break; case 5:P2=5;P0=StrTab[num];break; case 6:P2=6;P0=StrTab[num];break; case 7:P2=7;P0=StrTab[num];break; default:break;}num++; //扫描8次。

2、使用8个数码管if(num==8) num=0;}/******************************************************************//* 定时器0中断 *//******************************************************************/void tim(void) interrupt 1 using 1{static unsigned char count;//定义内部静态变量TH0=0xd8; //重新赋值TL0=0xf0;count++; switch (count) { case 0: case 20: case 40: case 60: case 80:Displaypro(); //隔一定时间调用显示处理 break; case 50:P1=~P1; //半秒 LED闪烁 break; default:break; }if (count==100) { count=0; second++; //秒加1 if(second==60) { second=0; minute++; //分加1 if(minute==60) { minute=0; hour++; //时加1 if(hour==24) hour=0; } } } }==============================================。

本文分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!