单片机:按键(使用中断)控制数码管的数字加减(c语言实现)

本实验的目的:

使用中断实现通过编号为8和C的按键控制数码管数字的加减,加至15之后再循环到0,减到0之后保持0不变。

#include <reg52.h>


sbit WEI=P2^7;
sbit DUAN=P2^6;

void delay(int t)
{
    while(t--);
}
unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码



unsigned char KeyScan(void)  //键盘扫描函数,使用行列逐级扫描法
{
 unsigned char Val;
 P3=0xf0;//高四位置高,低四位拉低
 if(P3!=0xf0)//表示有按键按下
   {
    //DelayMs(10);  //去抖
	if(P3!=0xf0)
	  {           //表示有按键按下
    	P3=0xfe; //检测第一行
		if(P3!=0xfe)
	  		{
			  Val=P3&0xf0;
	  	      Val+=0x0e;
	  		  while(P3!=0xfe);
		
			  while(P3!=0xfe); 
	     	  return Val;
	        }
        P3=0xfd; //检测第二行
		if(P3!=0xfd)
	  		{
			  Val=P3&0xf0;
	  	      Val+=0x0d;
	  		  while(P3!=0xfd);
		
			
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值