找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3880|回复: 1
打印 上一主题 下一主题
收起左侧

[求助]keil编译遇到奇怪问题,请大家帮忙看看。

[复制链接]
跳转到指定楼层
楼主
ID:1805 发表于 2012-6-21 14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写一个简单小程序,希望隔一秒蜂鸣器短暂的“嘀”一声,
结果遇到奇怪问题,这么几行,编译就显示:Program Size: data=11.1 xdata=0 code=329
code居然有329?

代码如下:
  1. <br/>1 #include"reg52.h"<br/>2 #define uint unsigned int<br/>3 #define uchar unsigned char<br/>4 #define TIMER 25000<br/>5 <br/>6 <br/>7 sbit suin=P2^2;<br/>8 bit flag;<br/>9 unsigned int y=0;<br/>10 <br/>11 void init() //初始化,开定时器0<br/>12 {<br/>13 &nbsp;&nbsp;&nbsp;&nbsp;TMOD=0x01;<br/>14 &nbsp;&nbsp;&nbsp;&nbsp;TCON=0x10; <br/>15 &nbsp;&nbsp;&nbsp;&nbsp;TH0=(65536 - TIMER) / 256; <br/>16 &nbsp;&nbsp;&nbsp;&nbsp;TL0=(65536 - TIMER) % 256; <br/>17 &nbsp;&nbsp;&nbsp;&nbsp;IE=0x82;<br/>18 } <br/>19 <br/>20 void main()<br/>21 {<br/>22 &nbsp;&nbsp;&nbsp;&nbsp;init();<br/>23 &nbsp;&nbsp;&nbsp;&nbsp;while(1)<br/>24 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>25 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>26 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>27 }<br/>28 <br/>29 void timer0() interrupt 1 //定时器中断<br/>30 {<br/>31 &nbsp;&nbsp;&nbsp;&nbsp;<br/>32 &nbsp;&nbsp;&nbsp;&nbsp;y++;<br/>33 &nbsp;&nbsp;&nbsp;&nbsp;y %= 40;<br/>34 &nbsp;&nbsp;&nbsp;&nbsp;if(y == 0)<br/>35 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>36 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;suin = ~suin;<br/>37 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>38 &nbsp;&nbsp;&nbsp;&nbsp;TH0=(65536 - TIMER) >> 8;<br/>39 &nbsp;&nbsp;&nbsp;&nbsp;TL0=(65536 - TIMER) % 256;<br/>40 }<br/>41
复制代码


如果把定时器中 y %= 40去掉,编译的code=197, 就这么一句,code居然差别一百多?
如果把开始的unsigned int y = 0;   改成 unsigned int y; 代码也可以少一百多。

请问大家,这是什么问题呢。我用的keil2, keil4都试过了,结果一样。

还有问一下,程序运行的结果不会是简短的“嘀”一声,而是很长的“嘀”一声,不知道为什么呢?




[此贴子已经被作者于2012-6-21 14:15:06编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:45963 发表于 2012-11-6 13:43 | 只看该作者
取余运算需要占用的内存多,所以多了呗。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表