爱问 爱问共享资料 爱问分类
首页 >
电脑/网络
>
硬件

C51的问题

部分程序片段:

#include ....
...
bit device_state_flag = 0;
...
void main()
{
...(打开中断和定义之类 部件初始化一类)
while(1)
{
disp_stdby

查看全部>>

部分程序片段:

#include ....
...
bit device_state_flag = 0;
...
void main()
{
...(打开中断和定义之类 部件初始化一类)
while(1)
{
disp_stdby(); //待机界面
while(~device_state_flag);

clrscr(); //清屏
count = 800;
while(count--)
disp_wel(); //显示欢迎界面
while(device_state_flag)

.....(设备工作段 经验证能正常作业)



void int_0() interrupt 0 //中断服务

....
{
device_state_flag = ~device_state_flag;
standard_beep( 100, BEEP_NORMAL); //蜂鸣器响 延时100ms 频率500Hz
}
....


问题:开始的时候显示Standby...就是待机画面还正常,触发中断后,能听到蜂鸣器响,但是显示界面还是Standby...以为并没有跳出循环体。后来多次触发中断发现继续下去能显示出欢迎屏,但是是单步执行的,近似触发一次中断只进行一个时钟周期的操作,我没具体算。就是点很多次之后清屏了,然后有点很多次之后开始显示出w几次之后显示e再几次之后显示l....如此。。。
请问问题出在哪里,该怎么改

好评回答

智能机械 | 18-02-10 435 29
中断或堆栈的初始化或处理有问题,可以用仿真器单步或设断点调试,也可以在软件不同部位插入让指示灯闪烁来验证软件问题。

其他答案(共1个回答)

类似问题

换一换
  • 硬件相关知识

  • 电脑网络技术
  • 电脑网络

相关资料

确定举报此问题
举报原因(必选):
报告,这不是个问题
报告原因(必选):