本帖最后由 jinglixixi 于 2023-6-26 10:25 编辑
1)包含项目方案的构想 在各种公共场合,对以点阵信息屏来发布信息。这种信息屏是以多个功能单元串接所构成的,每个功能单元既有输入接口,也有输出接口,从而有利于快速组装和扩展。 这里所用的是一款P4.75的显示板,又称半板,其显示分辨率为16*64点。 由于显示的信息量不大,故只用一块单元板即可。 在功能设计方面,是用它来显示当前时间、环境的光照强度、温度及大气压值。 为保障精确计时,所使用的是RTC模块DS1302,并利用TBK-RD8T37x开发板的触摸面板来调整RTC计时初试值、设置闹钟时间、切换功能显示等。 用于光照强度检测的传感器为BH1750,用于温度、大气压检测的为BMP085。
2)设计、搭建 该设计以MDK为开发工具,并配以ISP烧录软件来下载程序。 图1 MDK开发界面
图2 程序下载界面
在硬件设计方面,其构成如图3所示。
图3 结构框图
3)调试流程 在开发过程中,首先要解决的是点阵信息屏的驱动问题。 点阵信息屏与开发板的连接关系为: A---P47 B---P46 C---P45 D---P44 OE---P14 R1---P15 STB---P16 SCL---P17
图4 所用接口
相应引脚的语句定义为: #define LA P47 #define LB P46 #define LC P45 #define LD P44 #define OE P14 #define LR1 P15 #define STB P16 #define CLK P17
所用引脚的配置函数为: - void SC_GPIO_Init(void)
- {
- GPIO_Init(GPIO4, GPIO_PIN_7,GPIO_MODE_OUT_PP);
- GPIO_Init(GPIO4, GPIO_PIN_6,GPIO_MODE_OUT_PP);
- GPIO_Init(GPIO4, GPIO_PIN_5,GPIO_MODE_OUT_PP);
- GPIO_Init(GPIO4, GPIO_PIN_4,GPIO_MODE_OUT_PP);
- GPIO_Init(GPIO1, GPIO_PIN_7,GPIO_MODE_OUT_PP);
- GPIO_Init(GPIO1, GPIO_PIN_6,GPIO_MODE_OUT_PP);
- GPIO_Init(GPIO1, GPIO_PIN_5,GPIO_MODE_OUT_PP);
- GPIO_Init(GPIO1, GPIO_PIN_4,GPIO_MODE_OUT_PP);
- }
点阵屏发送数据的函数为: - void OutByte(uint16_t dat)
- {
- uint8_t i=0 ;
- for(i=0;i<16;i++)
- {
- CLK=LED_OFF;
- Delay(0x0010);
- if(dat&0x0001)
- {
- LR1=LED_ON;
- }
- else
- {
- LR1=LED_OFF;
- }
- dat=dat>>1;
- Delay(0x0010);
- CLK=LED_ON;
- }
- }
发送各列数据的函数为:
|