单片机时钟和闹钟设置,串口通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值