除了可以用switch优化一下之外,这代码没什么问题。
状态机这么写很好啊。一目了然。无论怎么改都是改得更晦涩而已。
【 在 Qlala (Qlala) 的大作中提到: 】
: 标 题: C51 单片机能够把IO搞成数组 程序化赋值操作么
: 发信站: 水木社区 (Thu Jun 11 10:46:22 2020), 站内
:
: 接手这种代码,崩溃了
:
: // if(tcnt==TIME[0]) {CH0_EN = OPEN; }
: // if(tcnt==TIME[1]) {CH0_EN = CLOSE; }
: // if(tcnt==TIME[2]) {CH0_EN_B= OPEN; }
: // if(tcnt==TIME[3]) {CH0_EN_B= CLOSE; }
: // if(tcnt==TIME[4]) {CH1_EN = OPEN; }
: // if(tcnt==TIME[5]) {CH1_EN = CLOSE; }
: // if(tcnt==TIME[6]) {CH1_EN_B= OPEN; }
: // if(tcnt==TIME[7]) {CH1_EN_B= CLOSE; }
: // if(tcnt==TIME[8]) {CH2_EN = OPEN; }
: // if(tcnt==TIME[9]) {CH2_EN = CLOSE; }
: // if(tcnt==TIME[10]) {CH2_EN_B= OPEN; }
: // if(tcnt==TIME[11]) {CH2_EN_B= CLOSE; }
: // if(tcnt==TIME[12]) {CH3_EN = OPEN; }
: // if(tcnt==TIME[13]) {CH3_EN = CLOSE; }
: // if(tcnt==TIME[14]) {CH3_EN_B= OPEN; }
: // if(tcnt==TIME[15]) {CH3_EN_B= CLOSE; }
: // if(tcnt==TIME[16]) {CH4_EN = OPEN; }
: // if(tcnt==TIME[17]) {CH4_EN = CLOSE; }
: // if(tcnt==TIME[18]) {CH4_EN_B= OPEN; }
: // if(tcnt==TIME[19]) {CH4_EN_B= CLOSE; }
: --
:
: ※ 来源:·水木社区
http://m.newsmth.net·[FROM: 106.39.50.*]
--
FROM 114.84.111.*