📄 initial.c
字号:
//***********************************************************************
//FILE: initial.c
//功能: 初始化所有外设
//***********************************************************************
#include "REG51.h"
//#include"port.h"
//#include"lcd.h"
//***********************************************************************
// PxM1 PxM2
// 0 0 准双向口
// 0 1 推挽
// 1 0 仅输入(高阻)
// 1 1 开漏
// KBA1 = P2^0; KBA2 = P1^2; KBA3 = P2^5; KBA4 = P0^1;
// KBB1 = P0^7; KBB2 = P0^6; KBB3 = P1^4; KBB4 = P2^6;
// KBB5 = P2^7;
// com0 = P0^5; com1 = P0^4; com2 = P0^3;
// ledf = P2^2; leda = P2^1; ledb = P0^0; ledc = P2^4;
//ledd = P1^7; lede= P1^6; ledg = P1^3; leddot = P2^3;
// LAMP = P0^2;
// P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
// KBB1 KBB2 com0 com1 com2 Lamp KBA4 ledb
// 1 1 0 0 0 0 1 1
// 1 1 1 1 1 1 0 1
// P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
// ledd lede RST KBB3 ledg KBA2 RxD TxD
// 1 1 1 1 1 1 1 0
// 1 1 0 1 1 0 0 1
// P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
// KBB5 KBB4 KBA3 ledc leddot ledf leda KBA1
// 1 1 1 1 1 1 1 1
// 1 1 0 1 1 1 1 0
/*void InitialIO() //初始化I/O口
{
P0M1=0xc3; //设置P0端口1100 0011
P0M2=0xfd; //1111 1101
P1M1=0xfe; //设置P1端口1111 1110
P1M2=0xd9; // 1101 1001
P2M1=0xff; //设置P2端口1111 1111
P2M2=0xde; //1101 1110
P3M1=0xff; //1111 1111
P3M2=0xff; //1111 1111
// ES = 0; // disenable UART interrupt
} */
//***********************************************************************
/*
void InitialRTC() //初始化RTC
{
RTCL =0x7f; //设置RTC的重装值
RTCH =0x00;
RTCCON =0x43; //允许RTC中断,使能RTC
WDCON =0xe0; //关闭WDT
IEN0 |=0x40; //使能RTC中断
}*/
//**********************************************************************
/*void UART_init()
{
SCON=0x50; // select BRG as UART Baud Rate Gen 0101 0000 mode1
SSTAT=0x60; // separate Rx / Tx interrupts 0110 0000
BRGR0=0xF0; // setup BRG for 9600 baud @ 7.373MHz internal RC oscillator
BRGR1=0x02;
// BRGR0=0x70; // setup BRG for 9600 baud @ 12MHz external Crystal
// BRGR1=0x04;
BRGCON = 0x03; // enable BRG
} */
void UART_init() /*串口初始化*/
{
SCON =0x70; /*串行口工作方式3,9位异步收发*/
TMOD =0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 252; //9600 工作在双倍速模式下。6T模式。。
TL1 = 252;
// AUXR=AUXR^0X40;
// PCON = 0x80;
// SADDR=0X01;
// SADEN=0X0FF;
RI = 0; //清收发标志
TI = 0;
TR1 = 1; /*启动T/C1*/
EA=1;
ES=1;
}
//***********************************************************************
/*
void InitialKey() //初始化按键相关
{
KBMASK =0x4f; //使能相应按键中断
KBCON =0x00; //清按键中断标志
IEN1 |=0x02; //允许按键中断
Mode =4; //显示模式初始化为1(时间模式)
KeyFlag =0; //初始化为无按键标志
ModifyP =0;
}*/
//***********************************************************************
/*
void InitialSPI() //初始化SPI总线
{
// SPCTL D7 D6 D5 D4 D3 D2 D1 D0
// SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0
// 1 1 0 1 1 1 1 1
SPCTL =0xdf; //初始化SPI时钟设置上升沿有效 1101 1111
SPSTAT =0xc0; //
}
*/
//***********************************************************************
//void InitialAll() //总初始化函数
//{
// InitialTime(); //初始化时间参量
// InitialSPI(); //初始化SPI总线
// InitialIO(); //初始化I/O口
// UART_init();
// INIdata();
// InitialLCD();
// InitialRTC(); //初始化RTC
// InitialKey(); //初始化按键相关
// FLASH_Ini();
// IniDat ();
// SendDatTo595(0xff<<Mode);//指示默认模式
// EA=1; //开总中断
//}
//********************************END************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -