資源簡介
粉塵傳感器DSM501A基于51單片機編寫的C語言示例代碼.
代碼片段和文件信息
#include
#define?uchar?unsigned?char
#define?ulong??unsigned?long
#define?ledg??RC4
#define?ledr?RC6
#define?ledh?RC3
uchar?sumsum1num2sum2;
ulong?stat;
bit?flag1sflag10msflag5s;
void?main(void)
{
??TRISC=0x07;
??TRISE=0x07;
??TRISA=0xff;
??TRISB=0xff;
??TRISD=0xff;
??T1CON=0X01;???//timer1使能,選擇內部時鐘,1:1的預分頻比
??T0CS=0;??//timer0時鐘源選擇為內部指令周期?Fosc/4
??PSA=1;???//預分頻器分配給WDT?及Timer0?獲得1:1?的預分頻比
??TMR1IF=0;??//timer1溢出中斷標志位?,?0?=?Timer1?寄存器未溢出
??TMR1IE=1;?//Timer1?溢出中斷允許位,1?=?允許Timer1?溢出中斷
??T0IE=0;?//Timer0?中斷允許位,0=?禁止Timer0?中斷
??T0IF=0;?//Timer0?溢出中斷標志位,0?=?Timer0?寄存器未溢出
??TMR0=0x00;?//當TMR0?計數出現計滿返回時,?T0IF?位將被置1。
??TMR1H=0xff;?//16位遞增計數器,可通過TMR1H:TMR1L寄存器對訪問。
??TMR1L=0x16;
??PIR1=0;
??PEIE=1;??//外設中斷允許位?1?=?允許所有未被屏蔽的外設中斷
//??INTEDG=0;???//中斷觸發邊沿選擇位,1?=?INT?引腳的上升沿觸發中斷,0?=?INT?引腳的下降沿觸發中斷
??INTE=1;??//?RA2/INT?外部中斷允許位,1?=?允許RA2/INT?外部中斷,0?=?禁止RA2/INT?外部中斷
??INTF=0;??//RA2/INT?外部中斷標志,1?=?RA2/INT?外部中斷發生(必須用軟件清零),0?=?RA2/INT?外部中斷沒有發生
??GIE=1;?//全局中斷允許位,1?=?允許所有未被屏蔽的中斷,·10?=?禁止所有中斷
??while(1)
??{
????if(flag5s)
????{
??????flag5s=0;
??????stat=stat/5000000;
??????stat=stat*100;
??????if(sta
- 上一篇:MFC socket通信,socket通訊
- 下一篇:C語言試題庫共650題,含答案
評論
共有 條評論