網友們好,我想求助几个單片機的問題

[复制链接]
2683|8
 楼主| lpz110 发表于 2010-9-9 11:52 | 显示全部楼层 |阅读模式
大家好,我想提兩個問題
1:如果一個程序中延时和按鍵,如果延時子程序比较长(假如2秒),怎样确保按键能够得到及时响应(假如PC正在執行延時子程序,正在這時候有按鍵輸入,不是响应不了)——,,,前提是不能用定時器定時掃描,和中斷來做,因為定時器和中斷我另有其他用途
2:單片機沒有串口。怎樣才能使得他与24C02進行通信(24C02是具有2K内存的EEPROM)
chunyang 发表于 2010-9-9 12:31 | 显示全部楼层
延时程序可复用定时器,定时器设成每时间单位中断一次,其它需定时的程序根据需要的时长通过延时多少个时间单位来决定,这方面的编程思想可以参考一下实时操作系统。另外利用软件延时也是个解决办法,长时运行单一的延时程序,除非此时处理器的任务是单一的,否则不宜采用。
串行EEPROM用的并不是URT串口,而是SPI或I2C,用IO完全可以模拟。
mcuisp 发表于 2010-9-9 13:53 | 显示全部楼层
记得俺曾经把按键扫描程序设计成恒定执行时间的。
即不管任何分支,其执行时间都一致。
这样就可以把它当做延时程序的“砖块”了。
yanwen217 发表于 2010-9-9 16:46 | 显示全部楼层
呵呵,3楼的做法我也用过,就把按键扫描程序做成延时程序用,按键扫描、延时两不误,多长的延时都不怕不能响应按键。
maychang 发表于 2010-9-9 18:37 | 显示全部楼层
这样处理,几乎已经成了常规。
记得Hotpower在单片机版面发帖讨论过。
yuyi21ic 发表于 2010-9-9 22:59 | 显示全部楼层
恩。圈圈的那本USB书中也有这个例子!
yan2005 发表于 2010-9-10 09:03 | 显示全部楼层
总结一下:
1. 延时的循环中检测各个按键的状态。
    另外最好加上去抖动,比如连续三次循环下面都检测到键盘按下,才去做按下的事情。
2. 用IO模拟EEPROM的时序,就能读写EEPROM
21ID 发表于 2010-9-10 09:32 | 显示全部楼层
这有点像数码管显示放在延时里面一样,LS的各位老师说得很详细了
awey 发表于 2010-9-10 11:36 | 显示全部楼层
不同的人、做不同的事需要定时,只要一只时钟就可以,想想该如何处理?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

28

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部