clrsignal_high

MOV a,@24

xora,code_total

jbcr3,2

jmpcollect_end

input_low:

incsignal_low

MOV a,signal_low;信号低电平宽度大于800US时滤除

suba,@40

jbsr3,0

ret

calldelay20us

jbsport6,2;3

jmpinput_low

jmpcollect1

collect_end:

MOV a,code_recorder1;校验低字节地址

xora,@code_address1

jbsr3,2

ret

MOV a,code_recorder2;校验高字节地址

xora,@code_address2

jbsr3,2

ret

jbsKEY_STATUS,check_flag;是否是第一串收码?

jmpstorage_data

bcKEY_STATUS,check_flag

MOV a,com_data_rec

xora,data_recorder

jbsr3,2

jmpstorage_data

MOV a,data_recorder

xora,@autorun_value;是启动键?

jbsr3,2

jmpkey1

bsKEY_STATUS,autorun_key;置启动键标志

bsKEY_STATUS,press_flag;置有键按下标志

clrkey_counter;清除按键间隔计数器

ret

key1:

MOV a,data_recorder

xora,@open_value;是解除键?

jbsr3,2

jmpkey2

bsKEY_STATUS,open_key

bsKEY_STATUS,press_flag

clrkey_counter

ret

key2:

MOV a,data_recorder

anda,@0x0c;同时有两个键按下时不为0X30

xora,@lock_value;是防盗键?

jbsr3,2

jmpkey3

bsKEY_STATUS,lock_key

bsKEY_STATUS,press_flag

clrkey_counter

key3:

MOV a,data_recorder

anda,@0x30

xora,@search_value;是寻车键?

jbsr3,2

ret

bsKEY_STATUS,search_key

bsKEY_STATUS,press_flag

clrkey_counter

ret

storage_data:;第一次收码存储数据字节

bsKEY_STATUS,check_flag

MOV a,data_recorder

MOV com_data_rec,a

ret

delay20us:

wdtc

MOV a,@3;9

MOV delay1,a

delay20us_1:

nop

djzdelay1

jmpdelay20us_1

ret

关于控制,MCU就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查