资源简介
粉尘传感器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题,含答案
评论
共有 条评论