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

📄 main.c

📁 C51单片机一个小项目源程序:包含液晶12232驱动,AD7705驱动,按键扫描及单片机内部EEPROM的驱动,是一个比较值得参考的源程序
💻 C
字号:
#include "mylib.h"
extern uchar KEY_NO;
extern uint  k;
extern uchar data MENU_NO;
extern uchar data MENU_MENU1_NO;
extern uchar data MENU_MENU2_NO;
uint AD_getvalue[11];
uchar i,count,serio_data;
uint  j,ReaddataChx;
uint Turnaround_Corner_0,Turnaround_Corner_360;
uint Turnaround_Power_0,Turnaround_Power_200;
extern uchar Turnaround_CornerORPower_Value2[4];
extern uint Ch1k,Ch2k;
extern float Nt;
extern uchar Turnaround_CornerValue1[4];
extern uchar Turnaround_Power_Value2[4]; 
sbit PowerTest = P3^3;
uint  k;
uchar Data_H,Data_L;
void main(void)
{
   Wait7705(500);		        
   PowerTest=1;
   delay();	
   init_serial();			   //串口初使化
   lcd_init();
   lcd_clr();
   SetSerio=1;
   AD7705_reset();		       //复位 AD   delay();
   INI7705();

   Data_L=byte_read(0x8201);	  //读取力矩0点数值
   Data_H=byte_read(0x8200);
   Turnaround_Power_0=Data_H*256+Data_L;
   Data_L=Data_H=0;

   Data_H=byte_read(0x8202);	  //读取力矩最大值数值
   Data_L=byte_read(0x8203);
   Turnaround_Power_200=Data_H*256+Data_L; 
   Data_L=Data_H=0;

   Data_H=byte_read(0x8400);	  //读取转向角0点数值
   Data_L=byte_read(0x8401);
   Turnaround_Corner_0=Data_H*256+Data_L;
   Data_L=Data_H=0;

   Data_H=byte_read(0x8402);	  //读取转向角360度数值
   Data_L=byte_read(0x8403);
   Turnaround_Corner_360=Data_H*256+Data_L;
   Data_L=Data_H=0;

   delay();
   dprintf(12,0,"转向盘检测仪",0);
   if(PowerTest==0)					 //仪表电源检测
   {
		dprintf(6,1,"电压状态:欠压",0);	   //电压不够
   }
   if(PowerTest==1)
   {
		dprintf(6,1,"电压状态:正常",0);	   //电压正常
   }
   for(i=0;i<100;i++)
      for(j=0;j<3000;j++); 
   SetSerio=1;
   k=0;
   MENU_MENU2_NO=1;
   test_menu();					   //检测界面
   WDT_CONTR=0x3f;				   //启动看门狗
   while(1)
   {      
		 key();					   //按键扫描
		 RTDkey();				   //执行相关的任务
		 WDT_CONTR=0x3f; 
   }
}

void serio_server() interrupt 4 using 0
{
   EA=0;
   if(RI)
   {
      RI=0;
      serio_data=SBUF; 
	}
	EA=1;
}

//AD7705每次取数10次,并将所取得数放入XDATA中,然后进行比较找出最大值。
uint filter(bit mode)
{
   uint i=0,max;
   for ( count=0;count<10;count++)
   {
	  AD_getvalue[count]=ReadDataCh1_Ch2(mode);
      delay();
	}
   max=AD_getvalue[0];
   for(i=1;i<10;i++)
   {
       if(AD_getvalue[i]>max)
	   {
	       max=AD_getvalue[i];
	   }
   ReaddataChx=max;
   }
   return (ReaddataChx);
}







⌨️ 快捷键说明

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