当前位置: 首页 > news >正文

网站的色彩团队管理的七个要点

网站的色彩,团队管理的七个要点,织梦 网站根目录,免费的企业网站建设流程文章目录 通用函数public.hpublic.c 延时函数delay.hdelay.c LED模块数码管模块smg.hsmg.c LED点阵模块独立按键模块矩阵按键模块外部中断模块定时器模块串口通讯模块ADC模块PWM模块 通用函数 包含常用头文件#xff0c;宏定义#xff0c;自定义类型#xff0c;函数工具等。… 文章目录 通用函数public.hpublic.c 延时函数delay.hdelay.c LED模块数码管模块smg.hsmg.c LED点阵模块独立按键模块矩阵按键模块外部中断模块定时器模块串口通讯模块ADC模块PWM模块 通用函数 包含常用头文件宏定义自定义类型函数工具等。 public.h #ifndef _PUBLIC_H_ #define _PUBLIC_H_/*---------------------常用头文件---------------------------------*/ #include REGX52.H #include intrins.h#include stdio.h #include math.h #include string.h#define false 0 #define true 1typedef unsigned char u8; typedef unsigned int u16;void delay_10us(u16); void delay_ms(u16);u8 * int2String(int, bit); u8 * float2String(float, u8);#endifpublic.c #include public.h /** ** brief 通用函数** author QIU** data 2023.09.03**//*-------------------------------------------------------------------*//**** brief 延时函数(10us)** param t:0~65535循环一次约10us** retval 无**/ void delay_10us(u16 t){while(t--); }/**** brief 延时函数ms** param t:0~65535,单位ms** retval 无**/ void delay_ms(u16 t){while(t--){delay_10us(100);} }/**** brief 整数转字符串** param num接受整型值** param sign是否带符号** retval 返回字符串指针**/ u8 * int2String(int num, bit sign){static u8 str[8];// 是否带符号if(sign){sprintf(str, %d, num);}else{sprintf(str, %u, num);}// 返回指针return str; }/**** brief 浮点数转字符串** param num接受浮点数** param len指定精度小数点位数0~6四舍五入** retval 返回字符串指针**/ u8 * float2String(float num, u8 len){static u8 str[10];// 筛选switch(len){case 0: sprintf(str, %.0f, num); break;case 1: sprintf(str, %.1f, num); break;case 2: sprintf(str, %.2f, num); break;case 3: sprintf(str, %.3f, num); break;case 4: sprintf(str, %.4f, num); break;case 5: sprintf(str, %.5f, num); break;default: sprintf(str, %f, num); break; // 默认6位小数}// 返回指针return str; }延时函数 包含常用延时函数。通用函数兼容延时函数。 delay.h #ifndef _DELAY_H_ #define _DELAY_H_#include REGX52.H#define false 0 #define true 1typedef unsigned char u8; typedef unsigned int u16;void delay_10us(u16); void delay_ms(u16);#endifdelay.c #include delay.h /** ** brief 通用函数** author QIU** data 2023.08.23**//*-------------------------------------------------------------------*//**** brief 延时函数(10us)** param t:0~65535循环一次约10us** retval 无**/ void delay_10us(u16 t){while(t--); }/**** brief 延时函数ms** param t:0~65535,单位ms** retval 无**/ void delay_ms(u16 t){while(t--){delay_10us(100);} }LED模块 数码管模块 主要实现了延时法刷新和定时器法刷新两种方式。提供字符串写入函数。 smg.h #ifndef _SMG_H_ #define _SMG_H_#include public.h#define SMG_PORT P0 // 位选引脚与38译码器相连 sbit A1 P2^2; sbit A2 P2^3; sbit A3 P2^4;void smg_showString(u8*, u8);void smg_showString_Bytimer(u8*, u8);#endifsmg.c #include smg.h /** ** brief 数码管封装** 1. 延时刷新** 2. 定时器刷新** author QIU** date 2023.09.03**//*-------------------------------------------------------------------*///共阴极数码管字形码编码 u8 code smgduan[] {0x3f,0x06,0x5b,0x4f,0x66, //0 1 2 3 40x6d,0x7d,0x07,0x7f,0x6f, //5 6 7 8 90x77,0x7c,0x58,0x5e,0x79, //A b c d E0x71,0x76,0x30,0x0e,0x38, //F H I J L0x54,0x3f,0x73,0x67,0x50, //n o p q r0x6d,0x3e,0x3e,0x6e,0x40};//s U v y - /**** brief 指定第几个数码管点亮38译码器控制位选不对外声明** param pos从左至右数码管位置 1~8** retval 无**/ void select_38(u8 pos){u8 temp_pos 8 - pos; // 0~7A1 temp_pos % 2; //高位temp_pos / 2;A2 temp_pos % 2; temp_pos / 2;A3 temp_pos % 2; //低位 }/**** brief 解析数据并取得相应数码管字形码编码** param dat:想要显示的字符** retval 对应字形码编码值**/ u8 parse_data(u8 dat){switch(dat){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:return smgduan[dat-0];case a:case A:return smgduan[10];case b:case B:return smgduan[11];case c:case C:return smgduan[12];case d:case D:return smgduan[13];case e:case E:return smgduan[14];case f:case F:return smgduan[15];case h:case H:return smgduan[16];case i:case I:return smgduan[17];case j:case J:return smgduan[18];case l:case L:return smgduan[19];case n:case N:return smgduan[20];case o:case O:return smgduan[21];case p:case P:return smgduan[22];case q:case Q:return smgduan[23];case r:case R:return smgduan[24];case s:case S:return smgduan[25];case u:case U:return smgduan[26];case v:case V:return smgduan[27];case y:case Y:return smgduan[28];case -:return smgduan[29];default:return 0x00; //不显示} }/**** brief 根据输入的ASCII码显示对应字符1字节** param dat字符数据或其ASCII值** param pos显示位置 1~8** retval 无**/ void smg_showChar(u8 dat, u8 pos, bit flag){// 解析点亮哪一个数码管select_38(pos);// 解析数据SMG_PORT parse_data(dat);// 加标点if(flag) SMG_PORT | 0x80; }/*-------------------------------------------------------------------*/ /*-----------------------延时法刷新----------------------------------*/ /*-------------------------------------------------------------------*//**** brief 延时法刷新** param dat字符数组需以\0结尾** param pos显示位置** param dot小数点位置** retval 无**/ void smg_flush_Bydelay(u8 dat[], u8 pos, u8 dot){u8 i;// 超出部分直接截断for(i0;(i9-pos)(dat[i]!\0);i){// 如果是小数点跳过往前移一位if(dat[i] .){pos - 1;continue;}// 显示smg_showChar(dat[i], posi, (dot i1)?true:false);// 延时1msdelay_ms(1);// 消影SMG_PORT 0x00; } }/**** brief 显示字符串动态显示** param dat字符数组需以\0结尾** param pos显示位置** retval 无**/ void smg_showString(u8 dat[], u8 pos){u8 i 0, dot 0;// 先判断是否存在小数点while(dat[i]!\0){if(dat[i] .) break;i;}// 记录下标点位置if(i strlen(dat)) dot i;// 延时法刷新smg_flush_Bydelay(dat, pos, dot); }/*-------------------------------------------------------------------*/ /*--------------------------定时器法刷新-----------------------------*/ /*-------------------------------------------------------------------*//**** brief 数码管显示字符串定时器法刷新** param dat字符数组需以\0结尾** param pos显示位置** retval 返回值**/ void smg_showString_Bytimer(u8 dat[], u8 pos){// 数码管计数器 小数点位置static u8 smg_counter 0, dot_counter 0, dot_port[8];// 暂存当前位置u8 temp;// 先消影SMG_PORT 0x00; // 如果是小数点跳出。if(dat[smg_counter] .){// 记录小数点位置下一轮刷新dot_port[smg_counter-1] true;// 计数器后移一位smg_counter;// 小数点计数器自增dot_counter;return;}// 计算当前位置temp possmg_counter-dot_counter;// 判断是否加小数点检测到小数点的后面几位整体前移smg_showChar(dat[smg_counter], temp, dot_port[smg_counter]);// 如果是结束符跳出(超出部分截断)if(temp 8 | dat[smg_counter] \0){// 重置smg_counter 0;// 根据标志决定是否清除小数点if(dot_counter){// 清零dot_counter 0;}else{// 清空strcpy(dot_port, );}return;}else{smg_counter;} }LED点阵模块 独立按键模块 矩阵按键模块 外部中断模块 定时器模块 串口通讯模块 ADC模块 PWM模块
http://www.hkea.cn/news/14572737/

