久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5673|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

[求助]PROTUES仿真正常,接硬件不行,大家?guī)蛶兔?/span>

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:27418 發(fā)表于 2010-12-29 14:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

附程序,外部中斷不響應(yīng),據(jù)說是初始化,大家?guī)兔纯?/font>

 

#include<reg51.h>

#define LEDPort P1


unsigned char aucLED_SELECT_01[9]=
    {0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,};
           //方式0,方式1燈開關(guān)數(shù)組。
unsigned char aucLED_SELECT_23[5]=
    {0xFF,0x7E,0xBD,0xDB,0xE7};
           //方式2,方式3燈開關(guān)數(shù)組。

unsigned char _i=0;          //數(shù)據(jù)選擇計(jì)數(shù)。
           
unsigned char uc_Mode=0;     //模式選擇,默認(rèn)為模式0。

unsigned char uc_Count=1;     //定時(shí)器中斷計(jì)數(shù)。

unsigned char uc_Delay=1;     //延遲計(jì)數(shù),通過改變改數(shù)值改變燈狀態(tài)延遲時(shí)間。
           //燈延遲時(shí)間=uc_Dalay*定時(shí)器溢出時(shí)間。

 

void main()
{             
 TMOD=0x01;        //定時(shí)器0模式一。
 TH0=0x3C;
 TL0=0xB0;        //溢出時(shí)間:50ms。
 TR0=1;         //定時(shí)器0開啟。

 IT0=1;         //外部中斷0下降沿觸發(fā)。
 IT1=1;         //外部中斷1下降沿觸發(fā)。

 EX0=1;         //外部中斷0開。
 EX1=1;         //外部中斷1開。
 ET0=1;         //定時(shí)器0中斷開。
 EA=1;         //總中斷開。

 while(1);
}


//*********************************************************************************************************
//*                            *
//*  ************************************定時(shí)器0中斷函數(shù)************************************     *
//*                            *
//*<函數(shù)功能>:當(dāng)定時(shí)器0溢出時(shí)執(zhí)行此函數(shù),首先執(zhí)行2個(gè)判斷:              *
//*    (1)if判斷是否改變燈的狀態(tài),可用于改變延時(shí)時(shí)間;            *
//*    (2)switch判斷閃爍模式,根據(jù)不同模式對(duì)燈進(jìn)行不同的通斷。          *
//*   最后對(duì)定時(shí)器TH0,TL0重新賦值,溢出時(shí)間為50ms。              *
//*                            *
//*********************************************************************************************************

void vTimer0(void) interrupt 1      
{
 
 if(uc_Count%uc_Delay==0)     //通過此判斷語句來改變延時(shí)。,例如:當(dāng)uc_Delay=6時(shí),定時(shí)器          
 {           //溢出5次時(shí)燈狀態(tài)改變1次。同時(shí)uc_Count重新賦值1.否則,uc_Count++
  uc_Count=1;        //等待下一次溢出。因此可以改變延時(shí)。
  switch(uc_Mode)
   {
 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<模式0,燈從上往下依次點(diǎn)亮,不斷循環(huán)。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    case 0:     
      if(_i>=8)
       _i=0;
      else _i++;
      LEDPort=aucLED_SELECT_01[_i];
      break;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<模式1,燈從下往上依次點(diǎn)亮,不斷循環(huán)。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
    case 1:    
      if(i<=0)
       i=8;
      else _i--;

      LEDPort=aucLED_SELECT_01[_i];
      break;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<模式2,燈從兩邊往中間依次點(diǎn)亮,不斷循環(huán)。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    case 2:        
      if(_i>=4)
       _i=0;
      else _i++;

      LEDPort=aucLED_SELECT_23[_i];
      break; 
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<模式3,燈從中間往兩邊依次點(diǎn)亮,不斷循環(huán)。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    case 3:     
      if(_i<=0)
       _i=4;
      else _i--;

      LEDPort=aucLED_SELECT_23[_i];
      break;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<所有等以一定時(shí)間間隔同時(shí)閃爍。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    case 4:      
      if(LEDPort==0xFF)
       LEDPort=0x00;
      else LEDPort=0xFF;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<其他>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    default:
      break;
   }
  }
  else uc_Count++;

 TH0=0x3C; //重新給定時(shí)器賦值。
 TL0=0xB0; //定時(shí)時(shí)間:50ms。
}

 

 

//*********************************************************************************************************
//*                            *
//*  ************************************外部中斷0中斷函數(shù)************************************    *
//*                            *
//* <函數(shù)功能>:當(dāng)外部中斷0產(chǎn)生下降沿信號(hào)時(shí)執(zhí)行此函數(shù),將閃燈模式從模式0到4循環(huán)切換。        *
//*                            *
//*********************************************************************************************************

void vModeChange(void) interrupt 0
{
 if(uc_Mode>=4)
  uc_Mode=0;
 else uc_Mode++;
}

 

 

//*********************************************************************************************************
//*                            *
//*  ************************************外部中斷1中斷函數(shù)************************************    *
//*                            *
//*<函數(shù)功能>:當(dāng)外部中斷1產(chǎn)生下降沿信號(hào)時(shí)執(zhí)行此函數(shù),將閃燈時(shí)間從50ms,250ms,500ms,750ms循環(huán)切換。    *
//*                            *
//*********************************************************************************************************

void vDelayChange(void) interrupt 2
{
 if(uc_Delay>=16)
  uc_Delay=1;
 else uc_Delay+=5;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:27770 發(fā)表于 2011-1-16 00:33 | 只看該作者

你的硬件有沒有一個(gè)高電平的過程? 如果一直都是低電平,是不能產(chǎn)生下降沿的.

上電后,有沒有把外部中斷端口設(shè)置=0? 應(yīng)該為 1 .

我們都是成年人,最好不要使用軟件模擬的方式來玩單片機(jī).----畢竟硬件投入不是太大.為什么不直接跑硬件仿真呢? ----浪費(fèi)多少時(shí)間? 如果按照飛機(jī)票與火車票的差價(jià)來算,每小時(shí)多少錢?

僅供參考!

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区在线免费播放 | 亚洲成年在线 | 午夜精品福利视频 | 二区欧美| 91精品中文字幕一区二区三区 | 天天久久| 国产精品av久久久久久久久久 | 日韩国产免费观看 | 午夜欧美| 日韩久久久久久 | 国产a级毛毛片 | 91极品欧美视频 | 国产精品久久视频 | 在线播放中文 | 成人二区三区 | 最新av中文字幕 | 高清视频一区二区三区 | 国产 日韩 欧美 中文 在线播放 | 久久福利电影 | 亚洲国产一区二区三区四区 | 少妇性l交大片免费一 | 91在线观看| 国产成人一区二区 | 国产精品一区二区视频 | 国产精品永久久久久久久www | 夏同学福利网 | 91看国产 | 精品欧美一区二区三区久久久小说 | 国产一区91精品张津瑜 | 日本一道本视频 | 中文字幕不卡在线观看 | 国产亚洲一区二区在线观看 | 亚洲最大av网站 | 视频在线观看一区 | 一区二区三区在线观看视频 | 男女视频网站 | 久久久久国产成人精品亚洲午夜 | 国产色99精品9i | 在线欧美视频 | 色综合99 | 一区在线免费视频 |