一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

利用C程序指针及函数参数实现单片机任意IO口线操作的方法与流程

2022-11-23 13:27:50 来源:中国专利 TAG:

技术特征:
1.利用c程序指针及函数参数实现单片机任意io口线操作的方法,基于c程序语言指针的指针和带参数函数访问、控制、选通所需的io口线,其特征在于:按io口所需操作功能数量增加相应数量的指向io端口功能寄存器地址指针的指针变量数组,对于只有p1到px口的单片机,指针数组的0元素值为0,1号元素值对应p1口的功能寄存器地址,且元素值做强制指针类型转换,x号元素对应x端口功能地址的指针类型转换值;在使用io口线操作前,先设定端口号、口线位,在后续的io口操作中,io口线操作语句转换为对指针变量数组中端口号对应的指针变量元素赋值或取值;具体包括如下步骤:步骤1、创建指向io端口功能寄存器地址指针的指针变量数组;步骤2、设置端口号及口线位对应排列的二维常量数组;步骤3、在对单片机io口线操作前,使用一个带参数的io口设置函数,取出将要操作的端口号值及口线位值分别写入两个8位的全局变量保存;步骤4、io口线操作语句写成对步骤1指针变量数组中对应的指针变量元素赋值或取值。2.根据权利要求1所述的利用c程序指针及函数参数实现单片机任意io口线操作的方法,其特征在于,所述步骤1中,创建指向io口地址指针的指针变量数组的具体方法为:使用所选单片机c程序头文件中定义的io口功能地址定义字强制类型转化为指针后,创建一维指针变量数组,指针数组中保存io口功能指针元素的顺序分别对应端口号,即数组元素下标等于单片机端口号,以实现对不同端口的操作转换为对指针变量数组元素的赋值。3.根据权利要求1所述的利用c程序指针及函数参数实现单片机任意io口线操作的方法,其特征在于,所述步骤2中,设置端口号及口线位对应排列的二维常量数组的方法为:使用一个0到m的无符号字符型变量,分别代表0到m号口线;常量数组下标[0][0]、[0][1]元素分别存储0号口线的端口号、口线位,[m][0]、[m][1]元素分别存储m号口线的端口号、口线位;其中,p0到p7等端口号分别用0到7表示,口线位n写成口线所处位为“1”其它为“0”的单字节数,或写成“1左移n位”。4.根据权利要求3所述的利用c程序指针及函数参数实现单片机任意io口线操作的方法,其特征在于:所述步骤2中,设置端口号及口线位对应排列的二维常量数组,此步骤并非必须,如果省略此步骤及常量数组,将不方便对io口线设置和程序移置、不可遍历io口线、不可用循环语句批量操作io口线;并且需在步骤3中通过选择或判断语句逐一指定需操作的端口号及口线位。5.根据权利要求3所述的利用c程序指针及函数参数实现单片机任意io口线操作的方法,其特征在于:所述步骤3中,在对单片机io口线操作前使用一个带参数的io口设置函数,函数从步骤2中设置的二维常量数组,取出端口号值及口线位值分别写入两个8位的全局变量保存,从而指定后续的口线操作均对应某一口线;io口线设置函数参数选取步骤2中的0到m。6.根据权利要求1所述的利用c程序指针及函数参数实现单片机任意io口线操作的方法,其特征在于,所述步骤4中,io口线操作语句写成对功能选择指针变量数组中对应的指
针变量元素赋值或取值,具体方法为:对端口对应的指针元素赋值时,赋1值仅对口线位“或1”、赋0值仅对口线位“与0”;读取口线值时,端口对应的指针元素做口线位“与1”变换并增加“()”。7.根据权利要求2所述的利用c程序指针及函数参数实现单片机任意io口线操作的方法,其特征在于,所述步骤1中,创建指向io口地址指针的指针变量数组的具体方法还包括:如果此单片机mcu没有p6口,则删除p6的定义;如果有p7口则可增加p7的定义;如果mcu有p0口,应将数组中第0个元素的0值改为“(char*)p0”等类似语句;不同类型的mcu,可查询mcu的头文件来获得对io口功能寄存器地址的定义名称;如果还有pxsel等需要,相应增加指针变量数组“*pxsel”等定义即可。8.根据权利要求4所述的利用c程序指针及函数参数实现单片机任意io口线操作的方法,其特征在于,所述步骤3中,取出将要操作的端口号值及口线位值分别写入两个8位的全局变量保存,这两个8位的全局变量可省略,但应创建指向常量数组的指针,且所述步骤3中对单片机io口线操作前使用的带参数的io口设置函数,需变成对步骤2中常量数组指针的跳转。

技术总结
本发明涉及C语言程序对单片机编程技术领域,具体地说,涉及利用C程序指针及函数参数实现单片机任意IO口线操作的方法。采用指向IO端口功能寄存器地址指针的指针变量数组作为口线操作语句转换的核心,在操作口线前使用带参数的设置函数,预先确定端口号及口线位,IO口线操作语句写成对指针变量数组中对应的指针变量元素赋值或取值。本发明使程序设计简洁,易维护、易修改和移植;执行速度快、效率高;在去除重复代码、方便编程、提高运行效率、提高可靠性、降低功耗等方面效果显著;可以方便PCB设计;对于成品PCB也可根据布局或方便性选择不同IO口线来实现外围设备的通信或控制。同IO口线来实现外围设备的通信或控制。同IO口线来实现外围设备的通信或控制。


技术研发人员:冯乔春 匡华 陈武 樊金泽 杨子力
受保护的技术使用者:云南电网有限责任公司曲靖供电局
技术研发日:2022.08.08
技术公布日:2022/11/22
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献