音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

看看程序錯在那里

作者:chuandaoxy 欄目:單片機
看看程序錯在那里
#include<reg51.h>
#include<intrins.h>

#ifndef NULL
#define NULL ((void*)0L)
#endif

#define DB_MAXSIZE 0X10

unsgined CHAR db_head,db_tail,db_buffer[DB_MAXSIZE];

/*************************************************************/
function:debug_init
DESCRIPTION:將串口設(shè)置位調(diào)試端口,把緩沖區(qū)指針設(shè)為0
parameters:無
return:無
/************************************************************/

void debug_init(void)
{
   SCON=0X90;使用串行通訊模式2
   de_head=db_tail=0;
   ES=1;
}

/************************************************************/
function:debug_insert
DESCRIPTION:把所指向的存儲區(qū)數(shù)據(jù)拷貝到緩沖區(qū)
parameters:base- 指針,只想要拷貝數(shù)據(jù)的頭地址
           size- 所要拷貝數(shù)據(jù)的數(shù)量
return:無
/************************************************************/

void debug_insert(unsigned CHAR data *base, unsigned CHAR size)
{
  bit sendit=0;//標志位,表明是否要進行串行傳輸初始化
  unsigned  CHAR i=0;
  if (!size|| base==NULL)
{ return;}//測試參數(shù)是否有效
if (db_tail==db_head)
     sendit=1;
}
while (db_tail!=db_head&& i<size)//當緩沖區(qū)有空間并且數(shù)據(jù)區(qū)還有數(shù)據(jù)時進行拷貝
{
db_buffer[db_tail]=base[i];//拷貝當前字節(jié)
i++;
db_tail++;//移動指針
if (db_tail==DB_MAXAIZE)//指針是否超出范圍
{
db_tail=0;
}
}
if (sendit)//是否要傳輸一個字節(jié)
{
SBUF=db_buffer[db_head];
}
}
/*********************************************************************/
function: debug_output
DESCRIPTION:串行口中斷服務(wù)程序,增加緩沖區(qū)指針,如果頭指針不等于尾指針輸出下一個字節(jié)
parameters:無
return:無
/*********************************************************************/

void debug_output(void) interrupt 4
{
  RI=0;
  if (_testbit_(TI))
  db_head++;
  if (db_head==DB_MAXAIZE)
{
   db_head=0;
}
if (db_head!=db_tail)
   SBUF=db_buffer[db_head];
}
}
}

main ()
{
int n,base[10],*ptr=base;
for(n=0;n<=9;n++)
  debug_init();
   while(1);
   {
     debug_insert(base, 10);
     debug_output();
     }
     }




2樓: >>參與討論
xgh1217
你說一下編譯時的情況,好對癥下藥
for(n=0;n<=9;n++)
  debug_init();
初始了10篇呢

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請大俠指教,單片機 晶振不起振
定時精度問題
體驗了一下模糊控制:三洋XQB50-68型洗衣機
為什么11.0592MHz的晶振能產(chǎn)生標準的波特率,而12MHz的不行
急問一下關(guān)于單片機控制led的問題。。
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號