⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.c

📁 这里有很多我自己做的凌阳单片机源程序
💻 C
字号:
//正确的程序,通过k1,k2,k3改变数码管上显示的数据,当改变的时候效果不错
#include<spce061a_chf.h>
unsigned int count=0;
extern showval[4];
void key_scan(void);//按键扫描函数
void main()
{
	Set_IOA_Dir(0x0f00);//低4位为高电平输出,送出位选码
	Set_IOA_Attrib(0x0f00);
	Set_IOA_Data(0x0f00);
	
	Set_IOB_Dir(0x00ff);//低8位为高电平输出,送出段码
	Set_IOB_Attrib(0x00ff);
	Set_IOB_Data(0x00ff);
	
	asm("int off");
	Set_TimeBase(0x000c);
	Set_INT_Ctrl(0x0001);
	asm("int irq");
	
	while(1)
	{
		Watchdog_Clear();//当利用清看门狗函数时候没有参数
		
	}
}
//按键扫描函数
void key_scan(void)
{
	unsigned int keyin=0;
	Set_IOA_Dir(0x0f00);//低4位为高电平输出,送出位选码(由于是作为输入口,执行这句后,IOA全部变成默认的高电平,所以此时的Data=0xffff,但是Buffer里的没有变
	Set_IOA_Attrib(0x0f00);
	Set_IOA_Data(0x0f00);//执行完这句Buffer的内容才被改变
	
	keyin=Get_IOA_Data()&0x000f;
	if(keyin)
	{	
		//keyin=Get_IOA_Data();
		while((Get_IOA_Data()&0x000f));
		switch(keyin)//case的情况当为字符的时候要用到单引号,若为数字的时候不用0
		{case 0x0001:{showval[3]+=1;
				if(showval[3]==10)
				{
					showval[3]=0;
					showval[2]+=1;
				}
				break;
				}//IOA0-K0,显示值加1
				
			
		 case 0x0002: {showval[2]+=1;
	 				if(showval[2]==10)
				{
					showval[2]=0;
					showval[1]+=1;
				}
	 				break;
				 }//IOA1-K1,显示值加10
	 		
	 	case 0x0004: {showval[1]+=1;
	 			if(showval[1]==10)
				{
					showval[1]=0;
					showval[0]+=1;
				}
	 			break;
	 			}//IOA2-K2,显示值加100
	 		
	 	default:break;
		}
	}
	
}

			
 	
	
	
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -