⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: 光敏电阻元件应用测试
//-----------------------------------------------------------------
//  说明: 本例运行时,LRD1所控制的继电器开关状态及LDR2的当前照度将
//        显示在四行的英文液晶屏上.其中LDR2的照度将同时以数字与图形
//        方式显示. 
//                       
//-----------------------------------------------------------------
#include <pic.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "LM044L_4BIT.h"
#define RELAY_IN_TRIS  TRISD7 //继电器引脚方向
#define RELAY_IN       !RD7   //输入的数据(0/1)
INT8U Disp_buff[21];
double volt; //光敏电阻分压
float res;   //光敏电阻当前阻值
float RX[] = {1000,200,100,50,20,10,5,2,1,0};//X,1-9级照度电阻
//-----------------------------------------------------------------
// 对AN0通道进行模数转换
//-----------------------------------------------------------------
void AN0_ADC_Convert()
{   
   //设置ADCON0寄存器的通道选择位CHS[2..0]=Channel(0~7),//选择通道后等待
     
   //开始转换--->等待,直到一次转换结束(ADGO还可替换成GODONE)
   
   //读取转换结果,并转换为电压值(0.00~5.00放大为0~500)
   
}
//-----------------------------------------------------------------
// 主程序     
//-----------------------------------------------------------------
void main()
{
    INT8U i;
    LCD_Initialize();                             //初始化LCD
    LCD_ShowString(0,0,(char*)"--LD Resistor Test--");
    //设置ADCON1寄存器中的端口配置控制位PCFG[3..0]为0010,AD4~AN0为模拟通道




    ADCS1 = 0; ADCS0 = 1;                         //设置AD转换时钟为F_OSC/8
    ADFM = 1;                                     //转换结果右对齐
    ADON = 1;                                     //打开A/D转换模块
    __delay_ms(700);                              //延时等待系统稳定
    RELAY_IN_TRIS = 1;                            //继电器开关输入
    while (1)
    {
        //根据双刀继电器的输入,判断光敏电阻LDR1是否暗激发继电器闭合
        //分别在LCD上显示LAMP发光标志(EF)与熄灭标志(6F)
        if (RELAY_IN)                              
           LCD_ShowString(1,0,(char*)"LDR1: \xEF\xEF\xEF\xEF\xEF\xEF");
        else 
           LCD_ShowString(1,0,(char*)"LDR1: \x6F\x6F\x6F\x6F\x6F\x6F"); 
        //对AN0通道进行A/D转换


        //计算并显示当前阻值(单位:K,F4为本例LCD电阻符号编码)
        //如果电压接近于5.0或等于5.0时,将阻值直接设为1M(1000K)




        //将阻值折算为实心方块及空心方框字符个数,控制条形图显示




    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -