📄 mcu51_set.c
字号:
/*----------------------------------------------------------
系统时钟取11.059M
串口初始时取9600
键盘按四种波特分别发修改波特的命令,总有一个是相符合的波特,
键盘的波特可以用软件来实现也可由硬件来实现波特预置
球机开机时访问内部的IIC存储器取波特数,本程序现在还未编IIC部分
利用上电机的RAM为零可以来启动电机的转动方向,看门狗复位时各变量保持
不变因些作记忆功能
各口作初始设置要考虑能耗和外部的输出是否有影响
----------------------------------------------------------*/
#include <general.h>
void GlobalSet()
{
AUXR = 1; //全增益和外部存储器输出关闭
}
void WDT_cls(void)
{
WDT_CONTR=0xff; //0xff; 启动看门狗看门狗清零
}
void INT_set(void)
{
EX0=0,EX1=0,EX2=0,EX3=0; //中断四个外部全关闭
ET0=0,ET1=0;ES=1; //三个定时器全关闭,串口开,全局后开
IPH=0;IP=0; //中断优先全为0级,只有串口开
XICON=0; //外部中断23关并且优先级也为0
}
void INT_enable(void)
{
EA=1; //全局开
}
void INT_disable(void)
{
EA=0; //全局关
}
void timer_set(void)
{
/*---------------------------
T2CON可以通过TCLK RCLK两位分别设置接收和发送的波特率,为1采用定时器2的波特率,0则是定时器1的波选择率
其中T2可用于时钟外部输出,本程序并不用惯功能,只是在此作一个说明
TCON用于控制启动及标字位
-------------------------------*/
TCON=0;
TMOD=0x20; //定时器1工作于方式自动重装8位
T2CON=0x20; //定时器于波特率方式TCLK=0,RCLK=1
//定时器工作于接收用2发送用1的溢出率来表示
//全都工作于内部计数C/T_=0
}
void SCI_set(void)
{
SCON=0x50; //定义串口工作方式
//串口SM0SM1=1工作于8位可变方式,SM2=0多机使能位,REN=1
PCON=0x80; //定时器1溢出/2,=0x80则直接采用溢出率
}
/*------------------------------------------------------
串行口计算公式如下;
RCLK=1接收采用定时器2 Baud=Frequence/2/(65536-T2)/16
TCLK=0发送采用定时器1 Baud=Frequence/12/(256-TH1)/16
定时器1溢出=Frequence/12/(256-TH1)
--------------------------------------------------------*/
void SciTxdBaudSet()
{
//晶振采用11.0592MHz 波特为19200
TH1=-3; //重装值
TL1=0;
}
void baud_19200(void)
{
int x;
x=-18;
RCAP2L=(unsigned char)x;
RCAP2H=(unsigned char)(x>>8);
}
void baud_9600(void)
{
int x;
//为默认的最初方式,baudrate=f/32/T2溢出率
x=-36; //晶振取11.059M
RCAP2L=(unsigned char)x;
RCAP2H=(unsigned char)(x>>8);
}
void baud_4800(void)
{
int x;
x=-72;
RCAP2L=(unsigned char)x;
RCAP2H=(unsigned char)(x>>8);
}
void baud_2400(void)
{
int x;
x=-144;
RCAP2L=(unsigned char)x;
RCAP2H=(unsigned char)(x>>8);
}
void T1_start(void)
{
TR1=1;
}
void T1_stop(void)
{
TR1=0;
//计数关
}
void T2_start(void)
{
TR2=1;
}
void T2_stop(void)
{
TR2=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -