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

📄 comm.c

📁 320*240点阵液晶(sed1335)驱动程序,keil c调试通过,io连接方式
💻 C
字号:
//*************************************************************************
//#include <REG51.H>  
#include "comm.h"  
//#include <Reg1210.H>
#include "MSC1210.H"

#define XTAL          6000000      // 18432000 XTAL frequency

// defines for UART BAUDRATE
#define BAUDRATE      4800          // 19200bps communication baudrate
#define T2RELOAD   (65536-(XTAL/32/BAUDRATE))

// defines for A/D Converter setup
#define A_CLK      ((XTAL/1000000)-1)       // about 1MHz Analog Clock
#define ANA_CLK    (XTAL/(A_CLK+1))         // precise Analog Clock
#define DECIMATION (ANA_CLK/64/10)          // 10 Hz Decimation
#define CONV_FREQ  (ANA_CLK/64/DECIMATION)  // Conversion Frequency

#include <string.h>

#define INBUF_LEN 32   //数据长度

unsigned char inbuf1[INBUF_LEN];
unsigned char count3=0;

/********************************************************************* 
*
* 函 数 名: Com_serial_init
* 功能描述: 串口初始化 
* 函数说明:
* 调用函数: 在源程序开头定义是否用w77e58或22。1184M晶振
* 全局变量:
* 输 	入: 无
* 返 	回: 无
* 设 计 者:	yang	日期:	2002-12-09
* 修 改 者:		日期:	
* 版 	本:
***********************************************************************/
void comm_init (void)
{
	EA = 0;                         //CPU中断 disable
/*
	TR1 = 0;			 //stop timer 1 
	TMOD  |= 0x20;      	// 定时器1模式: 2(8位自动装载)
	CKCON |= 0x10;			// Set timer 1 to clk/4		波特率*3
	PCON  |= 0x80; 			// 0x80=SMOD: 设置串口波特率倍频 波特率*2
	TH1    = 0xec;			//确定波特率的定时器1自动重装数据  6.0M 0xf9=4800

	ET1  =  0;			// disable timer 1 interrupt
	TR1  =  1;                       //* 定时器1运行

	SM0 = 0; SM1 = 1;		// serial port MODE 1
	SM2 = 0;			// SM2=1时收到的第9位为1才置位RI_0标志
*/
//	CKCON = 0;                        // 0 MOVX cycle stretch  CKCON	时钟控制
//	PDCON = 0x14;                     // turn on ADC-Vref, SPI and Systimers	PDCON MSC1210 外围模块控制寄存器
	REN = 1;				//允许接收
	TI  = 0;				//清除发送中断标志
	RI  = 0;				//清除接收中断标志
	ES    = 1;				//串口中断允许
	PS    = 0;				//设量串口中断优先级低
	EA    = 1;             	//CPU中断允许	
}


void Serial_init(void)
{
	// Setup Serial Interface
	T2CON   = 0x34;                   // Use Timer 2 as baudrate generator  
	RCAP2H  = (T2RELOAD >> 8);        // baudrate reload factor
	RCAP2L  = T2RELOAD;
	SCON   = 0x52;                   // enable serial uart & receiver
	P3DDRL &= 0xF0;                   // set port pins of UART to input/strong drive output
	P3DDRL |= 0x07;                   // set port pins of UART to input/strong drive output
}



//向串口发送一个字符 
void put_char_com(unsigned char ch)  
{
    SBUF=ch;
    while(TI==0);
    TI=0;
}

//向串口发送一个字符串,strlen为该字符串长度 
void put_string_com(unsigned char *str,unsigned int strlen)
{
    unsigned int k=0;
    do 
    {
        put_char_com(*(str + k));
        k++;
    } while(k < strlen);
}

void get_string_com(unsigned char *c ,unsigned char n)
{
	unsigned char i;

	while (count3 < n);
		
	for (i=0;i<n;i++)
		c[i]=inbuf1[i];

	count3=0;
}

//串口接收中断函数 
void serial () interrupt 4 using 3 
{
    if(RI)
    {
        RI = 0;
        inbuf1[count3]=SBUF;

		if( (count3==(INBUF_LEN-1)))
 			count3=0;//如果串口接收的数据达到INBUF_LEN个
		else
			count3++;
    }

//	send_char_com(read_flag);
}





⌨️ 快捷键说明

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