製造技術者のためのディジタル技術
(組み込み型制御入門)








#include <16f88.h>
#fuses INTRC_IO,NOWDT,NOLVP,NOMCLR//内部クロック、WDT,LVPなし
#use delay(CLOCK=4000000) //クロック4MHz
#use fast_io(a)
#use fast_io(b)
int in;
int out;
void main(){
//setup_adc_ports(NO_ANALOGS);//AD変換は利用しない
set_tris_a(0xFF);//Aポートすべて入力
set_tris_b(0xF0);//Bポート下位4bit出力
out=1;
while(1){
output_b(~out); //~で0,1反転し、1のとき点灯する
in=input_a();//スイッチを読む
if(in & 0b00000001){//
out++;//outを1だけ増す
if(out == 0b00010000) out=0;//4ビットを越えたら0にする
}
else {//シフトする
if( (out & 0b00001111) ==0 ) out=1;
out=out <<1;
if(out & 0b00010000) out = out | 1;//最左ビットが1なら右から1を入れる
}
delay_ms(500);
}
}




