#include
#define uchar unsigned char
#define uint unsigned int
#define L 0
#define R 1
uchar SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};/*0~9的數碼管段碼*/
#define reset() {WDT=0x1e;WDT=0xe1;}
uchar act[2]={0xf3,0xfc};//數碼管位碼
/***************************************************************/
uchar time_cnt;
uchar dEDA=0; ///*100mS計數單元清零*/
sfr WDT=0xa6;
/**************端口定義***********/
sbit INPUT=P3^2;
sbit RL1=P1^7;
sbit RL2=P1^6;
sbit LED1=P1^2;
sbit LED2=P1^3;
sbit BZ1=P1^4;
sbit BZ2=P1^5;
/***************************/
bit LR;
bit ERR;
/***********************/
/*定時器T0初始化*/
void init_timer0()
{
TMOD=0x11;
TH0=-(50235/256);//100mS定時初值
TL0=-(50235%256);
}
/*定時器T1初始化*/
void init_timer1()
{
TH1=-(2000/256);//4mS定時初值
TL1=-(2000%256);
TR1=1;
}
//************初始化***********
void init(void)
{ P0=0;P1=0xff;P2=0xff;P3=0xff;
reset()
init_timer0();
init_timer1();
ET0=1;ET1=1;EX1=1;
TR1=1;IT1=1;
EA=1;
}
/*************延時子函數*************/
void delay(uint k)
{
uint i,j;
for(i=0;i
{;}reset()}
}
/*100mS定時中斷服務子函數*/
void time_zd0(void) interrupt 1 using 1
{
TH0=-(50235/256);
TL0=-(50235%256);
if(!INPUT)deda++;
time_cnt++;
if(time_cnt==15)// 當 time_cnt==20 , 開始測試
{ TR0=0;
if((deda>2)&&(deda<11))// 先檢測開鎖脈沖
{RL1=1;RL2=1;// 正常
delay(90);
BZ1=1;BZ2=1;RL1=1;RL2=0;
deda=0;ERR=0;
TR0=1;//deda=0;LR=R;
}
else ERR=1;// 否則有錯
}
//=============================================
if(time_cnt==30)// 當time_cnt==20 , 開始測試
{TR0=0;
if((deda>2)&&(deda<11))// 再檢測閉鎖脈沖
{RL1=1;RL2=1;// 正常
BZ1=1;BZ2=1;RL1=1;RL2=1;
TR0=0;
EX1=1;}
else ERR=1;// 否則有錯
}
}
/**************************/
/*4mS定時中斷服務子函數,掃描刷新兩位數碼管*/
void time_zd1(void) interrupt 3 using 3
{
TH1=-(2000/256);
TL1=-(2000%256);
LR=!LR;
if(LR==L)
{P0=SEG7[deda/10]|0x80;
P2=act[1];}
else
{P0=SEG7[deda%10];
P2=act[0];}
}
/******************主函數*****************/
void main()
{ init();
while(1)
{ reset()
if(time_cnt<=15)
{ if(!INPUT)
{LED1=0;LED2=1;}
else
{LED1=1;LED2=1;}
}
else
{ if(!INPUT)
{LED1=1;LED2=0;}
else
{LED1=1;LED2=1;}
}
//============================================
if(ERR)
{BZ1=0;BZ2=0;TR0=0;}
}
}
/**********************************************************/
void extern_zd1(void) interrupt 2 using 2//測試啟動
{ delay(10);
if(!P3_3)
{BZ1=0;BZ2=0;
delay(200);
LR=L;ERR=0;
BZ1=1;BZ2=1;
deda=0;
time_cnt=0;
EX1=0;TR0=1;
RL1=0;RL2=1;
}
}
上一篇:LED數碼管實驗程序
下一篇:DDS技術的數控信號發生器51單片機控制程序
推薦閱讀
史海拾趣
隨著全球電子市場的不斷擴大,Apex Tool Group積極實施全球化戰略,拓展市場版圖。公司在全球范圍內建立了多個生產基地和分銷網絡,以便更好地服務全球客戶。同時,Apex Tool Group還積極與全球知名的電子企業開展合作,共同推動電動工具技術的創新和發展。這些舉措使得Apex Tool Group在全球電子行業中的地位日益穩固。
近年來,BRIGHT公司積極投身于太陽能領域的發展。他們推出了一種創新的商業模式,即幫助用戶免費安裝太陽能面板,并隨后收取服務費。這一模式類似于有線電視的收費方式,有效降低了用戶安裝太陽能系統的門檻。通過與私人投資者的合作,BRIGHT公司成功承擔了安裝成本,并致力于向全球提供優質的屋頂太陽能解決方案。這一突破性的舉措使得BRIGHT公司在太陽能領域取得了顯著的成績。
面對日益激烈的市場競爭,First Silicon公司深知供應鏈管理的重要性。公司投入大量資源,對供應鏈進行了全面整合和優化。通過建立長期穩定的供應商關系、引入先進的供應鏈管理軟件和提高庫存周轉率等措施,First Silicon有效降低了原材料成本和庫存風險。同時,公司還加強了與下游客戶的溝通和合作,確保產品能夠及時、準確地送達客戶手中。這一系列舉措不僅提升了公司的運營效率,還增強了其市場競爭力。
隨著公司規模的擴大和產品種類的增多,AEP公司意識到質量管理的重要性。公司引進了一套先進的質量管理體系,從原材料采購、生產過程到產品出廠,每一個環節都進行嚴格的質量控制。同時,公司還加強了對員工的培訓和管理,確保每一名員工都能嚴格按照質量標準進行操作。這一舉措大大提高了AEP公司的產品質量和客戶滿意度,為公司的長期發展奠定了堅實基礎。
在環保意識日益增強的今天,AEP公司積極響應國家號召,致力于綠色環保和可持續發展。公司投入大量資金研發環保型電子元器件,減少生產過程中的廢棄物排放。同時,公司還建立了完善的廢舊產品回收機制,對廢舊產品進行環保處理,實現資源的循環利用。這一舉措不僅提升了AEP公司的社會形象,也為公司的可持續發展注入了新的動力。
在發展的過程中,Ferroperm公司不斷進行技術創新和產品研發,推動產品的多樣化發展。他們成功開發了一系列具有高性能和獨特功能的電磁材料,如高性能鐵氧體、NdFeB永磁體等。這些產品不僅滿足了客戶對電磁材料性能的高要求,還推動了相關行業的發展。同時,Ferroperm還不斷拓展產品線,推出了變壓器、電感器、濾波器等一系列電子產品,進一步鞏固了其在電磁材料領域的領先地位。
計步器是計數人步行數的裝置,并用步數乘步長計算距離。本設計方案是用AVR MCV建造1個計步器。此電路不僅僅具有傳統計步器的所用特點,而且還具有低功耗(低功耗是便攜裝置的重要特性)。 此設計也包含瞬時速度測量。傳統特性本設計采用 ...… 查看全部問答∨ |
|
希望大家在下載時幫忙頂一下。使越來越多的人下載。用matlab軟件去理解信號與系統。 共有6個分卷。現在已經全部上傳完畢。可以下載了。 圖書封面如下所示。S … 查看全部問答∨ |
|
從上海回來有段時間了,從去到回來一直想保持低調,所以也沒有說什么. 還是說正經的吧 目前比較緊急的需求有3個 外派美國微軟的開發測試工程師 職位名稱:赴美國微軟軟件開發測試工程師 工作城市:美國 職位要求: 1、計算機相關專業本科以 ...… 查看全部問答∨ |
|
小弟剛接觸不久,主要在WINCE下作CAN的通訊,請問各位在WINCE下都用什么語言,除了EVC,有用.NET的么??感覺怎么樣???… 查看全部問答∨ |
幫忙推薦一款 和 430F149,引腳,電路,程序完全兼容的一款芯片。 但是 RAM 可以達到 4K,或者 4K 以上的芯片。 謝謝。。。 我現在程序 RAM 不夠用。。。… 查看全部問答∨ |