たなか(仮)/日誌/2014-01-15
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[たなか(仮)/日誌]]
**done [#f0fedcf1]
-2桁拡張
-LCDに文字表示
**code [#d2e2f252]
KEY=0xA000;
HEX=0xA008;
LCD=0xA020;
SW =0xA001;
LED=0xA002;
count=0;
zero=0;
flag1=0;
flag2=0;
int edge[2];
edge[0]=1;
edge[1]=1;
int dec[16];
dec[ 0] = 0x40;
dec[ 1] = 0x79;
dec[ 2] = 0x24;
dec[ 3] = 0x30;
dec[ 4] = 0x19;
dec[ 5] = 0x12;
dec[ 6] = 0x02;
dec[ 7] = 0x58;
dec[ 8] = 0x00;
dec[ 9] = 0x18;
dec[10] = 0x08;
dec[11] = 0x03;
dec[12] = 0x27;
dec[13] = 0x21;
dec[14] = 0x06;
dec[15] = 0x0e;
int digit[2];
digit[0]=0;
digit[1]=0;
int digitmax[2];
digitmax[0]=9;
digitmax[1]=3;
int edgeDetect(){
edge[1]=edge[0];
if(flag1==1)edge[0]=(mem[KEY]&0x4)>>2;
else edge[0]=(mem[KEY]&0x8)>>3;
if(edge[0]==0)if(edge[1]==1) return 1;
return 0;
}
int segDec(int in){
if (in>0xF) {
return dec[in & 0x0F];
} else {
return dec[in] | 0x80;
}
}
int wait1(){
for(j=0; j< 0x2; j++)
for(k=0; k< 0x7FFF; k++);
}
int wait2(){
for(j=0; j< 0x6; j++)
for(k=0; k< 0x7FFF; k++);
}
void countup(){
for (i = 0; i < 2; i++) {
if (digit[i] < digitmax[i]) {
digit[i] = digit[i] + 1;
return;
} else {
digit[i] = 0;
}
}
}
int dispDigit(){
for( i = 0 ; i < 2 ; i++){
mem[HEX+i]=segDec(digit[i]);
}
}
int blinker(){
while(1){
wait2();
dispDigit();
wait2();
mem[HEX]=0xFF;
mem[HEX+1]=0xFF;
}
}
int dispSelect(){
mem[LCD]=0x53;
mem[LCD+1]=0x45;
mem[LCD+2]=0x4c;
mem[LCD+3]=0x45;
mem[LCD+4]=0x43;
mem[LCD+5]=0x54;
mem[LCD+7]=0x53;
mem[LCD+8]=0x57;
mem[LCD+9]=0x49;
mem[LCD+10]=0x54;
mem[LCD+11]=0x43;
mem[LCD+12]=0x48;
mem[LCD+16]=0x4f;
mem[LCD+17]=0x44;
mem[LCD+18]=0x44;
mem[LCD+19]=0x7e;
mem[LCD+20]=0x53;
mem[LCD+21]=0x57;
mem[LCD+22]=0x30;
mem[LCD+24]=0x45;
mem[LCD+25]=0x56;
mem[LCD+26]=0x45;
mem[LCD+27]=0x4e;
mem[LCD+28]=0x7e;
mem[LCD+29]=0x53;
mem[LCD+30]=0x57;
mem[LCD+31]=0x30;
}
int dispPK3(){
/* mem[LCD]=0xBD;
mem[LCD+1]=0xC0;
mem[LCD+2]=0xB0;
mem[LCD+3]=0xC4;
mem[LCD+4]=0x21;*/
mem[LCD+18]=0x50;
mem[LCD+19]=0x55;
mem[LCD+20]=0x53;
mem[LCD+21]=0x48;
mem[LCD+23]=0x4B;
mem[LCD+24]=0x45;
mem[LCD+25]=0x59;
mem[LCD+26]=0x33;
}
int dispPK2(){
mem[LCD+18]=0x50;
mem[LCD+19]=0x55;
mem[LCD+20]=0x53;
mem[LCD+21]=0x48;
mem[LCD+23]=0x4B;
mem[LCD+24]=0x45;
mem[LCD+25]=0x59;
mem[LCD+26]=0x32;
}
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
dispSelect();
if(mem[SW]==0x2){
flag2=1;
mem[LED]=0x2;
}
else if(mem[SW]==0x1){
flag2=0;
mem[LED]=0x1;
}
else mem[LED]=0;
if(edgeDetect()){
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
dispDigit();
dispPK3();
if(edgeDetect()){
flag1=1;
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
dispPK2();
wait1();
dispDigit();
countup();
if(edgeDetect()){
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
wait1();
dispDigit();
countup();
count++;
if(count==51) blinker();
}
}
}
}
}
}
}
終了行:
[[たなか(仮)/日誌]]
**done [#f0fedcf1]
-2桁拡張
-LCDに文字表示
**code [#d2e2f252]
KEY=0xA000;
HEX=0xA008;
LCD=0xA020;
SW =0xA001;
LED=0xA002;
count=0;
zero=0;
flag1=0;
flag2=0;
int edge[2];
edge[0]=1;
edge[1]=1;
int dec[16];
dec[ 0] = 0x40;
dec[ 1] = 0x79;
dec[ 2] = 0x24;
dec[ 3] = 0x30;
dec[ 4] = 0x19;
dec[ 5] = 0x12;
dec[ 6] = 0x02;
dec[ 7] = 0x58;
dec[ 8] = 0x00;
dec[ 9] = 0x18;
dec[10] = 0x08;
dec[11] = 0x03;
dec[12] = 0x27;
dec[13] = 0x21;
dec[14] = 0x06;
dec[15] = 0x0e;
int digit[2];
digit[0]=0;
digit[1]=0;
int digitmax[2];
digitmax[0]=9;
digitmax[1]=3;
int edgeDetect(){
edge[1]=edge[0];
if(flag1==1)edge[0]=(mem[KEY]&0x4)>>2;
else edge[0]=(mem[KEY]&0x8)>>3;
if(edge[0]==0)if(edge[1]==1) return 1;
return 0;
}
int segDec(int in){
if (in>0xF) {
return dec[in & 0x0F];
} else {
return dec[in] | 0x80;
}
}
int wait1(){
for(j=0; j< 0x2; j++)
for(k=0; k< 0x7FFF; k++);
}
int wait2(){
for(j=0; j< 0x6; j++)
for(k=0; k< 0x7FFF; k++);
}
void countup(){
for (i = 0; i < 2; i++) {
if (digit[i] < digitmax[i]) {
digit[i] = digit[i] + 1;
return;
} else {
digit[i] = 0;
}
}
}
int dispDigit(){
for( i = 0 ; i < 2 ; i++){
mem[HEX+i]=segDec(digit[i]);
}
}
int blinker(){
while(1){
wait2();
dispDigit();
wait2();
mem[HEX]=0xFF;
mem[HEX+1]=0xFF;
}
}
int dispSelect(){
mem[LCD]=0x53;
mem[LCD+1]=0x45;
mem[LCD+2]=0x4c;
mem[LCD+3]=0x45;
mem[LCD+4]=0x43;
mem[LCD+5]=0x54;
mem[LCD+7]=0x53;
mem[LCD+8]=0x57;
mem[LCD+9]=0x49;
mem[LCD+10]=0x54;
mem[LCD+11]=0x43;
mem[LCD+12]=0x48;
mem[LCD+16]=0x4f;
mem[LCD+17]=0x44;
mem[LCD+18]=0x44;
mem[LCD+19]=0x7e;
mem[LCD+20]=0x53;
mem[LCD+21]=0x57;
mem[LCD+22]=0x30;
mem[LCD+24]=0x45;
mem[LCD+25]=0x56;
mem[LCD+26]=0x45;
mem[LCD+27]=0x4e;
mem[LCD+28]=0x7e;
mem[LCD+29]=0x53;
mem[LCD+30]=0x57;
mem[LCD+31]=0x30;
}
int dispPK3(){
/* mem[LCD]=0xBD;
mem[LCD+1]=0xC0;
mem[LCD+2]=0xB0;
mem[LCD+3]=0xC4;
mem[LCD+4]=0x21;*/
mem[LCD+18]=0x50;
mem[LCD+19]=0x55;
mem[LCD+20]=0x53;
mem[LCD+21]=0x48;
mem[LCD+23]=0x4B;
mem[LCD+24]=0x45;
mem[LCD+25]=0x59;
mem[LCD+26]=0x33;
}
int dispPK2(){
mem[LCD+18]=0x50;
mem[LCD+19]=0x55;
mem[LCD+20]=0x53;
mem[LCD+21]=0x48;
mem[LCD+23]=0x4B;
mem[LCD+24]=0x45;
mem[LCD+25]=0x59;
mem[LCD+26]=0x32;
}
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
dispSelect();
if(mem[SW]==0x2){
flag2=1;
mem[LED]=0x2;
}
else if(mem[SW]==0x1){
flag2=0;
mem[LED]=0x1;
}
else mem[LED]=0;
if(edgeDetect()){
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
dispDigit();
dispPK3();
if(edgeDetect()){
flag1=1;
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
dispPK2();
wait1();
dispDigit();
countup();
if(edgeDetect()){
for(j=0;j<32;j++) mem[LCD+j]=0x20;
while(1){
wait1();
dispDigit();
countup();
count++;
if(count==51) blinker();
}
}
}
}
}
}
}
ページ名: