255倒计时器的需求是,有s28(单刀开关),s29(按钮)两个控制构件,要求是s28低电位时,进入预设模式,有滑动电阻器输入电压,利用adc0808模数转换,得到数字量,然后在8位数码管最左3位动态显示出来,s28高电位时,8位数码管上最左边3位显示预设值,最右边3位显示实时倒计时值,按下s29(1下开始,2下暂停)开始倒计时,每一秒-1,减到0,则使蜂鸣器响30秒,然后8位数码管最右边重新显示预设值,等待下一次倒计时。
自己写的时候,遇到问题如下:①动态数码管仿真显示异常,s28接高电位可以显示左右各3位,但是拨动到低电位只能显示一位(正常是显示左三位),利用的是同一个显示子程序(寄存器值不同)。②s28只能从高电位切换回低电位(由低到高只显示一位),且只有第一次有效,后面无论怎么拨动都只显示一位,如①问题。③使用寄存器间接寻址,mov A,[url=]@R0,指向bcd码缓存区时,指向异常,比如60H内有#01H,但是读取的时候,a取到了0,inc[/url]r0,依次向后也是如此。接线图以及汇编程序如下: