3.ATmega16通用IO口.pptVIP

  • 5
  • 0
  • 约9.48千字
  • 约 42页
  • 2016-08-25 发布于河南
  • 举报
3.ATmega16通用IO口

(3)、数码管显示(串行) 三、AVR通用I/O口 #define HC164_data PORTA.0 #define HC164_clk PORTA.1 void HC164_send_byte(char byte) { char i; for (i=0;i=7;i++) { HC164_data = byte 1 i; HC164_clk = 1; HC164_clk = 0; } } void display(void) { char temp,i; for(i=0;i=5;i++) { temp = led_7[dis_buff[i]]; if (point_on (i==2 || i==4)) HC164_send_byte(temp | 0x80); else HC164_send_byte(temp); PORTC = position[i]; delay_ms(2); PORTC = 0xff; } } 。。。。。。。。。 (4)、字符LCD 三、AVR通用I/O口 (4)、字符LCD 三、AVR通用I/O口 (4)、字符LCD 三、AVR通用I/O口 函数功能简介: 1)void LCD_init(void) 该函数对LCD进行初始化,将显示位置回到第0行的第0列的起始位置处。函数的参数应是LCD显示器的列数(一行能够显示的字符数)。使用LCD显示器时,必须先使用该函数对LCD显示器进行初始化。 2)void LCD_clear(void) 该函数清除LCD的显示,并将显示位置回到第0行的第0列的起始位置处。 3)void LCD_write_data(unsigned char data) 写数据到LCD。 4) LCD_write_char(unsigned char x,unsigned char y,unsigned char data) 该函数将字符c在当前的显示位置上显示出来。 5)void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)该函数将在从当前的显示位置开始,显示定义在SRAM中的字符串(str为SRAM中定义的字符串的指针)。 (4)、字符LCD 三、AVR通用I/O口 6)void LCD_write_com(unsigned char com) 写命令到LCD。 (4)、字符LCD 三、AVR通用I/O口 初始化及主程序: #include iom16v.h #include lcd1602.h void main(void) {?unsigned char i; ?unsigned char *p; ?PORTA = 0xFF;??? ?/*打开上拉*/ ?DDRA = 0x00;??? ?/*方向输入*/ ?PORTB = 0xFF;??? /*电平设置*/ ?DDRB = 0xFF;???? /*方向输出*/ ?PORTC = 0x7F; ?DDRC = 0x80; ?PORTD = 0xFF; ?DDRD = 0x00; delay_ms(100); ?LCD_init(); while (1) { ?? i = 1; ?? p = “LCD-1602-test”; ?? LCD_clear(); ?? LCD_write_str(5,0,Welcome); ?? delay_ms(250);?? ? while (*p) { LCD_write_char(i,1,*p); ??? i ++; ??? p ++; ??? delay_ms(250); ??? } ?? delay_ms(250); ?? } } (4)、字符LCD 三、AVR通用I/O口 初始化及主程序: #include iom16v.h #define RS_CLR?PORTD = ~(1 PD3) #define RS_SET?PORTD |= (1 PD3) #define RW_CLR?PORTD = ~(1 PD4) #define RW_SET?PORTD |= (1 PD4) #define EN_CLR?PORTD = ~(1 PD6) #define EN_SET?PORTD |= (1 PD6) /*延时函数*/ void delay_us(unsigned int n) { ?if (n == 0) { ??ret

文档评论(0)

1亿VIP精品文档

相关文档