[組み込みシステム】重要な問題とキーコードを試します

免責事項:この記事はブロガーオリジナル記事です。再現ブロガーの承認を連絡してください。ブロガー公共マイクロチャネル番号] [部門知るのとキャンパスを行います。https://blog.csdn.net/cxh_1231/article/details/89716121

主な質問1:

質問:仮定する4 番目が導か対応する下部からの光を4 のビットバイナリ0,1,2,3 ライトは、位置1 、OFFは0 ;例4 0100 )の2 ビットが点灯、対応3 0011 )の0,1 光に対応した位置、以降0 あれば完全に破壊された0が完全な明るさに表示され、あなたはサイクル数6、および個々のレジスタ割り当てに割り当てに学習した後。

コード:

#include "s5pc210.h"
#include "uart.h"

/*****************************************************************************
// Function name	: delay
// Description	    : 延时子程序
// Return type		: void
// Argument         : count,延时的数值
*****************************************************************************/
void delay( int count )
{
	int cnt;

	for( count = count; count>0; count--)
		for( cnt = 0; cnt < 1000; cnt++);
}

int main()
{
	uart_init();

	printf("CVT S5PV210 Jtag GpioLed Test...\n");

	volatile int i,j=0;
	GPH3.GPH3CON = 0x11110000;
	int k=0;
	while(1){

		GPH3.GPH3DAT = 0xFF;//全灭
		for(i = 0; i <= 2000000; i++);

		//显示8::1000
		GPH3.GPH3DAT = ~(0x1<<(0+4));
		for(i = 0; i <= 2000000; i++);

		//显示7::0111
		k=0;
		while(1){
			GPH3.GPH3DAT = ~(0x1<<(1+4));
			delay(1);
			GPH3.GPH3DAT = ~(0x1<<(2+4));
			delay(1);
			GPH3.GPH3DAT = ~(0x1<<(3+4));
			delay(1);
			k++;
			if(k==750)
				break;
		}

		//显示0::0000
		GPH3.GPH3DAT = 0xFF;//全灭
		for(i = 0; i <= 2000000; i++);

		//显示9::1001
		k=0;
		while(1){
			GPH3.GPH3DAT = ~(0x1<<(0+4));
			delay(1);
			GPH3.GPH3DAT = ~(0x1<<(3+4));
			delay(1);
			delay(1);
			k++;
			if(k==750)
				break;
		}

		//显示8::1000
		GPH3.GPH3DAT = ~(0x1<<(0+4));
		for(i = 0; i <= 2000000; i++);


		//显示4::0100
		GPH3.GPH3DAT = ~(0x1<<(1+4));
		for(i = 0; i <= 2000000; i++);

		GPH3.GPH3DAT = 0x0;//全亮
		for(i = 0; i <= 2000000; i++);

		//for(j = 0;j<4;j++){
		//	GPH3.GPH3DAT = ~(0x1<<(j+4));
		//	for(i = 0; i <= 1000000; i++);
		//}
	}
	return 0;
}

主な質問2:

