首页->【玩CortexM0】

24 0

[Nuvoton M0516] 实验九 并口彩色LCD驱动实验

这个实验相对简单多了,因为所有IO口的实验已经做完也理解了,此例仅仅是并口输出实验,具体程序代码就不给了——太简单了。

本实验是独立实验。采用1.5寸26K色的LCD,8位数据口5根控制线,一共需要13个IO口,考虑到口的一边性易连线,所以用P0口作为8位并口数据,P2口的P20~P24作为信号线,定义如下:

#define dc  P20_DOUT//1=Data & 0=Command

#define res P21_DOUT//Reset LCD

#define rd  P22_DOUT//Read

#define rw  P23_DOUT//Write

#define cs  P24_DOUT//Chip Select

#define dat  P0_DOUT//Para Data


有了上述定义,在实际调用中8位数据直接赋值dat,写入LCD ram中即可,信号线如果不读取LCD的内存或状态,可以省略rd信号,将LCD上的rd直接接+V或通过5~10K电阻接+V。

结果看照片91-刷屏显示汉字,91-刷屏显示汉字.JPG

图92-刷屏显示ASCII码。92-刷屏显示ASCII码.JPG

实际上整个Nuvoton M0516的实验到实验八结束,可以实现1个程序计数器、4路ADC、2路PWM、1路脉冲输出、2路脉冲截获、1路4线LCD显示,用了2个Timer0,1,系统主时钟可以从8MHz调到88MHz稳定工作[芯片手册建议72MHz]。其中计数器,ADC,脉冲产生,脉冲截获都是采用中断方式,是的主程序主要是运算和处理显示。从并口LCD的实验九来看,M05xx系列的IO口的速度比LPC824的快——从刷屏速率上可以直观的看出这一点。其他功能和性能差不多。如果还有其他想做的实验可以提出来,我们单独实现。Nuvoton的M05xx的实验暂时到此告一段落。

最后我们总结一下,Nuvoton M05xx的M0我们采用的是寄存器写+函数的方式。这种方式编程比采用mbed库编程LPC824的方法要麻烦一点,需要经常翻看各种手册,理解32位寄存器的各个位的命名和作用,而后写入数值,驱动芯片工作。好处是从较为底层理解和了解芯片的工作方式,缺点是当实例不多时,一点一点啃文字到成为编程代码很累,且当遇到问题求助无人时更为困难,适合在一家固定的公司,差不多一直玩一种或一类芯片。

作者于2017-02-02 13:08:40修改!
楼主可见