C8051F236基本外设配置
来源:互联网 发布:经济增加值算法 编辑:程序博客网 时间:2024/05/22 12:22
首先是最通用的外设串口
1.串口通信
基本配置
void Serport_Init(){CKCON=0x18;RCAP2L=0XEC;//这个就是TH2 TL2的重装值RCAP2H=0XFF;TL2=0XEC;//波特率19200TH2=0XFF;RCLK=1;//TIM2作为接收发送溢出时钟TCLK=1;CT2=0; TR2=1;SCON=0x70;ES=1;EA=1;}这里设置的波特率为19200且允许接收,开接收中断
打印函数
/**************串口打印函数*******///两个参数 一个uchar数组 一个数据长度///********************************/void RS_SendString(uchar* m,uchar lenth){uchar i;for(i=0;i<lenth;i++){SBUF=m[i];while(!TI);//等待发送结束TI=0;}}
中断服务函数
/*************数据接收程序****************///没有参数//结束符设置为OX0A 0X0D即换行符(可以进行修改)//当recover=1即代表串口接收完成/****************************************/void RS_Recive() interrupt 4//串口中断是4号位{uchar date;static uchar dic=0;static uchar num=0;if(RI==1){RI=0;date=SBUF;//获取数据RecBuf[num]=date;num++;lenth++;if(dic==1)//改进之后确认换行符才会将recover置1{if(date==0x0d){dic=0;recover=1;num=0;}else dic=0;} if(date==0x0a){dic=1;}}}
2.Flash读写
读:
当锁定Flash xdata将指向片外XRAM所以这里需要用code访问内部程序存储器
/*************Flash读取函数*********///参数addr 数据地址//返回uchar类型数据/**********************************/uchar Flash_Read(unsigned int addr){unsigned char code*ptr;EA=0;ptr=addr;EA=1;return *ptr;}
写:
解除锁定,xdata将指向Flash存储区
/***********Flash写入函数***********///含两个参数(uint)addr (uchar)date//一次性需要写入所有需要的数据//没有返回值/*********************************/void Flash_Write(uint addr,uchar lenth,uchar*arry){ uchar xdata*ptr;uchar i;EA=0;FLSCL=0X88;//允许对Flash进行写操作PSCTL=0X03;//允许写/擦除操作ptr=addr;for(i=0;i<lenth;i++){*(ptr+i)=0xf;}PSCTL=0X01;//不允许擦除for(i=0;i<lenth;i++){*(ptr+i)=*(arry+i);}PSCTL=0X00;EA=1;}
3.计数器配置
void counter_init(){TMOD=0x99;//只用一个定时器CKCON=0x18;//使用系统时钟 厉害了1/12MTH0=0;//TR开并且端口有低电平开始计数TL0=0;TH1=0;TL1=0;}只需要打开TR0,TR1即开始计数
阅读全文
1 0
- C8051F236基本外设配置
- C8051F330基本外设调试
- STM32 外设中断配置流程
- 单片机基本的外设通信接口
- stm32f10x 标准外设固件库时钟配置函数分析
- 学习DSP外设之I2C的配置和应用
- 学习DSP外设之UART的配置和应用
- 学习DSP外设之LCDC的配置和应用
- STM32中PWM外设的原理,使用与配置
- 基本配置
- 配置基本
- 基本配置
- 自定义外设
- dm6437外设
- DM642外设
- DM6437外设
- Linux-2.6.32.2内核在mini2440上的移植(九)---配置USB外设
- Linux-2.6.32.2内核在mini2440上的移植(十)---配置USB外设
- Laravel 一些日常性能优化的小技巧
- VC导入导出二维数组到 .txt
- vue学习笔记(一)
- typescript在日常项目中开发的处理
- Android Gradle Error
- C8051F236基本外设配置
- 如何使用swicth
- 修改(python) mysql 数据库 使其可以支持插入中文
- 数据库中主外键关联关系
- Fragment与Button对应滑动
- TP框架的配置文件
- Win32 API中使用定时器的三种方法
- 9
- 17多校contest two 1011Regular polygon ( 计算几何