📄 main._c
字号:
/*
实验十八:
LCD12864液晶屏显示实验。
1、LCD12864显示实验。显示AVR开发网及网址信息。
2、内部1 M晶振,程序采用单任务方式,软件延时。
3、进行此实验需要接上外置LCD12864液晶显示屏。
4、RW1用于调节显示屏的对比度。
AVR mega128学习板
www.iccavr.com 阿发
16:22 2007-10-18
*/
#include <iom128v.h>
#include "font.h"
#include "lcd12864.h"
/*IO口初始化函数*/
void io_init(void) {
DDRA = 0xFF; /*方向输出*/
PORTA = 0xFF; /*高电平*/
DDRB = 0x00; /*方向输入*/
PORTB = 0xFF; /*打开上拉*/
DDRC = 0xFF; /*不用的IO口建议设置为输入带上拉*/
PORTC = 0x00;
DDRD = 0x00;
PORTD = 0xFF;
DDRE = 0x00;
PORTE = 0xFF;
DDRF = 0x00;
PORTF = 0xFF;
DDRG = 0x00;
PORTG = 0xFF;
}
unsigned int get_ad(void) {
unsigned int i;
ADMUX = (1 << REFS0); /*基准AVCC、通道0*/
ADCSRA = (1 << ADEN) | (1 << ADSC) /*使能、开启*/
| (1 << ADPS1) | (1 << ADPS0); /*8分频*/
while(!(ADCSRA & (1 << ADIF))); /*等待采样结束*/
i = ADC; /*读取AD结果*/
ADCSRA &= ~(1 << ADIF); /*清标志*/
ADCSRA &= ~(1 << ADEN); /*关闭转换*/
return i; /*返回结果*/
}
void main(void) {
int t;
io_init(); /*IO口初始化*/
disp_init(); /*LCD初始化*/
disp_clear(0, 128, 0); /*清除四行显示*/
disp_clear(0, 128, 2);
disp_clear(0, 128, 4);
disp_clear(0, 128, 6);
disp_myself(0,0,124);
disp_myself(0,1,124);
disp_myself(0,2,124);
disp_myself(0,3,124);
disp_myself(0,4,124);
disp_myself(0,5,124);
disp_myself(0,6,124);
disp_myself(0,7,124);
disp_myself(8,0,124);
disp_myself(8,1,124);
disp_myself(8,2,124);
disp_myself(8,3,124);
disp_myself(8,4,124);
disp_myself(8,5,124);
disp_myself(8,6,124);
disp_myself(8,7,124);
disp_myself(112,0,124);
disp_myself(112,1,124);
disp_myself(112,2,124);
disp_myself(112,3,124);
disp_myself(112,4,124);
disp_myself(112,5,124);
disp_myself(112,6,124);
disp_myself(112,7,124);
disp_myself(120,0,124);
disp_myself(120,1,124);
disp_myself(120,2,124);
disp_myself(120,3,124);
disp_myself(120,4,124);
disp_myself(120,5,124);
disp_myself(120,6,124);
disp_myself(120,7,124);
disp_myself(0,5,123);
t=get_ad();
disp_to_bcd(1000);
disp_char_str(58, 0, "m"); /*显示网址信息*/
while (1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -