⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main._c

📁 ch452的数码管和键盘驱动程序
💻 _C
字号:
#include<iom8v.h>
#include<macros.h>
#include"delay.h"
#include"ch452ldriver.h"

/*******************************************************************
*函数名称:初始化串口
*函数功能:初始化USART为波特率9600,8bit数据,收发使能,接收中断允许
*入口参数:无
*出口参数:无
******************************************************************/
int Init_Uart(void)
{
    CLI();   //初始化USART时先关全局中断           
    UCSRB = 0x00;             
    UCSRA = 0x00;
    UCSRC = BIT(URSEL) | 0x06;
    UBRRL = 0x33;             //设置波特率低位
    UBRRH = 0x00;             //设置波特率高位
    UCSRB = 0x98;
    SEI(); 
	return 0x30;
}

/*************************************************
 函数名称:void Us0Transmit (unsigned char data)
 函数功能:发送数据
 入口参数:unsigned char data
 出口参数:无
*************************************************/
void Uart_Transmit (unsigned char data)
{
	while ( !(UCSRA & (1<<UDRE)));            //等待UDR为空
	UDR = data;
}

//UART中断接收服务函数,形如 04 xx 02 xx (xx xx)
//其中04为接收的标志,02为接收的长度(可变),括号里的为数据
//接收成功后,置位Us0RCoF,接收到的数据保存在Us0BufRec中,保存的数据是整个数据包
#pragma interrupt_handler UartRxIsr:12
void UartRxIsr(void)
{
     //unsigned char temp;
	 //temp = UDR;                                            //取出数据 
	 asm("nop");
}

void main(void)
{
   	unsigned char temp,i;
	Init_Int0();
	Delay_Nus(5);
	Init_Uart();
	Delay_Nus(5);
	Init_Ch452lport();
	Delay_Nus(5);
	Init_Ch452lsystem();
	Delay_Nms(1500);
	Display_Ch452lBCD(8,BCDdata);
	Delay_Nms(20);  //延时
			
	while(1)
	{
	    if(flag==1)
		{
		    temp=Read_Keycode();
			Uart_Transmit(0x02);
			Uart_Transmit(temp);
			flag=0;
		}
			
		/*for(i=0;i<8;i++)
		{
		    Delay_Nms(1000);
		    Ch452l_Writecommand(DATA_LEFT);//数据左移显示
	    }
		
		Display_Ch452lBCD(8,BCDdata);
		for(i=0;i<8;i++)
		{
		    Delay_Nms(1000);
		    Ch452l_Writecommand(DATA_RIGHT);//数据右移显示
	    }
		
		Display_Ch452lBCD(8,BCDdata);
		for(i=0;i<8;i++)
		{
		    Delay_Nms(1000);
		    Ch452l_Writecommand(LEFT_CIRCLE);//左循环显示
	    }
		
		Display_Ch452lBCD(8,BCDdata);
		for(i=0;i<8;i++)
		{
		    Delay_Nms(1000);
		    Ch452l_Writecommand(RIGHT_CIRCLE);//右循环显示
		}*/
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -