提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
CMS80F251xEVB使用
文章目录
前言
EVB板c51程序
一、LCD默认进入时钟模式,P50按键按下一次进入闹钟模式,再按一次退出闹钟模式
二、P20按两次,选中分钟,再按一次,分钟加一,再按两次,选中秒钟,按一次,秒钟加一
三、时钟等于闹钟,D2灯亮灭三次,这时P20按一次,闹钟清零
四、P50按两次,进入串口模式
代码如下:
#include "dis_timer.h"
#define KEY1_STATE_0 0
#define KEY1_STATE_1 1
#define KEY1_STATE_2 2
#define KEY1_STATE_3 3
#define KEY2_STATE_0 0
#define KEY2_STATE_1 1
#define KEY2_STATE_2 2
#define KEY2_STATE_3 3
#define SINGLE_KEY1_TIME 1 //10ms
#define KEY1_INTERVAL 30 //300ms
#define SINGLE_KEY2_TIME 1
#define KEY2_INTERVAL 30
#define KEY1_NONE 0 //
#define KEY1_SHORT 1 //单击
#define KEY1_DOUBLE 2 //双击
#define KEY2_NONE 0
#define KEY2_SHORT 1
#define KEY2_DOUBLE 2
unsigned char leddata[16][2]={
{
0x07,0x0d},{
0x00,0x05},{
0x05,0x0b},{
0x01,0x0f},{
0x02,0x07},{
0x03,0x0e},{
0x07,0x0e},{
0x01,0x05},{
0x07,0x0f},{
0x03,0x0f},{
0x07,0x07},{
0x06,0x0e},{
0x07,0x08},{
0x04,0x0f},{
0x07,0x0a},{
0x07,0x02}};
unsigned char leddata1[10][2]={
{
0x0f,0x0d},{
0x08,0x05},{
0x0d,0x0b},{
0x09,0x0f},{
0x0a,0x07},{
0x0b,0x0e},{
0x0a,0x0e},{
0x09,0x05},{
0x0a,0x0f},{
0x0b,0x0f}};
unsigned char dat[4]={
0x89,0xAB,0xCD,0xEF};
int flag=0,flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,min_sec;
unsigned char P20_KeyValue,P20_KeyValue1,P50_KeyValue;
unsigned char P20_flag_10ms_key,P20_flag_10ms_key1,P50_flag_10ms_key;
unsigned int s1,s2,s3,s4,ss3=0,ss4=0,ss1=0,ss2=0;
unsigned int we,i,time=0,time1,time2,t1,t2,t3,temp,temp1,temp2;
//***************************************************//
//************Config************//
//***************************************************//
void UART0_Config(void)
{
BRTCON=0X80; //BRT使能;
BRTDL=0x64;//计数器初值,65380,波特率9600;
BRTDH=0xff;
FUNCCR=0x05; //UART0,BRT溢出时钟
SCON0=0X70; //多机控制,接受使能,8位异步模式
PCON=0X80;//波特率加倍
PS_RXD0=0X25;//P25作为引脚RX
P25CFG=0X02;//P25 RX功能
P24CFG=0X02;//P24 TXD0功能
ES0=1;//允许中断
// uint16_t BRTValue = 0;
// uint32_t BaudRateVlue = 9600;
//
//
// // (1)设置UARTx的运行模式
//
// UART_ConfigRunMode(UART0,UART_MOD_ASY_8BIT, UART_BAUD_BRT);
// UART_EnableReceive(UART0);
//
// //(2)配置UARTx的波特率
//
// UART_ConfigBRTClk(BRT_CLK_DIV_1);
//
// UART_EnableDoubleFrequency(UART0); /*波特率使能倍频:SMOD =1