|
本帖最后由 CodeMonkey 于 2013-1-14 13:01 编辑
另外要请教一个问题,AS6怎么软件仿真。- /*
- * LCD1602_C.c
- *
- * Created: 2013/1/14 11:23:45
- * Author: Tater
- */
- #include <avr/io.h>
- #include <util/delay.h>
- #define RS 0
- #define RW 1
- #define E 2
- void Busy(){
- DDRA = 0xFF;
- PORTA = 0xFF;
- DDRB |= (1<<E)|(1<<RW)|(1<<RS);
- PORTB =(PORTB & (~(1<<RS))) | (1<<RW);//RS = 0,RW = 1
- while (PORTA & 0x80)
- {
- PORTB &= (~(1<<E));//E = 0
- PORTB |= (1<<E);//E = 1
- }
- PORTB &= (~(1<<E));//E = 0
- }
- void WriteCommand(unsigned char btCommand){
- Busy();
- PORTB = (PORTB & (~(1<<RS)|(1<<RW))) | (1<<E);//RS = 0 RW = 0 E = 1
- PORTA = btCommand;
- PORTB &= (~(1<<E));//E = 0
- }
- void WriteData(unsigned char btData){
- Busy();
- PORTB = (PORTB & (~(1<<RW))) | (1<<RS) | (1<<E);//RS = 1 RW = 0 E = 1
- PORTA = btData;
- PORTB &= (~(1<<E));//E = 0
- }
- void Init(){
- DDRA = 0xFF;
- PORTB &= (~(1<<E));//E = 0
- WriteCommand(0x38);
- _delay_ms(10);
- WriteCommand(0x0c);
- _delay_ms(10);
- WriteCommand(0x01);
- _delay_ms(10);
- WriteCommand(0x06);
- _delay_ms(10);
- }
- int main(void)
- {
- Init();
- while(1)
- {
- WriteCommand(0x80);
- WriteData('a');
- }
- }
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|