用三个独立按键实现按下第一个时计时停止,按下第二个时计时开始,按下第三个时计数值清零从头开始,秒表设计!!!!
2015-09-06 16:53
573 查看
#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit key1=P3^5; sbit key2=P3^4; sbit key3=P3^3; sbit key4=P3^2; uchar code tab[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; uchar temp,bai,shi,ge,aa,flag,flag1,t0,t1; uint shu; void display(uchar bai,uchar shi,uchar ge); void init(); void delay(uint z); void main() { init(); while(1) { display(bai,shi,ge); if(key1==0) { delay(5); if(key1==0) TR0=0; } if(key2==0) { TR0=1; display(bai,shi,ge); } if(key3==0) { shu=0; display(bai,shi,ge); } } } void init() { shu=0; TMOD=0x01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; } void time0() interrupt 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; t0++; if(t0==1) { t0=0; bai=shu/100; shi=shu%100/10; ge=shu%10; shu++; if(shu==1000) shu=0; } } void display(uchar bai,uchar shi,uchar ge) { wela=1; P2=0xfe; wela=0; dula=1; P0=tab[bai]; dula=0; delay(5); wela=1; P2=0xfd; wela=0; dula=1; P0=tab[shi]; dula=0; delay(5); wela=1; P2=0xfb; wela=0; dula=1; P0=tab[ge]; dula=0; delay(5); } void delay(uint z) { uint x,y; for(x=0;x<z;x++) for(y=0;y<110;y++); }这个主要是用if语句控制的!废话不多说了没遇到啥问题,还是自己有些马虎了
相关文章推荐
- 博客用户莫名奇妙被删掉了,现在用qq登录来记录学习笔记
- Java易犯错误(转)
- PHP开发规范PSR
- Socket连接与HTTP连接
- ios开发通知与消息机制
- SCHED_DEALINE调度类分析(二)
- 第7周工作周报
- C语言字符串操作常用库函数
- C语言字符串操作常用库函数
- Java Attach API
- 纯javascript代码编写计算器程序
- Ubuntu 下安装Mysql 需要注意的地方.
- json之注意
- Linux进程实时IO监控iotop命令详解
- SQL按日期Datatime来比较大小
- Java 时间 当前时间得到这周的时间
- ios开发——手势
- 有用的sql语句积累
- Linux中的无线架构
- HDU 4967(Handling the Past-线段树维护可持久化栈操作)