|
[STM32F401-DISCO开发板]实验一、STM32F401 DISCO开发板介绍,点亮LED [STM32F401-DISCO开发板]实验三、2路ADC采样+2路PWM输出实验 这款显示器是黑白的,横向65点阵纵向102点阵,采用8X6点阵非标ASCII码,一行可以显示17个英文X8行,基本够用了。 首先在项目目录中创建一个incs文件夹,将6903.h文档拷贝进去;而后在IAR项目中创建1个文件夹,命名为incs,并且将incs文件夹中的6903.h加进去。 6903.h代码如下: DigitalOut sdat(PE_15); DigitalOut sclk(PE_13); DigitalOut sreg(PE_11); DigitalOut sres(PE_9); extern int k; //6903 102X65LCD const unsigned char asc2[][6]={//8x6 Dots 32-126[0-94] {0x00,0x3E,0x45,0x49,0x51,0x3E},//0 {0x00,0x00,0x21,0x7F,0x01,0x00},//1 {0x00,0x31,0x43,0x45,0x49,0x31},//2 {0x00,0x22,0x49,0x49,0x49,0x36},//3 {0x00,0x04,0x0C,0x14,0x7F,0x04},//4 {0x00,0x72,0x51,0x51,0x51,0x4E},//5-5 {0x00,0x3E,0x49,0x49,0x49,0x06},//6 {0x00,0x40,0x43,0x4C,0x50,0x60},//7 {0x00,0x36,0x49,0x49,0x49,0x36},//8 {0x00,0x30,0x48,0x48,0x48,0x3F},//9 {0x00,0x1F,0x24,0x64,0x24,0x1F},//A-10 {0x00,0x41,0x7F,0x49,0x49,0x36},//B {0x00,0x3E,0x41,0x41,0x41,0x22},//C {0x00,0x41,0x7F,0x41,0x41,0x3E},//D {0x00,0x41,0x7F,0x49,0x49,0x63},//E {0x00,0x41,0x7F,0x49,0x5C,0x60},//F-15 {0x00,0x3E,0x41,0x45,0x47,0x24},//G {0x41,0x7F,0x08,0x08,0x08,0x7F},//H {0x00,0x00,0x41,0x7F,0x41,0x00},//I {0x00,0x42,0x41,0x7F,0x40,0x40},//J {0x00,0x41,0x7F,0x59,0x24,0x43},//K-20 {0x00,0x40,0x7F,0x41,0x01,0x03},//L {0x00,0x7F,0x20,0x1E,0x20,0x7F},//M {0x00,0x7F,0x30,0x18,0x06,0x7F},//N {0x00,0x3E,0x41,0x41,0x41,0x3E},//O {0x00,0x41,0x7F,0x49,0x48,0x30},//P-25 {0x00,0x3E,0x41,0x47,0x42,0x3D},//Q {0x00,0x41,0x7F,0x49,0x4C,0x33},//R {0x00,0x32,0x49,0x49,0x49,0x26},//S {0x00,0x60,0x41,0x7F,0x41,0x60},//T {0x00,0x7E,0x01,0x01,0x01,0x7E},//U-30 {0x00,0x7C,0x02,0x01,0x02,0x7C},//V {0x00,0x7C,0x03,0x3C,0x03,0x7C},//W {0x00,0x43,0x24,0x18,0x24,0x43},//X {0x00,0x60,0x18,0x07,0x18,0x60},//Y {0x00,0x63,0x45,0x49,0x51,0x63},//Z-35 {0x00,0x00,0x00,0x01,0x00,0x00},//. {0x00,0x14,0x14,0x14,0x14,0x14},//= {0x00,0x08,0x08,0x3E,0x08,0x08},//+ {0x00,0x08,0x08,0x08,0x08,0x08},//- {0x00,0x00,0x00,0x24,0x00,0x00},//:-40 }; //Write Plus void wri(void){sclk=0;sclk=1;} //Write a byte to lcd dt=data,com=reg/data void b2l(unsigned char dt,unsigned char com){ unsigned char i; if(com)sreg=1;else sreg=0; for(i=0;i<8;i++){ if(dt&0x80){sdat=1;}else{sdat=0;}; dt=dt<<1; wri(); } } //Set lcd display X,Y void setXY(unsigned char X,unsigned char Y){ b2l(0x40 | Y,0);//column b2l(0x80 | X,0);//row } //lcd Clear void lcdClear(void){ unsigned char t,k; setXY(0,0); for(t=0;t<9;t++){for(k=0;k<102;k++){b2l(0x00,1);}} } //display a ASCII code void c2l(unsigned char x,unsigned char y,unsigned char c){ unsigned char line; setXY(x*6,y); for (line=0;line<6;line++) b2l(asc2[c][line],1); } //LCD6903 Initial 102x64 void lcdInit(void){ wait(0.20); sres=0; wait(0.20); sres=1; wait(0.20); b2l(0x25,0);//00100 PD=1dcOn|=0Dcoff V=0Up|=1Left H==1 wait(0.005); b2l(0x14,0);//Plus width L000~111=1/6-1/7-1/8-1/9//14=1/7 wait(0.005); b2l(0xB4,0);//SET VOP~8.96V wait(0.005); b2l(0x20,0);//PD=0,H=0,V=0 b2l(0x0C,0);//Set off wait(0.005); } //Display ASCII Test void dispAsc(void){ int i,j; for(i=0;i<8;i++){ for(j=0;j<17;j++){ c2l(j,i,k); if(k>39){k=0;}else{k++;} } } } //END Files// main.cpp的前边加上: #include "6903.h" 接着加上: Serial lptOut(USBTX, USBRX);//由PinNames.h定义的串口:PA_2,PA_3 DigitalOut myled(PD_12);//定义PD_12绿的的LED 接着定义一个公共变量: int k=0; main主函数如下: int main(){ lcdInit(); lcdClear(); lptOut.printf("LCD6903 Test !\n\r"); while(1){ dispAsc(); myled = !myled; lptOut.printf("LCD6903 Test ! \n\r"); wait(0.5f); lcdClear(); } } 串口速率设置在mbed_config.h文件中。 编译下载后程序运行为:在PA_2——串口RX,PA_3——串口TX,输出“LCD6903 Text !”。照片21为LCD6903以及虚拟串口硬件连接,照片22是LCD6903 轮显刷屏ASCII码,截图23是串口输出的显示数据。 |
21
22
23
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
谢谢