独立按键实验
2021/12/9 23:17:41
本文主要是介绍独立按键实验,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
任务
用数码管的后三位显示一个十进制数,变化范围为000~255,
开始时显示为255,
每按下S2键一次,数值加5;
每按下S3键一次,数值减5;
每按下S4键一次,数值回到255;
按下S5键一次,利用定时器T1功能使数值开始自动每秒加5,再次按下S5键,数值停止自动加5,并回到255。
-
实验原理图
-
实验代码
#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; void delayms(uint); uchar numt0,num,n; void display(uchar numdis){ uchar bai,shi,ge; bai=numdis/100; shi=numdis%100/10; ge=numdis%10; P0=0x00; dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xdf; //位选数据 wela=0; delayms(5); P0=0x00; dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xbf; wela=0; delayms(5); P0=0x00; dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0x7f; wela=0; delayms(5); } void delayms(uint xms){ uint i,j; for(i=xms;i>0;i--){ for(j=110;j>0;j--); } } void init(){ TMOD=0x11; //设置定时器1为工作方式1(0000 0001) TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1; //开总中断 ET1=1; //开启定时器0中断 num=255; } void keyscan(){ if(key1==0){ delayms(10); if(key1==0){ num=num+5; if(num==256){ num=0; } while(!key1); //等待释放按键 } } if(key2==0){ delayms(10); if(key2==0){ if(num==0){ num=255; } num=num-5; while(!key2); //等待释放按键 } } if(key3==0){ delayms(10); if(key3==0){ num=255; while(!key3); //等待释放按键 } } if(key4==0){ delayms(10); if(key4==0){ while(!key4); //等待释放按键 if(TR1){ num=255; } TR1=~TR1; } } } void main(){ init(); while(1){ keyscan(); display(num); } } void T0_time() interrupt 3{ TH1=(65536-45872)/256; TL1=(65536-45872)%256; numt0++; if(numt0==20){ numt0=0; num=num+5; if(num==256){ num=0; } } }
-
实验演示
独立按键实验演示_哔哩哔哩_bilibili
这篇关于独立按键实验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南