对于kile c编程序遇到的奇怪问题,府上代码

[复制链接]
3974|19
 楼主| xiaoyu9632 发表于 2007-6-12 11:39 | 显示全部楼层 |阅读模式
#include&nbsp;&ltatmelAT89X52.H&gt<br />#include&nbsp;&ltstdio.h&gt<br /><br />#define&nbsp;T0_LOW&nbsp;0x3A<br />#define&nbsp;T0_HIGH&nbsp;0xFE<br /><br />idata&nbsp;led_coder[10]&nbsp;=&nbsp;{0xbf,0x8c,0xdb,0xde,0xec,0xf6,0xf7,0x9c,0xff,0xfe};<br />unsigned&nbsp;char&nbsp;led_bit&nbsp;=&nbsp;0;<br /><br />void&nbsp;led_disp(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;switch(led_bit)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[3];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;4:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[4];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x4;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;5:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[5];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;6:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[6];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x6;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;7:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[7];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x7;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;8:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[8];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;9:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1&nbsp;=&nbsp;led_coder[9];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P1_7&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2&nbsp;=&nbsp;0x9;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(led_bit&nbsp;==&nbsp;9)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led_bit&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led_bit++;<br />}<br /><br />void&nbsp;ISRTimer0()&nbsp;interrupt&nbsp;1<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TL0&nbsp;=&nbsp;T0_LOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;TH0&nbsp;=&nbsp;T0_HIGH;<br />&nbsp;&nbsp;&nbsp;&nbsp;led_disp();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />void&nbsp;InitCPU(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;IP&nbsp;=&nbsp;0x0;//--&nbsp;PS1&nbsp;PT2&nbsp;PS0&nbsp;PT1&nbsp;PX1&nbsp;PT0&nbsp;PX0<br />//PT2&nbsp;定时器2&nbsp;中断优先级<br />//PS&nbsp;串行通信中断优先级<br />//PT1&nbsp;定时器1&nbsp;中断优先级<br />//PX1&nbsp;外部中断1&nbsp;优先级<br />//PT0&nbsp;定时器0&nbsp;中断优先级<br />//PX0&nbsp;外部中断0&nbsp;优先级<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;中断优先级为外部中断0最高,其次外部中断1,其次定时器0,串口中断<br />&nbsp;&nbsp;&nbsp;&nbsp;IE&nbsp;=&nbsp;0x82;&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;&nbsp;外部中断0&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;定时器0&nbsp;溢出&nbsp;&nbsp;2&nbsp;&nbsp;外部中断1&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;定时器1&nbsp;溢出&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;串行口中断&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;定时器2&nbsp;溢出&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EA=0,中断关闭&nbsp;EA&nbsp;ES1&nbsp;ET2&nbsp;ES&nbsp;ET1&nbsp;EX1&nbsp;ET0&nbsp;EX0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ET1=0,允许定时中断1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EX0=1,允许外中断0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EX1=0,不允许外中断1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ET0=1,允许定时中断0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ES=1,允许串口中断<br />&nbsp;&nbsp;&nbsp;&nbsp;TMOD&nbsp;=&nbsp;0x10;&nbsp;//&nbsp;定时器0,采用方式1,16位计数<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GATE=0,由TR0控制<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C/T=0,做为定时器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(M1,M0)=01,16位定时器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;定时器1,采用方式1,16位计数<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GATE=0,由TR1控制<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C/T=0,做为定时器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(M1,M0)=10,8位自动重载定时器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//T0用来做延时,T1用来产生串口通信的波特率。<br />&nbsp;&nbsp;&nbsp;&nbsp;TL0&nbsp;=&nbsp;T0_LOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;TH0&nbsp;=&nbsp;T0_HIGH;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TR0&nbsp;=&nbsp;1;<br />}<br /><br />void&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;InitCPU();<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />我用汇编编写了一段调试程序,已经达到效果,然后我再kile&nbsp;c的环境下编写这段c程序,仿真我都觉得通过了,烧录上去没有任何反应,我查看生成的汇编代码,发现程序代码是从0x4190处开始执行的(定时器0的代码)我很奇怪为什么会这样,朋友们帮我分析下
 楼主| xiaoyu9632 发表于 2007-6-12 11:43 | 显示全部楼层

希望路过的朋友们能留步看下

如果有需要看我的汇编代码也可以,很奇怪
 楼主| xiaoyu9632 发表于 2007-6-12 16:49 | 显示全部楼层

没有人回答我

郁闷中,,,,,
lenglx 发表于 2007-6-12 17:01 | 显示全部楼层

