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

📄 uart.c

📁 PS2_KEYBOARD for AVR
💻 C
字号:
/******************************************/
/*           广州天河双龙电子公司         */
/*           http://www.sl.com.cn         */
/*              PS2键盘演示程序           */
/*            作者:ntzwq@wx88.net         */
/*               2002年5月10日            */
/*  目标MCU:MEGA8   晶振:外部(EXT) 8MHZ   */
/******************************************/
//  1、使用ICCAVR的终端调试窗口(Terminal),进行调试。
//  2、对ICCAVR的终端调试窗口进行设置,设置串口为com1或com2,
//     通信波特率为19200(Tools->Environment Options...)。
//  3、将PS2键盘插入SL-MEGA8开发板的PS2键盘插座。 
#include <iom8v.h>
#define fosc 8000000 //晶振8MHZ
#define baud 19200	 //波特率
extern unsigned char read_flash(unsigned int add);
extern void init_kb(void);
/*  		字符输出函数 		 */
void putchar(unsigned char c)
	{	 
     while (!(UCSRA&(1<<UDRE)));
	 UDR=c;    
	}	
extern unsigned char getchar(void);	
/*			字符串输出函数	   	 */	
int puts(char *s)
	{
	while (*s)
		{
		putchar(*s);
		s++;
		}	
    putchar(0x0a);//回车换行
	putchar(0x0d);
	return 1;
	}
/*	 	   不含回车换行的字符串输出函数 	 */	
void putstr(char *s)
	{
	while (*s)
		{
		putchar(*s);
		s++;
		}	
	}	
/*			UART初始化				*/	
void uart_init(void)
{
 OSCCAL=read_flash(0x1f20);
 UCSRB=(1<<RXEN)|(1<<TXEN);//允许发送和接收
 UBRRL=(fosc/16/(baud+1))%256;
 UBRRH=(fosc/16/(baud+1))/256;
 UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
}
/*			RS232通信main函数		*/
void main(void)
{
 unsigned char i; 
 init_kb();
 uart_init();
 puts("广州天河双龙电子公司PS2键盘演示程序");
 puts("HTTP://WWW.SL.COM.CN");
 puts("MAIL TO:sllg@sl.com.cn");
 putchar(0x0a);
 putchar(0x0d);//换行 
 while(1)
    {
	 i=getchar();
	 if (i!=0)//按PC键盘开始测试
	   {
	    putstr("当前按键是:");
		putchar(i);
		putchar(0x0a);
		putchar(0x0d);
	    puts("广州天河双龙电子公司PS2键盘演示程序");
 		puts("HTTP://WWW.SL.COM.CN");
  		puts("MAIL TO:sllg@sl.com.cn");
		putchar(0x0a);
		putchar(0x0d); 
	   }	 
	}
}

⌨️ 快捷键说明

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