製造技術者のためのディジタル技術
(組み込み型制御入門)
#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); } }