相信接触过STC15系列单片机的小伙伴们,应该会对其编程风格比较熟悉,没错,STC15系列单片机可以采用库函数编程,官方提供了标准的函数库,我们只需要利用好库函数,便可大大简化配置流程,从而提高编程效率。由于笔者这里的教程不是关于51单片机的基础教程,所以此处省去了新建工程以及如何添加库文件等操作。
首先,我们要养成良好的习惯,在使用任何一款板子的时候,先建一个配置板载资源的文件,当然要是板子比较复杂的话,可以分模块配置多个,由于笔者使用的板子比较简单,所以就只添加了一个名为“BSP_IO.h”的文件,顾名思义,就是一些输入输出的配置而已了。
接下来,我们来配置一下串口参数,在之前的帖子中我们知道,迪文DGUS屏的串口通信波特率配置的是115200,那么,我们在单片机程序中,自然也要讲串口通信的波特率配置成115200,其他的就不需要修改了:
程序中有需要用到串口定时向触摸屏刷新数据,所以,这里我们也配置一个定时器,并设置起中断频率为1000Hz,即:1ms中断一次。
接下来,我们需要根据板子上的IO分布,来配置一下IO口的输入输出模式,所有输入口均配置成“准双向口”,所有输出口均配置成“强推挽模式”。
另外,程序中也有用到两路0-5V电压的采集,所以此处我们还需要对ADC相关的参数进行配置,本例程中采用的是AD口分别是P10和P11,查询方式获取AD值:
至此,系统配置相关的东西基本就完成了,接下来,我们就需要自己写一些应用相关的函数了,本例中,笔者写了四个函数:
Uart1_Monitor(); //串口1数据监控
Uart1_Send(); //串口1发送指令
ADC_Sampling(); //ADC采样
GIOP_StateRefresh();//GPIO状态刷新
其中,Uart1_Monitor()函数,主要是用对串口中断接收到的数据进行解析,比如:DGUS屏按键返回的指令、参数设置的指令等;Uart1_Send()函数,主要用来定时向DGUS屏写入数据,比如:数据变量显示、图标变量显示等; ADC_Sampling()函数主要是对外部两路0-5V模拟量输入进行采样处理; GIOP_StateRefresh()函数主要是用来实时刷新输入输出口的状态。
-
单片机
+关注
关注
6044文章
44633浏览量
639563 -
程序编写
+关注
关注
1文章
14浏览量
8254
发布评论请先 登录
相关推荐
单片机Debug工具性能对比 单片机调试常用命令
单片机编程语言有哪些选择
单片机怎么写入程序
单片机的中断机制
单片机hex文件反编译成C语言的过程
keil可以读出单片机的程序吗
单片机烧录程序可以重新烧吗
一文读懂什么单片机:组成结构与应用

蓝牙模块如何实现单片机和手机端数据互传

新手学习单片机最常见的六大误区!

基于单片机多功能洗衣机控制

评论