没怎么懂你的意思

<br />我用汇编编写了一段调试程序,已经达到效果,然后我再kile&nbsp;c的环境下编写这段c程序,仿真我都觉得通过了,烧录上去没有任何反应,我查看生成的汇编代码,发现程序代码是从0x4190处开始执行的(定时器0的代码)我很奇怪为什么会这样,朋友们帮我分析下<br /><br />既然仿真通过,那便是从地址0开始的了,否则怎么仿真通过的.<br />那你是怎么发现从0x4190开始的?<br /><br />
computer00 发表于 2007-6-12 17:05 | 显示全部楼层

是不是你的定时器重装值搞错了? 时间很短.

  
小小电子 发表于 2007-6-12 17:08 | 显示全部楼层

加个延时看看

  
awey 发表于 2007-6-12 23:43 | 显示全部楼层

不像是时间的问题,可能是编译器设置不对

  
 楼主| xiaoyu9632 发表于 2007-6-14 10:50 | 显示全部楼层

我说的地址是定时器跳转的地址了

定时器地址是000B,这里生成的汇编有条指令,LJMP跳转到哪个地方地址是0X4190,我说的仿真通过就是在运行程序的时候可以看到I/O口的变化,但是烧录上去却看不到I/O口有波形输出
lxshd 发表于 2007-6-14 16:22 | 显示全部楼层

没使能中断

void&nbsp;ISRTimer0()&nbsp;interrupt&nbsp;1&nbsp;<br />中断处理程序在退出时没有开中断
happy803 发表于 2007-6-14 17:48 | 显示全部楼层

对于kile c编程序遇到的奇怪问题,府上代码

程序执行一般从0000H开始,然后通过一条长跳转指令转到主程序的存储位置处执行.按理说定时器值大小并不影响操作,但前提是需要在主程序中的循环中不断给定时器零赋值.如果没有这一步,定时器中断只执行一次,肯定输出没什么变化的.
 楼主| xiaoyu9632 发表于 2007-6-17 21:51 | 显示全部楼层

我中断里面不是已经给定时器0赋值了吗?楼上的兄弟怎么说只会执行一次呢,而且谁写程序会在主程序不断给定时器赋值呢??
Flyer369 发表于 2007-6-18 13:49 | 显示全部楼层

奇怪问题

#include&nbsp;&ltatmelAT89X52.H&gt<br />
hugerat 发表于 2007-6-18 14:04 | 显示全部楼层

EA=0,所有中断都被关闭了。

  
 楼主| xiaoyu9632 发表于 2007-6-19 20:40 | 显示全部楼层

再晕楼上的

肯定没有仔细看程序,&nbsp;IE&nbsp;=&nbsp;0x82;&nbsp;你看看这句话,哪里令EA=0了???
xplore 发表于 2007-6-19 21:26 | 显示全部楼层

那个startup

连进去了吗?
枣树根 发表于 2007-6-19 22:37 | 显示全部楼层

是中断服务程序的问题?

老大开了这么多中断怎么不见中断服务程序?<br />//&nbsp;ET1=0,允许定时中断1(无服务程序)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EX0=1,允许外中断0(无服务程序)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EX1=0,不允许外中断1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ET0=1,允许定时中断0<br />&nbsp;//&nbsp;ES=1,允许串口中断(无服务程序)
 楼主| xiaoyu9632 发表于 2007-6-20 20:33 | 显示全部楼层

回15楼

这个文件我加了进去的,很奇怪,我好像找不出原因,我在kile&nbsp;c中编译运行都正确,就是烧录进去不行,而我在wave中编译会说我超出范围。楼上的好像不懂程序,//后面都是解释,要看前面的代码才知道我到底开了哪些中断,并写了那个中断的服务程序。
lichear 发表于 2007-6-21 14:28 | 显示全部楼层

回楼主

定时器&nbsp;&nbsp;TMOD&nbsp;=&nbsp;0x10;&nbsp;//&nbsp;定时器0,采用方式1,16位计数<br />只产生一次中断。<br />你既然没有修改中断优先级你这句&nbsp;IP&nbsp;=&nbsp;0x0;多余<br />编程习惯不好!
风_007 发表于 2007-6-22 00:01 | 显示全部楼层

可能是你的优化程序太高了!!

程序的优化程度如果设的太高可能产生这样的错误,建议修改优先级。。。看看反编译的代码!!
fishingok 发表于 2007-6-22 00:07 | 显示全部楼层

333

我也看不懂哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

159

帖子

0

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