#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar led;
uint num;
void timer()
{ led=P0;
led=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
}
void mian()
{
timer();
num++;
ET0=1; //允许定时器中断
TR0=1; //定时器开始工作
EA=1;
while(1); // 开总中断
}
// 中断服务程序、
void zhongduan() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
if(num==20)
{
num=0;
led=_crol_(led,1);
}
}
哪里出了问题?
嗯,就是错了main
怎么在开发版上实现不了功能呢
不是让LED一位一位移动么
追答刚才只编译了下看警告,没看代码。
num有什么用,num++;这句又是干嘛的,其他地方都没有使用num。
led=_crol_(led,1);这一句来看,你的本意是让led移动显示,但——led只是一个全局变量而已,与输出口没关联。可以在这句后面加个P0=led; ,或者直接对P0进行移位(第二种不准确,因为P0的值收到外围电路的影响)。
谢谢!
懂了
追答num++;应该放进中断函数里,由于while(1);的存在,main只执行一次,所以num为1,那么中断里面的if永远不成立。
重发一次,以免漏掉了。
嗯,我慢慢读懂了,有什么好的方法学中断么?
追答这个……估计大多数人的回答都是类似:多看多练。 led那句的错误,应该是对单片机的输入输出方式不太熟悉,这个刚开始学都会有个过程。num那句,是对程序的执行流程不明确,更多的是编程能力的问题,这就需要多练练。
不是说勤能补拙么,毕竟学习没啥捷径,肯下功夫就好 o(∩_∩)o...
谢谢!
主板为什么会出现3长音?(amibios)
3短1短3短——主中断处理寄存器错误 3短1短4短——副中断处理寄存器错误 3短2短4短——键盘时钟有问题,在CMOS中重新设置成Not installed来跳过POST 3短3短4短——显示卡RAM出错或无RAM,不属于致命错误 3短4短2短——显示器数据线松了或显示卡没插稳或显示卡损坏 3短4短3短——未发现显示...
...exe应用程序错误”警告!是啥原因啊?不止两三次
1、 检查系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。2、 更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级...
中断的正式定义是什么
IRQ号码是分等级的,而且CPU一次只能响应一个中断请 求,如果有好几个设备不小心使用了同一个IRQ号码,系统就会出现问题。在DOS下声卡不能发声,多半就是IRQ号码分配得不对造成的。在Windows系统里,系统会自动为外部设备分配IRQ号,如果有冲突会自己进行调整,尽量满足要求,实在不行才会发出警告。
程序老有这个提示:Warning[Pe111]: statement is unreachable 在这一...
因为你再往前有一个While(1)循环,理论上说除非你里面有设置break,否则会一直循环下去。编译器认为在while循环这里就会一直循环,永远跳不出来,那么下面这一句指令也就永远无法执行到了。这种警告一般不会影响程序的运行。如果你觉得它很讨厌,可以修改你的语句,让编译器认为这个指令可以达到,比如加上一...
单片机程序,程序没问题,编译不出来怎么回事?
3. 指令集不匹配:不同型号的单片机可能存在指令集的差异,程序中的指令可能与目标平台的指令集不匹配,导致编译错误。请确保选择的编译器和单片机型号匹配。4. 链接错误:程序中可能存在跳转目标未定义或者重复定义的问题,导致链接错误。请检查程序中的跳转语句和标签定义是否正确。建议您逐行检查程序中的...
BIOS主要包含哪四个部分的程序啊?
3、上电自检 微机接通电源后,系统将有一个对内部各个设备进行检查的过程,这是由一个通常称之为POST(Power On Self Test,上电自检)的程序来完成的。这也是BIOS的一个功能。完整的POST自检将包括CPU、640K基本内存、1M以上的扩展内存、ROM、主板、 CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘...
打开一些复杂网页后,出现警告框说什么内存不能为read,就自动会关掉所有...
有时前程序未结束 又有新的任务开始 到底要多少内存或虚拟内存来保证我们同时运行的工作任务呢?也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况 3、劣质内存条也会出现这个问题 一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个...
若某一系统有一事故中断源,要求编写一个中断服务程序
用 8253计数定时器来进行设置,配合8259来管理终端即可。对于计数器,设置一个初值,在工作方式3下,3个输出端口选一个就可以实现了。只需要编写这种程序,必须先对硬件的连接很清楚才行,不知道地址,选的芯片也不清楚,程序无法对应的编写,在对具体的硬件连接很清楚的情况下才好用汇编语言来实现此程序...
安装系统时出现这种情况从来没见过 高手出来指点
1、Virus Warning\/Anti-Virus Protection(病毒警告\/反病毒保护) 选项:Enabled(开启),Disabled(关闭),ChipAway(芯片控制) 这项设置可防止外部程序对启动区和硬盘分区表的写入,当发生写入操作时,系统会自动产生警告并提示用户中断程序的执行。它并不能保护整个硬盘,而且对于操作系统的安装(例如WINDOWS95\/98)及某些磁盘...
KEIL uVISION3 运行程序后,显示没有错误,有6个警告。怎么回事?怎么办啊...
这些警告的意思是你有几个函数被主程序和中断程序同时调用了。也就是说主程序中某个函数A跑到一半的时候,来了中断,结果中断中又调用了同样的函数A,如果这个函数不是重入函数,就有可能引起不可预知的错误,虽然从语法角度这样写没什么问题。