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

专门下载工程建设标准的网站北京网站设计制作关键词

专门下载工程建设标准的网站,北京网站设计制作关键词,石景山企业网站建设,建立网站的主要步骤题目 题目不长 ,功能也不难,一道水题 按键功能 S4界面切换,S5 功能切换,在不同界面转换不同的功能,定义两个标志位记录即可。 S9复位,回到初始状态,记得界面也得回到初始的信号界面&#xff0…

题目

题目不长 ,功能也不难,一道水题

按键功能

S4界面切换,S5 功能切换,在不同界面转换不同的功能,定义两个标志位记录即可。

S9复位,回到初始状态,记得界面也得回到初始的信号界面(这里算是一个坑点)

/*按键函数区域*/
void Key_Proc(){if(Key_Slow) return;Key_Slow = 1;Key_Val = Key_Read();Key_Down = Key_Val & (Key_Val ^ Key_Old);Key_Up = ~Key_Val & (Key_Val ^ Key_Old);Key_Old = Key_Val;switch(Key_Down){case 4:Seg_Mode ^= 1;break;case 5:if(Seg_Mode == 0){//在信号界面,频率转换周期freq_zq = 1;time_start = 1;}else{//温度界面,小数转换成整数float_zs = 1;}break;case 9://复位float_zs = 0;freq_zq = 0;Seg_Mode = 0;break;}
}

显示功能 

基础的频率显示和温度显示,记得我们的按键S5界面内的模式切换,定义的标志位来对应不同的小界面,记得高位熄灭。

/*数码管函数区域*/
void Seg_Proc(){if(Seg_Slow) return;Seg_Slow = 1;temp = rd_tempature();if(temp>30) L7_Flag = 1;else L7_Flag = 0;if(Seg_Mode == 0){//频率界面Seg_Buf[0] = 11;//PSeg_Buf[1] = 10;Seg_Buf[2] = 10;Point[6] = 0;if(freq_zq ==0){//频率Seg_Buf[3] = freq>9999?freq/10000:10;Seg_Buf[4] = freq>999?freq%10000/1000:10;Seg_Buf[5] = freq>99?freq%1000/100:10;Seg_Buf[6] = freq>9?freq%100/10:10;Seg_Buf[7] = freq%10;}else{Seg_Buf[3] = zq>9999?zq/10000:10;Seg_Buf[4] = zq>999?zq%10000/1000:10;Seg_Buf[5] = zq>99?zq%1000/100:10;Seg_Buf[6] = zq>9?zq%100/10:10;Seg_Buf[7] = zq%10;}}else{//温度界面Seg_Buf[0] = 12;//CSeg_Buf[1] = 10;Seg_Buf[2] = 10;Seg_Buf[3] = 10;Seg_Buf[4] = 10;if(float_zs == 0){//小数Point[6] = 1;Seg_Buf[5] = (unsigned char)temp>10?(unsigned char)temp/10:10;Seg_Buf[6] = (unsigned char)temp%10;Seg_Buf[7] = (unsigned int)(temp*10)%10;}else{Point[6] = 0;Seg_Buf[5] = 10;Seg_Buf[6] = (unsigned char)temp>10?(unsigned char)temp/10:10;Seg_Buf[7] = (unsigned char)temp%10;}}}

Led指示灯功能

L1,L2是常规的界面指示灯,L3是功能指示灯,L8状态指示灯,都很常规,L3,L8检测标志位即可.

/*Led函数区域*/
void Led_Proc(){Led_Buf[0] = (Seg_Mode==0);Led_Buf[1] = (Seg_Mode==1);Led_Buf[2] = time_start;//点亮1s后熄灭Led_Buf[7] = L7_flash;
}

完整主函数 

/*头文件区域*/
#include <STC15F2K60S2.H>
#include <Led.h>
#include <Seg.h>
#include <Init.h>
#include <Key.h>
#include <onewire.h>/*参数变量区域*/
unsigned char Seg_Pos;
unsigned char Key_Down,Key_Val,Key_Old,Key_Up;
unsigned char Seg_Slow,Key_Slow;
unsigned int Time_1s;
//数组
unsigned char Seg_Buf[] = {10,10,10,10,10,10,10,10};
unsigned char Led_Buf[] = {0,0,0,0,0,0,0,0};
unsigned char Point[] = {0,0,0,0,0,0,0,0};
//数据
unsigned char Seg_Mode;//0信号1温度
unsigned int freq;
unsigned int zq;
float temp;
bit freq_zq;//默认0频率。1周期
bit float_zs;//默认0小数,1整数
bit time_start;
bit L7_Flag;
bit L7_flash;
unsigned int Time_L3_1s;
unsigned char Time_100ms;
/*按键函数区域*/
void Key_Proc(){if(Key_Slow) return;Key_Slow = 1;Key_Val = Key_Read();Key_Down = Key_Val & (Key_Val ^ Key_Old);Key_Up = ~Key_Val & (Key_Val ^ Key_Old);Key_Old = Key_Val;switch(Key_Down){case 4:Seg_Mode ^= 1;break;case 5:if(Seg_Mode == 0){//在信号界面,频率转换周期freq_zq = 1;time_start = 1;}else{//温度界面,小数转换成整数float_zs = 1;}break;case 9://复位float_zs = 0;freq_zq = 0;Seg_Mode = 0;break;}
}
/*数码管函数区域*/
void Seg_Proc(){if(Seg_Slow) return;Seg_Slow = 1;temp = rd_tempature();if(temp>30) L7_Flag = 1;else L7_Flag = 0;if(Seg_Mode == 0){//频率界面Seg_Buf[0] = 11;//PSeg_Buf[1] = 10;Seg_Buf[2] = 10;Point[6] = 0;if(freq_zq ==0){//频率Seg_Buf[3] = freq>9999?freq/10000:10;Seg_Buf[4] = freq>999?freq%10000/1000:10;Seg_Buf[5] = freq>99?freq%1000/100:10;Seg_Buf[6] = freq>9?freq%100/10:10;Seg_Buf[7] = freq%10;}else{Seg_Buf[3] = zq>9999?zq/10000:10;Seg_Buf[4] = zq>999?zq%10000/1000:10;Seg_Buf[5] = zq>99?zq%1000/100:10;Seg_Buf[6] = zq>9?zq%100/10:10;Seg_Buf[7] = zq%10;}}else{//温度界面Seg_Buf[0] = 12;//CSeg_Buf[1] = 10;Seg_Buf[2] = 10;Seg_Buf[3] = 10;Seg_Buf[4] = 10;if(float_zs == 0){//小数Point[6] = 1;Seg_Buf[5] = (unsigned char)temp>10?(unsigned char)temp/10:10;Seg_Buf[6] = (unsigned char)temp%10;Seg_Buf[7] = (unsigned int)(temp*10)%10;}else{Point[6] = 0;Seg_Buf[5] = 10;Seg_Buf[6] = (unsigned char)temp>10?(unsigned char)temp/10:10;Seg_Buf[7] = (unsigned char)temp%10;}}}/*Led函数区域*/
void Led_Proc(){Led_Buf[0] = (Seg_Mode==0);Led_Buf[1] = (Seg_Mode==1);Led_Buf[2] = time_start;//点亮1s后熄灭Led_Buf[7] = L7_flash;
}/*定时器0初始化函数*/
void Timer0_Init(void)		//1毫秒@12.000MHz
{AUXR &= 0x7F;			//定时器时钟12T模式TMOD &= 0xF0;			//设置定时器模式TMOD |= 0x05;TL0 = 0x00;				//设置定时初始值TH0 = 0x00;				//设置定时初始值TF0 = 0;				//清除TF0标志TR0 = 1;				//定时器0开始计时
}/*定时器1初始化函数*/
void Timer1_Init(void)		//1毫秒@12.000MHz
{AUXR &= 0xBF;			//定时器时钟12T模式TMOD &= 0x0F;			//设置定时器模式TL1 = 0x18;				//设置定时初始值TH1 = 0xFC;				//设置定时初始值TF1 = 0;				//清除TF1标志TR1 = 1;				//定时器1开始计时ET1 = 1;EA = 1;
}/*定时器1中断服务函数*/
void Time1_Service() interrupt 3
{if(++Seg_Slow == 200) Seg_Slow = 0;if(++Key_Slow == 50) Key_Slow = 0;if(++Seg_Pos == 8) Seg_Pos = 0;Led_Disp(Seg_Pos,Led_Buf[Seg_Pos]);Seg_Disp(Seg_Pos,Seg_Buf[Seg_Pos],Point[Seg_Pos]);if(++Time_1s == 1000){Time_1s = 0;TR0 = 0;freq = TH0<<8|TL0;zq = 1000000/freq;TH0 = TL0 = 0;TR0 = 1;}if(time_start){if(++Time_L3_1s == 1000){Time_L3_1s = 0;time_start = 0;//停止计时}}else Time_L3_1s = 0;if(L7_Flag){if(++Time_100ms == 100){Time_100ms = 0;L7_flash ^= 1;}}else{Time_100ms = 0;L7_flash = 0;}
}void main(){Timer0_Init();Timer1_Init();Sys_Init();while(1){Key_Proc();Seg_Proc();Led_Proc();}
}

一道水的不能再水的题目

http://www.dtcms.com/wzjs/574451.html

相关文章:

  • 母婴类网站怎么建设上门做网站哪家好
  • 网站源码模板下载英文网站常用字体
  • 公司官方网站建站wordpress设置会员下载
  • 学校能建设网站吗什么是网络营销促销?
  • 甘肃省 网站建设 审批重庆网站建设重庆
  • 中国做爰网站ppt模板网站排行榜
  • 华大网站建设编辑网站
  • 国外手机网站源码WordPress主题预览封面
  • 在阿里云域名可以做网站吗服装行业网站建设方案
  • 做网站价位网上商城英文
  • ps网站首页设计图制作教程进入百度搜索首页
  • 站长工具seo域名解析不了wordpress跳转下载页面
  • 网站简繁体转换.rar软件培训计划和培训内容
  • 微信上的网站怎么做的吗网站后台 二级域名
  • 接做网站的私活怎么报价自己搭建云平台
  • 上海制作网站公司网站长沙功能网站建设
  • 制作网站题材免费ppt模板下载哪个网站好
  • 龙岗网站制作培训班企业管理软件定制开发
  • 企业如何进行搜索引擎优化重庆百度整站优化
  • 南山的网站建设公司科技公司手机网站
  • 衡水建设投资集团网站网页设计结课论文
  • 国内做网站的大公司有哪些最新网站信息
  • 淘宝客怎么在网站做推广汉中建设工程招投标
  • 郑州 网站建设网站的企业特色展示
  • 徐州网站关键词刀模 东莞网站建设
  • 各大网站logo图标网页版抖音入口官网
  • 网站开发(定制)合同 模板微信企业官方网站怎么做
  • 湛江专业建网站哪家好名表网站
  • 网站怎么去优化网站建设佰首选金手指二七
  • 邯郸网站制作与建设网站设计一般什么字体