📄 bishe.c
字号:
#include "zlg7289.h"
#define BAUDRATE 9600 //波特率
#define LED0 0
#define LED1 1
#define LED2 0
#define LED0_ON() PORTB&=~(1<<LED0)
#define LED1_ON() PORTB&=~(1<<LED1)
#define LED2_ON() PORTA&=~(1<<LED2)
#define LED0_OFF() PORTB|=(1<<LED0)
#define LED1_OFF() PORTB|=(1<<LED1)
#define LED2_OFF() PORTA|=(1<<LED2)
volatile unsigned char PC_COMMAND;
//-----------------------------------------------------------------
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00; //disable while setting baud rate
UBRR0L =(F_CPU/BAUDRATE/16-1)%256;
UBRR0H =(F_CPU/BAUDRATE/16-1)/256;
UCSR0C = (1<<URSEL0) | (3<<UCSZ00);
// UCSR0B = (1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0); //enable
UCSR0B = (1<<RXEN0)|(1<<TXEN0); //enable
}
void put_c(unsigned char c) //发送采用查询方式
{
while( !(UCSR0A & (1<<UDRE0)) );
UDR0=c;
while( !(UCSR0A & (1<<TXC0)) );
UCSR0A|=(1<<TXC0);
}
//-------------------------------------------------------------------
void port_init(void)
{
DDRB|=(1<<LED0)|(1<<LED1);
DDRA|=(1<<LED2) ;
}
void external_intrupt(void)
{
GICR= 0x80;//启用外部中断1
MCUCR= 0x00; //低电平触发
}
void Key_Use(unsigned char Key)
{
switch (Key)
{
case 0x00:break;
case 0x01:break;
case 0x02:break;
case 0x03:break;
case 0x04:break;
case 0x05:break;
case 0x06:break;
case 0x07:break;
case 0x08:break;
case 0x09:break;
case 0x0A:break;
case 0x0B:break;
case 0x0C:break;
case 0x0D:break;
case 0x0E:break;
case 0x0F:break;
case 0x10:break;
case 0x11:break;
case 0x12:break;
case 0x13:break;
case 0x14:break;
case 0x15:break;
case 0x16:break;
case 0x17:break;
case 0x18:break;
case 0x19:break;
case 0x1A:break;
case 0x1B:break;
case 0x1C:break;
case 0x1D:break;
case 0x1E:break;
case 0x1F:break;
case 0x20:break;
case 0x21:break;
case 0x22:break;
case 0x23:break;
case 0x24:break;
case 0x25:break;
case 0x26:break;
case 0x27:break;
case 0x28:break;
case 0x29:break;
case 0x2A:break;
case 0x2B:break;
case 0x2C:break;
case 0x2D:break;
case 0x2E:break;
case 0x2F:break;
case 0x30:break;
case 0x31:break;
case 0x32:break;
case 0x33:break;
case 0x34:break;
case 0x35:break;
case 0x36:break;
case 0x37:break;
case 0x38:break;
case 0x39:break;
case 0x3A:break;
case 0x3B:break;
case 0x3C:break;
case 0x3D:break;
case 0x3E:break;
case 0x3F:break;
}
}
int main(void)
{
cli();
port_init();
ZLG7289_Init();
external_intrupt();
uart0_init();
sei();
LED0_OFF() ;
LED1_OFF();
LED2_ON() ;
while(1)
{
;
}
}
SIGNAL(SIG_INTERRUPT1) //INT1中断服务程序
{
cli();
//硬件自动清除INTF0标志位
PC_COMMAND=ZLG7289_Key() ;
Delay_Nms(10);
PORTB=PC_COMMAND ;
put_c(PC_COMMAND) ;
put_c(0x01) ;
Delay_Nms(100);
//sei();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -