• 大小: 42KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-17
  • 语言: 其他
  • 标签:

资源简介

c8051f的AD转换,串口通信,液晶显示等

资源截图

代码片段和文件信息

/*  Data:   04/02
    Author: 季伟强
    使用C8051F340,内部晶振12M频
现串口可以接收发送光功率和偏差校准功能
*/
#include “c8051f340.h“
#define uchar unsigned char
#define uint unsigned int
/*端口定义*/
#define LCD_data P3
sbit LCD_RS=P2^4;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^6;
sbit LCD_PSB=P2^7;
sbit wavelength=P0^3;
sfr16 ADC0 = 0xbd;  // ADC0 result

//液晶显示的字符
uchar code dis1[]={“P:“};
uchar code dis2[]={“λ:“};
uchar code dis3[]={“dBm“};
uchar code dis4[]={“nm“};
uchar code dis_1550[]={“1550“};        //波长
uchar code dis_1310[]={“1310“};
uchar code dis_1490[]={“1490“};

uchar p_code[7];   //串口接收缓冲区
uchar off_code_rx[4];
//串口命令
uchar p_optical[7]={0xaa0xbb0x110x110x000x110x11}; //连续发射光功率_波长命令
//光功率_波长 和偏差的标志位
uchar p_optical_flag=0;
uchar off_code_flag=0;

uchar wavelength_flag=0; //按钮标志位
uchar flag=0;          //串口接收计数标志位        

uchar c[7];//单片机发送的信号
uchar sure[7]={0x550xaa0xbb0xcc0xdd0xee0xff};//单片机发送的信号
uchar *cc; //浮点数如何拆分4字节

//dbm范围-40.00  ----- +10.00 放大一千倍 保留两位小数(舍弃千分位的小数)     
uchar wan;
uchar qian;
uchar bai;
uchar shi;
uchar ge;

//延时
void delay_1ms(uint x)
{
  uint ij;
  for(j=0;j       for(i=0;i<110;i++);
}

void delay_1us(uint x)
{
   uint j;
   for(j=0;j}
/*
   写指令数据到LCD
   PS=LRW=LE=高脉冲,D70-D7=指令码
*/
void write_cmd(uchar cmd)
{
  LCD_RS=0;
  LCD_RW=0;
  LCD_EN=0;
  P3=cmd;
  delay_1ms(2);
  LCD_EN=1;
  delay_1ms(2);
  LCD_EN=0; 
}
/*
  写显示数据到LCD
  RS=HRW=LE=高脉冲,D0-D7=数据
*/
void write_dat(uchar dat)
{
  LCD_RS=1;
  LCD_RW=0;
  LCD_EN=0;
  P3=dat;
  delay_1ms(2);
  LCD_EN=1;
  delay_1ms(2);
  LCD_EN=0;
}

/*  设定显示位置*/
void lcd_pos(uchar xuchar y)
{
   uchar pos;
   if(x==0)
   {
      x=0x80;
   }
   else if(x==1)
           {
      x=0x90;
   }
  else if(x==2)
        {   
    x=0x88;
}
else if(x==3)
      {
     x=0x98;
  }
pos=x+y;
write_cmd(pos); //显示位置
}

/* LCD初始值设定*/
void lcd_init()
{
  LCD_PSB=1;                //并口方式
  write_cmd(0x30);  //基本指令操作
  delay_1ms(2);
  write_cmd(0x0c);         //显示开,关光标
  delay_1ms(2);
  write_cmd(0x01); //清楚LCD的显示内容
  delay_1ms(2);
}

//单片机端口初始化
void mcu_init()
{
  OSCICN = 0x83;             // 晶振为12MHZ
  PCA0MD &= ~0x40;          // WDTE = 0 关闭看门狗,上电默认打开
  P0MDOUT |= 0x10;    // Enable UTX as push-pull output
  XBR0|=0x01; //在外设连接寄存器0上把UART0连接到引脚P0.4和P0.5
  P2MDOUT=0xFF; //P2.2和P2.3设为推挽输出方式,用于点亮LED
  P3MDOUT=0xFF; //P2.2和P2.3设为推挽输出方式,用于点亮LED
  XBR1= 0x40; //打开交叉开关,使能弱上拉,要使GPIO生效,必须打开交叉开关
  P2MDIN &= ~0x01;                    //把P20设为模拟输入
}

//AD初始化
void ADC0_Init (void)
{
   ADC0CN = 0x00;                      // ADC0关闭,普通工作方式,AD0busy写1 启动方式
   //REF0CN = 0x03;                    // 使用国外部基准电压
   AMX0P = 0x00;                       // ADC0 positive input = P2.0
   AMX0N = 0x1F;                       // ADC0 negative input = GND
   REF0CN = 0x08;                      // Enable on-chip VREF and buffer
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      16633  2010-08-02 14:51  Optical Metter\c8051F340.h

     文件      19129  2013-04-19 15:12  Optical Metter\Optical_Metter

     文件       8832  2013-04-19 14:32  Optical Metter\Optical_Metter.c

     文件       7717  2013-04-19 15:12  Optical Metter\Optical_Metter.hex

     文件         76  2013-04-19 15:12  Optical Metter\Optical_Metter.lnp

     文件      18382  2013-04-19 14:32  Optical Metter\Optical_Metter.LST

     文件      23643  2013-04-19 15:12  Optical Metter\Optical_Metter.M51

     文件      20631  2013-04-19 14:32  Optical Metter\Optical_Metter.OBJ

     文件       1598  2013-04-19 15:12  Optical Metter\Optical_Metter.Opt

     文件       3657  2013-04-19 15:12  Optical Metter\Optical_Metter.plg

     文件       2252  2013-04-19 15:12  Optical Metter\Optical_Metter.Uv2

     文件         44  2013-04-19 14:32  Optical Metter\Optical_Metter.__i

     文件       1525  2013-04-03 13:18  Optical Metter\Optical_Metter_Opt.Bak

     文件       2228  2013-04-03 13:18  Optical Metter\Optical_Metter_Uv2.Bak

     文件       6376  2005-03-22 15:22  Optical Metter\STARTUP.A51

     文件      14074  2013-04-01 14:23  Optical Metter\STARTUP.LST

     文件        749  2013-04-01 14:23  Optical Metter\STARTUP.OBJ

     目录          0  2013-04-19 21:11  Optical Metter

----------- ---------  ---------- -----  ----

               147546                    18


评论

共有 条评论