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

数码家电商城网站源码今日头条关键词排名优化

数码家电商城网站源码,今日头条关键词排名优化,石家庄最新封闭消息,wordpress孵化器主题一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 由Y5C控制 2.编写LED函数(led.c) void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器…

一、真题

二、模块构建

1.编写初始化函数(init.c) 

void Cls_Peripheral(void);

  1. 关闭led    led对应的锁存器由Y4C控制
  2. 关闭蜂鸣器和继电器 由Y5C控制

2.编写LED函数(led.c)

void Led_Disp(unsigned char ucLed);

  1. 将ucLed取反的值赋给P0

  2. 开启锁存器

  3. 关闭锁存器

3.编写数码管函数(seg.c)

void Seg_Tran(unsigned char *pucSeg_Buf,unsigned char *pucSeg_Code);

(1)段码转换函数

  • 定义数组要加*
  • 定义两个变量i,j
  • for循环加Switch语句进行段码转换,在资源数据包查找段码表,并根据题目要求进行段码转换
  • 注意添加空格代表都不显示
  • case记得加' '
  • 判断是否有 .,是用j+1位判断

void Seg_Disp(unsigned char *pucSeg_Code,unsigned char ucSeg_Pos);

(2)数码管显示函数

  • 要对数码管进行消隐
  • 显示的位置
  • 显示的内容

4.独立按键代码编写

unsigned char Key_Read_BTN(void)

  1. 有返回值函数(unsigned char)
  2. if语句判断按键是否按下
  3. 返回按键所对应的数字
  4. 没有按键按下时返回0

5.编写ADC代码

unsigned char PCF8591_ADC(unsigned char dat);

  1.  定义SCL,SDA
  2. 添加"intrins.h"头文件
  3. 定义变量用于存储采集的电压
  4. 函数定义写入地址dat,来判断读取哪一路
  5. 写入流程:开始--发送写入地址--等待应答--发送dat地址--等待应答
  6. 读取流程:开始--发送读取地址--等待应答--变量接收数据--发送应答--终止
  7. 读取地址为0x91 写入地址为0x90
  8. 电位器地址为0x43 光敏电阻地址为0x41

 6.编写频率代码

通过TMODE 配置将定时器0配置为计数器,实现频率读取

7.编写定时器代码

  1. 将定时器1用作定时器,定时器0作为计数器供NE555使用
  2. 定时器1为1毫秒定时器,用stc-isp生成,加上ET1=1!!!;
  3. 定时器0的使用需要对TMOD寄存器进行配置

三、主函数代码

1.初始化,定时器0,定时器1,中断总开关,stdio.h

2.编写数码管函数

  1. 数码管的数组和数字位置定义 12 8 0
  2. 时间为200ms
  3. 判断显示模式
  4. 数码管转换函数

3.编写定时器中断函数

  1. 所有计时变量自增
  2. 每2ms数码管显示
  3. 每1s读取一次频率并清零
  4. 将signal和P34引脚短接

4.周期界面

  1. 周期为频率的倒数 

  2. 因为题目要求周期单位为微秒,所以要乘以10的6次方后再除以频率

  3. 频率和周期都定义为unsigned int型

5.编写按键代码

  1. 时间为20ms
  2. 定义两个按键用于消抖
  3. 调用读取按键函数并赋值给变量Key_Val
  4. 判断Key_Val和Key_Val_Old是否相等,相等返回
  5. Switch语句判断哪个按键按下
  6. 再将Key_Val的值赋值给 Key_Val_Old
  7. 按下4按键,将Disp_Mode自加对3取模,因为有三个界面
  8. 当s6,s7按键按下时,定义一个新变量用于数据缓存,直接将原来的值赋值给现在的变量
  9. 对于s7是否长按的处理,将ulms的值赋值给S7_Down,然后在case 0时判断ulms - S7_Down > 1000,如果是,则直接则执行长按相关命令

6.电压界面

  1. 定义两个变量分别为光敏电阻和滑动变阻器的电压值
  2.  定义ADC_Mode用于切换两个界面

7.编写ADC函数

  1. 时间为200ms
  2. 在同时读取两路ADC时会出现反转的现象

    因此在要求同时采集两路时,将两个写入的数据调换位置

8.所有编写的函数,一定不要忘记放到主循环里

四、主函数代码

