为了电子设计大赛,我又要重新学习单片机了!
现在来总结总结以前学习单片机的经验和体会:
1、单片机其实并不难,无非就是那几个模块,而真正难的是:一个外围芯片(比如下面将要驱动的液晶芯片)的工作时序以及准确的延时;然后利用单片机的资源去按照时序编程就得了,所以说了只要把一种单片机的常用模块搞通了,其它也就一样简单,很容易就OK了!
2、单片机编程的框架:模块的初始化,然后死循环和中断,很简单吧!
3、单片机编程应该注意的问题,一是要按照说明书给出的时序来编程,不要自己想当然了;二是要控制好延时,大部分单片机系统的不稳定,有很多是因为延时不到位引起的;而对PIC等单片机来说,还得注意使用时一定得注意单片机的端口的方向(输入还是输出)!
本驱动采用4bit,2-line模式电路图如下:
液晶驱动程序头文件
#ifndef LCD_H
#define LCD_H
#include ”main.h“
#define uchar unsigned char
//define port function
#define LCD_DB7 RB5 //;//占用的I/O口定义
#define LCD_DB6 RB4 //;//该行硬件连接:LCD的DB6与RB4连接,其它类推
#define LCD_DB5 RB3 //;
#define LCD_DB4 RB2 //;
#define LCD_E RA3 //;
#define LCD_RS RB1 //;
#define LCD_DB7_DIR TRISB5 //;//对应的方向寄存器定义
#define LCD_DB6_DIR TRISB4 //;
#define LCD_DB5_DIR TRISB3 //;
#define LCD_DB4_DIR TRISB2 //;
#define LCD_E_DIR TRISA3 //;
#define LCD_RS_DIR TRISB1