免責事項:この記事はブロガーオリジナル記事です。再現ブロガーの承認を連絡してください。ブロガー公共マイクロチャネル番号] [部門知るのとキャンパスを行います。https://blog.csdn.net/cxh_1231/article/details/89716121
- 説明:これは、コンピュータの技術学校[A]組み込みシステムコースの武漢大学である:実験の重要な問題とキーコード
- >>要約WUTer実験的なコンピュータサイエンスはこちら
- 注意:紙はこの練習が不可欠である知っているZhongjue来ます。
主な質問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:
問題:
- 6サイクルは、あなたの学生番号(最初のショーの後X デジタルであなたの学生番号6の後にショーのx 、このようなあなたの学生番号6が後のようビット、012345 、一番左にあるデジタル表示0 ほとんどを、右側のディスプレイ5 とサイクル
- 高度:あなたはまだ最後の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:
問題:
- スペルを小文字に大文字で自分の名前を入力して、あなたの名前のスペルのバリエーションは、大文字小文字を入力してください
コード;
#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);
}
}
結果: