-
大小: 29KB文件类型: .rar金币: 2下载: 1 次发布日期: 2023-02-06
- 语言: 其他
- 标签: STC12C60S2 双串口 51
资源简介
STC12C60S2单片机双串口程序,经本人在Keil UV3中测试,下载后没有问题。

代码片段和文件信息
#include “common.h“
#include “main_ram.h“
#if 0
void put_char(unsigned char ch){
SBUF = ch;
while(!TI);
TI = 0;
}
#endif
void put_char_s2(unsigned char ch){
S2BUF = ch;
while((S2CON & 0x02) == 0);
S2CON = S2CON & (~0x02); //S2CON: S2SM0 S2SM1 S2SM2 S2REN S2TB8 S2RB8 S2TI S2RI
}
/* DMX512软件控台转发程序 晶振24M */
void main(void){
unsigned int i;
DIM_NO = 0;
data_p = &dmx_rec_buf[0];
counter = 512;
SOFT_C = 1;
AUXR = 0x54; //定时器0: 12T 定时器1: 1T 独立波特率发生器运行 独立波特率发生器工作在1T模式
TMOD &= 0x0f;
TMOD |= 0x20; //定时器1: 1T 8位重载定时模式
TH1 = 0xFF;
TL1 = 0xFF;
SCON = 0xD0; //SM0 SM1 SM2 REN 串行口工作在方式39位可变波特率 750K TB8 = 0
S2CON = 0xD8; //SM0 SM1 SM2 REN 串行口工作在方式39位可变波特率 250K TB8 = 1
BRT = 0xFD; //独立波特率寄存器 串口2波特率250kbps
//BRT = 243; //独立波特率寄存器
//AUXR = 0x15; //独立波特率576001T
TMOD &= 0xf0;
TMOD |= 0x01; //设置定时器0模式为:16位定时模式
TH0 = 0x15; //定时值(uS):30000
TL0 = 0xA2;
//TH0 = 0xB1; //定时值(uS):10000
//TL0 = 0xE0;
//PCON |= 0x80; //FF 1.5MBPS FD 500K
PCON &= 0x7F; //FF 750KBPS FD 250K
TCON = 0x50; //TR1 = 1 TR0 = 1
IE = 0x92;
PS = 1;
//CCAPM0 = 0x49; //16位软件定时器模式
CCAPM0 = 0x00; //无操作
CCAPM1 = 0x00; //无操作
CH = 0;
CL = 0;
CMOD = 0x00; //PCA时钟源为 fosc/12 不允许CF产生中断
//CMOD = 0x01; //PCA时钟源为 fosc/12 允许CF产生中断
//CCON = 0;
CCAP0L = 0x52; //FFEC 8us
CCAP0H = 0xFF; //FF52 88us
//CCON = 0x40; //CCON: CF CR - - - - CCF1 CCF0
P1M1 = 0x00;
P1M0 = 0x00;
//P3M1 = 0x7C;
//P3M0 = 0x00;
#if 0
//测试代码
for(i = 1; i<512; ++i){
dmx_send_buf[i] = 0x55;
}
dmx_send_buf[0] = 0x00;
//dmx_send_buf[253] = 0x12;
//dmx_send_buf[254] = 0x13;
//dmx_send_buf[255] = 0x14;
#endif
while(1){
if(CTL_A){ // 30ms
CTL_A = 0;
#if 0
//测试代码
TB8 = 1;
//for(i = 0; i < 512; ++i)
for(i = 0; i < 3; ++i)
put_char(dmx_send_buf[i]);
//put_char(0x00);
//put_char(0x55);
//put_char(0x55);
#endif
//进入PCA中断标志
Flag_PCA = 0;
//DMX512数据包发送程序段
CCON = 0;
CL = 0x52;
CH = 0xFF;
P1_3 = 0;
CR = 1;
while(CF==0);
CCON = 0;
P1_3 = 1;
CL = 0xEC;
CH = 0xFF;
CR = 1;
while(CF==0);
CCON = 0;
for(i = 0; i < 512; ++i){
put_char_s2(dmx_rec_buf[i]);
}
//进入PCA中断则停机
while(Flag_PCA==1);
#if 0
//测试代码
for(i = 509; i < 512; ++i){
put_char_s2(dmx_rec_buf[i]);
}
#endif
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 13646 2010-02-03 20:38 STC12C5A08S2\debug\STC12C5A08S2.uvproj
文件 1155 2010-02-03 21:09 STC12C5A08S2\debug\STC12C5A08S2.plg
文件 90 2010-02-03 21:09 STC12C5A08S2\debug\STC12C5A08S2.lnp
文件 11606 2010-02-03 21:09 STC12C5A08S2\debug\STC12C5A08S2.M51
文件 1082 2010-02-03 21:09 STC12C5A08S2\debug\STC12C5A08S2.hex
....... 56172 2010-02-03 21:08 STC12C5A08S2\debug\STC12C5A08S2_uvopt.bak
文件 5988 2010-02-03 21:09 STC12C5A08S2\debug\main.lst
文件 5544 2010-02-03 21:09 STC12C5A08S2\debug\main.obj
文件 2026 2010-02-03 21:09 STC12C5A08S2\debug\serial_isr.lst
文件 2592 2010-02-03 21:09 STC12C5A08S2\debug\serial_isr.obj
文件 2451 2010-02-03 21:09 STC12C5A08S2\debug\main_isr.lst
文件 2793 2010-02-03 21:09 STC12C5A08S2\debug\main_isr.obj
文件 9474 2010-02-03 21:09 STC12C5A08S2\debug\STC12C5A08S2
....... 56176 2010-02-03 21:09 STC12C5A08S2\debug\STC12C5A08S2.uvopt
文件 3244 2010-02-03 20:59 STC12C5A08S2\source\common.h
文件 3080 2010-02-03 21:09 STC12C5A08S2\source\main.c
文件 43 2010-02-03 20:57 STC12C5A08S2\source\main.h
文件 753 2010-02-03 21:08 STC12C5A08S2\source\serial_isr.c
文件 197 2010-02-03 20:55 STC12C5A08S2\source\serial_isr.h
文件 5387 2007-05-31 10:54 STC12C5A08S2\source\STARTUP.A51
文件 1048 2010-02-03 20:57 STC12C5A08S2\source\main_isr.c
文件 281 2010-02-03 20:56 STC12C5A08S2\source\main_ram.h
目录 0 2010-02-03 19:18 STC12C5A08S2\debug
目录 0 2010-02-03 19:18 STC12C5A08S2\source
目录 0 2010-02-03 19:18 STC12C5A08S2
----------- --------- ---------- ----- ----
184828 25
相关资源
- MODERN ROBOTICS MECHANICS PLANNING AND CONTROL
- 51 单片机 红外避障小车 大集合136
- 最新的北京地铁shp文件75146
- 程序员专用字体YaHei.Consolas.1.11b42517
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- 清翔电子MCS51开发板资料_新版 01_开发
- MCS_51单片机与8255A的接口设计
- Rtx51_tiny_RTOS中文版.pdf
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- proteus仿真 AT89C51输出各种波形
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- NRF24L01实现51与STM32双向通讯
- 基于c8051f020的AD转换程序及LCD显示程序
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 双串口调试助手 V4.0 _ 可同时调试两个
- 课程设计蔬菜大棚自动控制系统,包
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 基于89c51的数字钟
评论
共有 条评论