打印

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

[复制链接]
1864|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楼的做法我也用过,就把按键扫描程序做成延时程序用,按键扫描、延时两不误,多长的延时都不怕不能响应按键。

使用特权

评论回复
5
maychang| | 2010-9-9 18:37 | 只看该作者
这样处理,几乎已经成了常规。
记得Hotpower在单片机版面发帖讨论过。

使用特权

评论回复
6
yuyi21ic| | 2010-9-9 22:59 | 只看该作者
恩。圈圈的那本USB书中也有这个例子!

使用特权

评论回复
7
yan2005| | 2010-9-10 09:03 | 只看该作者
总结一下:
1. 延时的循环中检测各个按键的状态。
    另外最好加上去抖动,比如连续三次循环下面都检测到键盘按下,才去做按下的事情。
2. 用IO模拟EEPROM的时序,就能读写EEPROM

使用特权

评论回复
8
21ID| | 2010-9-10 09:32 | 只看该作者
这有点像数码管显示放在延时里面一样,LS的各位老师说得很详细了

使用特权

评论回复
9
awey| | 2010-9-10 11:36 | 只看该作者
不同的人、做不同的事需要定时,只要一只时钟就可以,想想该如何处理?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

28

帖子

1

粉丝