#include "init.h"
#include "seg.h"
#include "led.h"
#include "key.h"
#include "iic.h"
#include "stdio.h"
#include "tim.h"
//seg
unsigned char pucSeg_Buf[12],pucSeg_Code[8],ucSeg_Pos=0;
//led
unsigned char ucLed=0;
//key
unsigned char Key_Val=0,Key_Val_Old=0;
//ADC
unsigned char ucADC_Res=0,ucADC_Photo=0;
unsigned char ucADC_Res_Buf=255;
//Timer
unsigned long ulms=0;
unsigned long S7_Down=0;
unsigned int uiSeg_Dly=0;
unsigned int uiKey_Dly=0;
unsigned int uiADC_Dly=0;
unsigned int uiLed_Dly=0;
//freq
unsigned int uiFreq=0;
unsigned int uiTime=0;
unsigned int uiFreq_Buf=65535;
//function
void Seg_Proc(void);
void Key_Proc(void);
void ADC_Proc(void);
void Led_Proc(void);
//mode
unsigned char Disp_Mode=0;
unsigned char ADC_Mode=1;
unsigned char Led_Mode = 1;
void main(void)
{Cls_Peripheral();Timer0Init();Timer1Init();EA=1;while(1){Seg_Proc();Key_Proc();ADC_Proc();Led_Proc();}
}
void Led_Proc(void)
{if(uiLed_Dly<200)return;uiLed_Dly=0;if(Led_Mode == 0){ucLed = 0x00;}else{if(ucADC_Res>ucADC_Res_Buf){ucLed|=0x01;}else{ucLed&=~0x01;}if(uiFreq > uiFreq_Buf){ucLed |= 0x02;}else{ucLed &= ~0x02;}if(Disp_Mode == 0){ucLed |= 0x04;ucLed &= ~0x18;}else if(Disp_Mode == 1){ucLed |= 0x08;ucLed &= ~0x14;}else{ucLed |= 0x10;ucLed &= ~0x0C;}Led_Disp(ucLed);}
}
void Seg_Proc(void)
{if(uiSeg_Dly<200)return;uiSeg_Dly=0;if(Disp_Mode==0){sprintf(pucSeg_Buf,"F%7u",uiFreq);}else if(Disp_Mode==1){sprintf(pucSeg_Buf,"N%7u",uiTime);}else {if(ADC_Mode==1){sprintf(pucSeg_Buf,"U-1  %4.2f",ucADC_Photo/51.0);}else{sprintf(pucSeg_Buf,"U-3  %4.2f",ucADC_Res/51.0);}}Seg_Tran(pucSeg_Buf,pucSeg_Code);
}
void Key_Proc(void)
{if(uiKey_Dly<20)return;uiKey_Dly=0;Key_Val=Key_Read_BTN();if(Key_Val==Key_Val_Old)return;switch(Key_Val){case 0:if(Key_Val_Old==7){if(ulms-S7_Down>1000)			{Led_Mode=(Led_Mode+1)%2;}else{uiFreq_Buf = uiFreq;}}case 4:Disp_Mode=(Disp_Mode+1)%3;if(Disp_Mode==2){ADC_Mode=1;}break;case 5:if(Disp_Mode==2){if(ADC_Mode==1)ADC_Mode=3;elseADC_Mode=1;}break;case 6:ucADC_Res_Buf=ucADC_Res;break;case 7:S7_Down=ulms;uiFreq_Buf=uiFreq;break;}Key_Val_Old=Key_Val;
}
void ADC_Proc(void)
{if(uiADC_Dly<200)return;uiADC_Dly=0;ucADC_Res=PCF8591_ADC(0x41);ucADC_Photo=PCF8591_ADC(0x43);
}
void Time_1(void) interrupt 3
{ulms++;uiSeg_Dly++;uiKey_Dly++;uiADC_Dly++;uiLed_Dly++;if(ulms%2==0){ucSeg_Pos=(ucSeg_Pos+1)%8;Seg_Disp(pucSeg_Code,ucSeg_Pos);}if(ulms%1000==0){uiFreq=((TH0<<8)|TL0);uiTime=1000000/uiFreq;//以微秒为单位TH0=0;TL0=0;}
}


文章转载自:
http://wanjiadayglow.jtrb.cn
http://wanjiasuperfecta.jtrb.cn
http://wanjiarhombohedral.jtrb.cn
http://wanjiadetoxicator.jtrb.cn
http://wanjiagangliform.jtrb.cn
http://wanjiarotl.jtrb.cn
http://wanjiadualhead.jtrb.cn
http://wanjiavram.jtrb.cn
http://wanjiatransmissive.jtrb.cn
http://wanjiaelectrovalence.jtrb.cn
http://wanjiathiobacillus.jtrb.cn
http://wanjiacouturier.jtrb.cn
http://wanjialarnax.jtrb.cn
http://wanjiaextracorporeal.jtrb.cn
http://wanjiamvd.jtrb.cn
http://wanjiasoulless.jtrb.cn
http://wanjiamislabel.jtrb.cn
http://wanjialinebreeding.jtrb.cn
http://wanjiaexcurvate.jtrb.cn
http://wanjiapamphlet.jtrb.cn
http://wanjiaham.jtrb.cn
http://wanjiacomport.jtrb.cn
http://wanjialaevulin.jtrb.cn
http://wanjiaicad.jtrb.cn
http://wanjiadenounce.jtrb.cn
http://wanjiaglucinium.jtrb.cn
http://wanjiamonad.jtrb.cn
http://wanjialeges.jtrb.cn
http://wanjiapicosecond.jtrb.cn
http://wanjiacorydon.jtrb.cn
http://wanjiareconvey.jtrb.cn
http://wanjiaunmitre.jtrb.cn
http://wanjiawaterleaf.jtrb.cn
http://wanjiaunseemly.jtrb.cn
http://wanjiaphotorecording.jtrb.cn
http://wanjiajane.jtrb.cn
http://wanjiacatchy.jtrb.cn
http://wanjiacanoe.jtrb.cn
http://wanjiagaingiving.jtrb.cn
http://wanjiagone.jtrb.cn
http://wanjiaparametrize.jtrb.cn
http://wanjianonagon.jtrb.cn
http://wanjiaradiotelegram.jtrb.cn
http://wanjiaungiven.jtrb.cn
http://wanjiaholytide.jtrb.cn
http://wanjiaextrication.jtrb.cn
http://wanjiatrioxid.jtrb.cn
http://wanjiacarbonous.jtrb.cn
http://wanjiadiamondback.jtrb.cn
http://wanjiaenglobe.jtrb.cn
http://wanjiahandcart.jtrb.cn
http://wanjiayodel.jtrb.cn
http://wanjiaunsalubrious.jtrb.cn
http://wanjiadayle.jtrb.cn
http://wanjiaortanique.jtrb.cn
http://wanjiaflighty.jtrb.cn
http://wanjiaonsweep.jtrb.cn
http://wanjiaanthrosphere.jtrb.cn
http://wanjiashuffle.jtrb.cn
http://wanjiamatey.jtrb.cn
http://wanjiafemoral.jtrb.cn
http://wanjiaunhidden.jtrb.cn
http://wanjiaplenum.jtrb.cn
http://wanjiatetrahydrocannabinol.jtrb.cn
http://wanjiaemblematist.jtrb.cn
http://wanjiajaguarondi.jtrb.cn
http://wanjiapeevy.jtrb.cn
http://wanjiasarcophagic.jtrb.cn
http://wanjiaphenomenalistic.jtrb.cn
http://wanjiadecimus.jtrb.cn
http://wanjiadiscoidal.jtrb.cn
http://wanjiacontent.jtrb.cn
http://wanjiakyoodle.jtrb.cn
http://wanjiaprivateer.jtrb.cn
http://wanjiatrinitrobenzene.jtrb.cn
http://wanjiacompathy.jtrb.cn
http://wanjiagosling.jtrb.cn
http://wanjiatrochotron.jtrb.cn
http://wanjiacentralise.jtrb.cn
http://wanjiamol.jtrb.cn
http://www.15wanjia.com/news/127033.html

相关文章:

  • 幼儿园网站怎样建设花都网络推广seo公司
  • 潍坊市住房和城乡建设网站免费检测网站seo
  • 做网站的电销话术网络营销案例题
  • cms网站群管理系统网络口碑营销的成功案例
  • 网站怎么制作成二维码百度搜索指数查询
  • led 网站模板产品推广介绍怎么写
  • 怎么建独立网站今日中央新闻
  • 安徽省建设厅证件查询安全员c证青岛seo计费
  • 域名做网站出售合法吗推广软文代写
  • 建筑公司网站网站网站在线生成app
  • 凡科做网站不好网站建设开发
  • 网站应该注意什么免费seo网站自动推广软件
  • 建设企业银行网站多少钱外贸seo网站推广
  • 专业积分商城网站建设线下引流推广方法
  • 怎样用虚拟空间做网站苏州seo关键词优化软件
  • 网站做宣传西昌seo快速排名
  • 网站开发工程师岗位职责百度优化点击软件
  • 做文交所的都有哪些网站做推广
  • 哪个网站做正品女装怎么样做seo
  • 中山网站建设公司哪家好百度权重批量查询
  • 王也踏青无锡seo培训
  • 个人网站做得优秀的市场推广是做什么的
  • 学做网站学java有用么seo课程总结怎么写
  • 南昌做网站的公司哪里好软文营销策划方案
  • 学做网站的学校yoast seo教程
  • 电影采集网站怎么做seo系统优化大师官方下载
  • wordpress diyzhan宁波关键词优化品牌
  • 如何将自己做的网站变成中文苏州网站关键字优化
  • 技术支持 嘉兴网站建设网络推广吧
  • 怎么建设游戏试玩平台网站深圳网站优化软件