第八章 函数进阶和按键(2)
来源:互联网 发布:煲机软件 编辑:程序博客网 时间:2024/06/05 13:21
独立按键的综合应用,让其中一个数码管点亮,S2数字加一,S3数字减一,S4归零,S5从当前位置开始计时。
#include <reg52.h>sbit KeyS2=P3^4;sbit KeyS3=P3^5;sbit KeyS4=P3^6;sbit KeyS5=P3^7;sbit d1=P1^0;sbit dula=P2^6;sbit wela=P2^7;char flag=0;static int cnt_time=0;unsigned char code LedChar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char num=0;void delay();void main(){ wela=1; P0=0xdf; wela=0; dula=1; P0=LedChar[num]; dula=0; P3=0xff; TMOD=0x11; TH0=0xb8; TL0=0x00; TH1=0xdc; TL1=0x00; TR0=1; EA=1; ET0=1; ET1=1; while(1) { switch(flag) { case 1: flag=0;num++;if(num>=10) num=0;break; case 2: flag=0;if(num>0) num--;if(num<=0) num=9;break; case 3: flag=0;num=0;break; case 4: TR1=1; if(cnt_time>=100){cnt_time=0; num++;if(num>=10) num=0;}break; default:break; } dula=1;P0=LedChar[num];dula=0; }}void Key_Test() interrupt 1{ static unsigned char cnt; TH0=0xb8; TL0=0x00; cnt++; if(KeyS2==0) { if(cnt>=10) { cnt=0; if(KeyS2==0) { flag=1; } } } if(KeyS3==0) { if(cnt>=10) { cnt=0; if(KeyS3==0) { flag=2; } } } if(KeyS4==0) { if(cnt>=10) { cnt=0; if(KeyS4==0) { flag=3; } } } if(KeyS5==0) { if(cnt>=10) { cnt=0; if(KeyS5==0) { flag=4; } } }}void T1_Timer() interrupt 3{ TH1=0xdc; TL1=0x00; cnt_time++;}
阅读全文
0 0
- 第八章 函数进阶和按键(2)
- 第八章 函数进阶和按键(1)
- 第八章--函数进阶
- PHP进阶(第八弹:函数)
- 第八章 函数探幽(2)
- 第八章 函数和闭包
- UI进阶第八发:Suege和Modal
- C++ Primer Plus学习:第八章 函数探幽(2)
- JavaScript权威指南:函数(第八章)
- 第八章 函数探幽(1)
- 第八章 函数探幽
- 第八章 函数探幽
- 第八章:函数
- 第八周分段函数求值(2)
- 第八章(2)
- 第八章(二) exec系列函数 和 进程的几个ID的认识
- 第八章 Libgdx输入处理(2)配置和查询
- 第八章:虚函数笔记(虚函数碉堡了)
- C#发送QQ邮件和GMAIL邮件
- java工程师面试技巧
- 自己的web项目导入eclipse中,jsp页面里的内容却报错时
- springMVC学习笔记
- java的jdk动态代理简单封装
- 第八章 函数进阶和按键(2)
- Mysql 实时数据同步到 kafka、hdfs
- CDockablePane使用心得
- 让自己的网站使用QQ发邮件(asp.net)
- 在android studio中导入cocos2dx中的android studio项目
- 网易牛客网2018内推编程题
- java中sqrt函数的详解
- linux线程同步---条件变量
- 通过IGroupPolicyObject实现修改某个组策略