基于arm7芯片lpc2138的十六进制转换10进制显示程序

#include 

void delay(int x)
{
	while(--x);
}

void DsipInit()
{
	PINSEL0= 0;
		PINSEL1|= 0x0<<6;
	IO0DIR  |= 0xffff<<7;
	IO0CLR =  0xffff<<7;			  

		
}
void Display(unsigned int val)
{
int k, m;
	IO0CLR =  0xffff<<7;
	 k=((val&(0x0f0))>>4)*16+((val&(0xf00))>>8)*16*16+(val&(0x00f));//16进制转换为10进制数,注意往右移位,
	 m=(k%10)|((k/10%10)<<4)|((k/100)<<8);//取出十进制数的各个位并且组合成2进制
    IO0SET = m<<7;
}

int main()
{
	    
	unsigned short 	ADCData;
		 DsipInit();
	 
//	PINSEL1 = (PINSEL1 & ~(0x3<<22)) | 0x1<<22;     //设置引脚连接模块
//
//	AD0CR =  (0x01 << 27)  |                // EDGE	  硬件触发边沿设置
//	        (0x0 << 24)  |                // START	  AD启动设置
//	        (0x00 << 22)  |                // TEST1:0  测试模式设置
//	        (0x01 << 21)  |                // PDN	   AD部件上电设置
//	        (0 << 17)|                // CLKS	   BURST模式精度
//	        (0x00 << 16)  |                // BUREST  BURST模式禁止
//	        (2 <<  8) |    // CLKDIV  ADC部件时钟
//	        (0x01 << 0);                   // SEL	  转换通道选择
//
//   for(;;){
//   	AD0CR |= (1 << 24);		// START	  AD启动设置,软件启动一次AD转换
//	while((AD0DR & 0x80000000) != 0);
//	ADCData = (AD0DR >> 6) & 0x3FF;
    ADCData=0x64;

	   Display( ADCData);
	 // Display(result);
	 
	  delay(1000000);
  // }
return 0;
}
基于arm7芯片lpc2138的十六进制转换10进制显示程序_第1张图片

你可能感兴趣的:(arm7数码管16转10显示)