你用的是HT6221吗,一般学习应该都用这个红外芯片。
根据你在问题中提的问题和与别人的交流,我说两点:
时间的计算,在接收和解码红外线是,要用到单片机的两个内部功能,外部中断和定时器,定时器用于捕捉红外接收时间,外部中断用于捕捉接收的逻辑,那么外部中断不参与时间的工作,这时用到的只是定时器,这个定时器就当普通定时器就好了,建议使用能自动重装初值的定时器,更稳定,只要定时器能让它多少时间中断一次,然后对一个变量计数一次就行,晶振的大小只是初值的不同,稍微修改就行,没必要大费周折的去算。
关于程序没反应:程序正误由编译器检查了,没错,但是你不该说程序逻辑没错,程序逻辑没错就肯定能运行了,在红外的逻辑没错情况下,检查程序逻辑,是否是对时间计数上没把握到位,是否是初始化错误,是否是中断函数用错了关键词,等等因素编译器都不可能检查出来,最好贴出你的程序,好帮助你。
希望我的回答能帮助到你吧。
不管 什么,外部时钟改了,设置不变,按比例改数就行,全乘以12M/11.0592M试试吧