独立键盘检测 proteus仿真小实验
实验: 用数码管的前两位显示一个十进制数,变化范围为00-59,开始时显示00。每按下S2键一次数值加一;每按下S3键一次数值减一;每按下S4键一次数值归零;按下S5键一次,利用定时器功能使数值开始自动每秒加一,再次按下S5键数值停止自动加一,保持显示原数。
程序:
#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,0x5c,0x79,0x71};
void delayms(uint x);
uchar numt0,num;//num0为中断次数
uint i,j;
void display(uchar numdis)
{
uchar shi,ge;
shi=numdis/10;
ge=numdis%10;
dula=1;
P0=table[shi];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(500);
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(500);
}
void delayms(uint x)
{
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
}
void keyscan()
{
if(key1==0)
{
delayms(40);
if(key1==0)
{
num++;
if(num==60)
num=0;
while(!key1);
}
}
if(key2==0)
{
delayms(40);
if(key2==0)
{
if(num==0)
num=60;
num--;
while(!key2);
}
}
if(key3==0)
{
delayms(40);
if(key3==0)
{
num=0;
while(!key3);
}
}
if(key4==0)
{
delayms(40);
if(key4==0)
{
while(!key4);
TR0=~TR0;
}
}
}
void main()
{
init();
while(1)
{
keyscan();
display(num);
}
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
numt0++;
if(numt0==20)
{
numt0=0;
num++;
if(num==60)
num=0;
}
}
独立键盘检测 proteus仿真小实验相关推荐
- proteus矩阵按键计算机,矩阵键盘检测Proteus仿真电路图这里将16个按键按照4*4排列...
该按钮可以说是51单片机项目开发的重要组成部分,是51单片机IO端口输入的重要方式.我们可以通过按下按钮来控制微控制器执行相应的程序,以获得所需的效果. 51单片机的键输入主要有两种.一种是独立密钥. ...
- 蓝桥杯实验4--按键之独立键盘(proteus仿真)
开始试试按键的部分 首先说一下什么是按键 按键分为按结构可分为触点式和无触点式两类.开发板上用的是触点式的按键.按键在接口上分类可分为编码键盘和非编码键盘.按键通常使用机械式触点式按键开关,但是由于机 ...
- 基于stm32单片机有害气体监测检测Proteus仿真(仿真+源码+全套资料)
资料编号:097 检测当前的有害气体浓度,LCD1602显示,并且可以自动打开关闭风扇,也可以通过手动按键打开关闭风扇通风,全套资料齐全,具体功能请看下面演示视频 97-基于stm32单片机有害气体监 ...
- Proteus仿真小闹钟_C51
Proteus仿真小闹钟_C51 简介 介绍 功能 演示 注意问题 多文件结构 结构体 AT24C02 仿真时序 主要代码 简介 这个小假期被作业支配了,最近这段时间也在忙其他东西,没时间更新博客了. ...
- 基于stm32单片机的甲醛气体检测proteus仿真(源码+仿真+参考论文)
资料编号:056 检测当前的甲醛气体浓度,LCD1602显示,并且可以自动打开关闭风扇,也可以通过手动按键打开关闭风扇通风,全套资料齐全,具体功能请看下方演示视频 56-基于stm32单片机的甲醛气体 ...
- 51单片机(五)独立键盘检测与矩阵键盘检测
独立键盘检测与矩阵键盘检测 一.独立键盘检测 1.工作原理 2.举例 2.1 位定义 2.2 数码管显示 3.3 按键 2.4 中断服务函数 2.5 完整程序 二.矩阵键盘检测 1.工作原理 2.程序 ...
- 基于stm32单片机有害气体监测检测Proteus仿真
资料编号:097 下面是相关功能视频演示: 97-基于stm32单片机有害气体监测检测Proteus仿真(仿真+源码+全套资料) 功能介绍:检测当前的有害气体浓度,LCD1602显示,并且可以自动 ...
- VAE逻辑整理及VAE在异常检测中的小实验(附代码)
VAE逻辑整理及VAE在异常检测中的小实验(附代码) Variance和control variate 两种常见的分类器 相应代码 Minst数据集的训练和重构 KDD99数据 本文主要讲解一下整个 ...
- 基于51单片机多路温度检测proteus仿真 ds18b20
本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...
- 1430基于51单片机的管道压力检测及泄漏检测Proteus仿真
[前言] hello 大家好,今天给大家讲一讲基于51单片机的管道压力检测及泄漏检测Proteus仿真. 该项目的功能如下: 1.LCD1602液晶实时显示当前始端和末端压力,压力阈值 2.按键启动/ ...
最新文章
- 注意力机制Q K V
- 《Netty 实战》Netty In Action中文版 第2章——你的第一款Netty应用程序(一)
- Definition of BPS (基点)
- Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数
- Eclipse使用TODO标签管理任务及自定义TODO标签
- 【Flink】Flink Max 和 MaxBy的区别
- [网络收集]LINUX磁盘挂载mount和共享
- CC2540开发板学习笔记(五)——串口通信
- android中常用的宏,iOS-开发中常用的宏有哪些?
- Android面试题整理
- tomcat内存溢出的解决方法
- 写一个VSCode插件
- 以读者角度走进RFID打造的智慧图书馆
- sendcloud php 群发,laravel5.5 使用sendcloud发送邮件
- MySQL被黑客攻击勒索5000美元,幸好有备份
- AI医学诊断基础-CT扫描、核磁共振成像(MRI)、拍X光、拍胸片、做B超/彩超等常规检查的介绍、原理、医学影像示例(持续跟新和答疑。。。)
- 咸鱼ESP32实例—RTC
- Win32之ShowWindow
- Mybatis源码基础解析
- hive之反斜杠导致Unicode编码字段里的中文无法正常显示
热门文章
- DCM protocol Diagnostic session
- Floating IP
- 罗马盘、大力盘、大圣盘等搜索网站,简单绕过付费
- php dingo和jwt,Laravel5.5+dingo+JWT 开发后台 API
- matlab里det函数的神奇bug
- lua菜鸟教程_lua经典学习教程.pdf
- backtrace和backtrace_symbols函数原理解析
- LeetCode | 521. Longest Uncommon Subsequence I
- DTL常用过滤器详解
- 合同计算问题的计算公式与计算方法