相关文章:

  • 物业管理网站开发背景青岛网站建设公司大全
  • 如何做好企业网站的推广网络广告投放公司
  • 阿里云做的网站程序员公司网站模板制作
  • 网络推广网站建设百度公司总部地址
  • 中文域名的网站易语言如何做网站登录
  • 网站ip被屏蔽怎么办南通市建设局网站6
  • 做网站案例临川区建设局网站
  • win7asp+sql server 2008做网站天津商城网站建设公司
  • 网站备案号注销查询开发app需要多久
  • 邢台网站开发公司网站建设公司哪好
  • 类似稿定设计的网站学做网站要学什么语言
  • 赤水市白房建设局网站佛山网站设计培训
  • 直播网站源码免费网站空间流量查询
  • 网站建设云尚网络手机网站模板更改吗
  • 钓鱼网站网址大全网站建设不力 被问责
  • 网站建设定制开发服务做便民网站都需要哪些模块
  • 做网站维护要多少钱一年jsp asp php哪个做网站
  • 企业网站推广效果指标分析东莞网站SEO优化托管
  • 百度网站评价个人淘宝客网站
  • 做电子书网站中小企业网站制作价格
  • 无锡网站排名优化费用厦门网站建设建设公司
  • 淘宝客网站如何做推广滨州聊城网站建设
  • 苏州专业设计网站wordpress 好主题哦
  • 青岛网站建设推广专家软件开发基础教程
  • 宁夏建设网站wordpress 文件权限
  • 怎么做联盟网站成都做网站的公司
  • 福州建设厅官方网站敬请期待图片
  • 做自己的游戏网站做初中题赚钱的网站
  • wordpress vue网站自建网站 好处
  • 南宁网站建设怎么样义乌小程序装修公司