問題:

  1. 6サイクルは、あなたの学生番号(最初のショーの後X デジタルであなたの学生番号6の後にショーのx 、このようなあなたの学生番号6が後のようビット、012345 、一番左にあるデジタル表示0 ほとんどを、右側のディスプレイ5 とサイクル

  1. 高度:あなたはまだ最後の6つの学生数(表示012345を

コード: 

#include "s5pc210.h"
#include "uart.h"


#define U8 unsigned char
unsigned char seg7table[16] = {
    /* 0       1       2       3       4       5       6      7*/

    0xc0,   0xf9,   0xa4,   0xb0,   0x99,   0x92,   0x82,   0xf8,

    /* 8       9      A        B       C       D       E      F*/
    0x80,   0x90,   0x88,   0x83,   0xc6,   0xa1,   0x86,   0x8e,
};

/*****************************************************************************
// Function name	: delay
// Description	    : 延时子程序
// Return type		: void
// Argument         : count,延时的数值
*****************************************************************************/
void delay( int count )
{
	int cnt;

	for( count = count; count>0; count--)
		for( cnt = 0; cnt < 1000; cnt++);
}

int main()
{
	uart_init();

	printf("CVT S5PV210 Jtag Seg Test...\n");

	int i,j=0;

	*((U8*) 0x88007000) = 0x00;

	for( ; ; )	{
		*((U8*) 0x88007000) = ~(0x1<<j++);
		*((U8*) 0x88009000) = seg7table[8];
		delay (1000);
		//delay (1);

		*((U8*) 0x88007000) = ~(0x1<<j++);
		*((U8*) 0x88009000) = seg7table[7];
		delay (1000);
		//delay (1);

		*((U8*) 0x88007000) = ~(0x1<<j++);
		*((U8*) 0x88009000) = seg7table[0];
		delay (1000);
		//delay (1);

		*((U8*) 0x88007000) = ~(0x1<<j++);
		*((U8*) 0x88009000) = seg7table[9];
		delay (1000);
		//delay (1);

		*((U8*) 0x88007000) = ~(0x1<<j++);
		*((U8*) 0x88009000) = seg7table[8];
		delay (1000);
		//delay (1);

		*((U8*) 0x88007000) = ~(0x1<<j++);
		*((U8*) 0x88009000) = seg7table[4];
		delay (1000);
		//delay (1);

		j=0;
		int k=0;
		for(;;){

			*((U8*) 0x88007000) = ~(0x1<<j++);
			*((U8*) 0x88009000) = seg7table[8];
			//delay (1000);
			delay (1);
			*((U8*) 0x88007000) = ~(0x1<<j++);
			*((U8*) 0x88009000) = seg7table[7];
			//delay (1000);
			delay (1);
			*((U8*) 0x88007000) = ~(0x1<<j++);
			*((U8*) 0x88009000) = seg7table[0];
			//delay (1000);
			delay (1);
			*((U8*) 0x88007000) = ~(0x1<<j++);
			*((U8*) 0x88009000) = seg7table[9];
			//delay (1000);
			delay (1);
			*((U8*) 0x88007000) = ~(0x1<<j++);
			*((U8*) 0x88009000) = seg7table[8];
			//delay (1000);
			delay (1);
			*((U8*) 0x88007000) = ~(0x1<<j++);
			*((U8*) 0x88009000) = seg7table[4];
			//delay (1500);
			delay (1);
			k++;
			j=0;
			if(k==500){
				break;
			}
		}
		/* 数码管从0到F依次将字符显示出来 */
	    //for(i=0;i<0x10;i++)		{
			/* 查表并输出数据 */
	    //	*((U8*) 0x88009000) = seg7table[i];
	    //	delay (1000);
   		//}

		/* 数码管从F到0依次将字符显示出来 */
		//for(i=0xf;i>=0x0;i--)		{
	   		/* 查表并输出数据 */
	   	//	*((U8*) 0x88009000) = seg7table[i];
	   	//	delay (1000);

	 	//}
	 }
	return 0;
}

主な質問3:

問題:

  1. スペルを小文字に大文字で自分の名前を入力して、あなたの名前のスペルのバリエーションは、大文字小文字を入力してください

コード;

 

#include "s5pc210.h"
#include "uart.h"

/*****************************************************************************
// Function name	: delay
// Description	    : 延时子程序
// Return type		: void
// Argument         : count,延时的数值
*****************************************************************************/
void delay( int count )
{
	int cnt;

	for( count = count; count>0; count--)
		for( cnt = 0; cnt < 1000; cnt++);
}

int main()
{
	uart_init(115200);
	Uart_Select(2);

	printf("姓名全拼大小写互换\n");

	int i=0;
	while(1){
		unsigned char ch = 'a';

		if(i==0){
			printf("a→A\n");//
		}
		if(i==10)//这是因为笔者的姓名只有10个字母,输入完成小写10个后,自动提示输入大写,可换。
			printf("\nA→a\n");
		i++;

		ch = Uart_Getch();


		if(0x41<=ch && ch<= 0x5a ){//小写转换成大写
			Uart_SendByte(ch+32);
		}
		else if(0x61<=ch && ch<= 0x7a ){//大写转换成小写
			Uart_SendByte(ch-32);
		}
		//else if(ch == 0x0d)
		//	Uart_SendByte(0x0a);

		//Uart_SendByte(ch+1);
		//if(ch == 0x0d)
		//	Uart_SendByte(0x0a);
	}
}

結果:

おすすめ

転載: blog.csdn.net/cxh_1231/article/details/89716121