/*

* 按键子函数子函数

* 按键子函数共涉及两个按键检测和控制,分别对应P3^2和P3^3.两个按键每次按下分别实现10K数字

* 电位器中间滑动端往上端和往下端滑动1k数值。

* 数字电位器接口说明:INC接P2^0,U_D接P2^1,CS接P2^2。

*/

#include"HEADER.h"

#include"LCD1602.h"

#include"BUTTON.h"

volatile unsigned char FLAG_BUTTON = 0;//按键检测标志位

volatile unsigned char BUTTON_DAT = 0;//按键键值变量

volatile unsigned int TIME_10MS = 0;//时间变量

volatile unsigned char VOLUME = 0;//电位器值

void T0_Timer() interrupt 1//定时器0中断服务程序

{

TR0 = 0;

//        WDT_CONTR = 0X31;                  //喂狗

TH0 =55536/256;                          //重装初值

TL0 =55536%256;                      //重装初值

TR0 = 1;

TIME_10MS ++;                                  //time_10ms变量累加

if(TIME_10MS == 1000)TIME_10MS = 0;//time_10ms变量清零

ButtonTest();//按键检测;

}

void ButtonTest(void)

{

static uchar Count_ButtonDown;//静态按键按下计数

static uchar Count_ButtonUp;//静态按键松开计数

if((SW_1 == 0)||(SW_2 == 0))

{

Count_ButtonDown++;

Count_ButtonUp = 0;

if(Count_ButtonDown==2)

{

if(SW_1 == 0)BUTTON_DAT = 1;

else if(SW_2 == 0)BUTTON_DAT = 2;

if(BUTTON_DAT != 0)FLAG_BUTTON = 1;

}

if(Count_ButtonDown>=50)

{

Count_ButtonDown = 0;

if(SW_1 == 0)BUTTON_DAT = 1;

else if(SW_2 == 0)BUTTON_DAT = 2;

if(BUTTON_DAT != 0)FLAG_BUTTON = 1;

}

}

else

{

if(Count_ButtonDown>2) //如果按键已经确认按下,则开始判断松开

{

Count_ButtonUp++;

if(Count_ButtonUp>=2)

{

Count_ButtonUp = 0;

Count_ButtonDown = 0;

}

}

}

}

void ButtonService(unsigned char dat)

{

switch(dat)

{

case 1:        //电位器值增加

{

unsigned char n = 0;

CS = 0;

U_D = 1;

_nop_();

for(n=10;n>0;n--)

{

INC = 0;

_nop_();

_nop_();

INC = 1;

}

CS = 1;

VOLUME++;

if(VOLUME > 10)VOLUME = 10;

DISPLAY[0] = VOLUME%100/10+0x30;

DISPLAY[1] = VOLUME%10+0x30;

Lcd_Set_xy(2,7);

Lcd_Wdat(DISPLAY[0]);

Lcd_Wdat(DISPLAY[1]);

}

break;

case 2:        //电位器值减小

{

unsigned char n = 0;

CS = 0;

U_D = 0;

_nop_();

for(n=10;n>0;n--)

{

INC = 0;

_nop_();

_nop_();

INC = 1;

}

CS = 1;

if(VOLUME == 0)VOLUME = 1;

VOLUME--;

DISPLAY[0] = VOLUME%100/10+0x30;

DISPLAY[1] = VOLUME%10+0x30;

Lcd_Set_xy(2,7);

Lcd_Wdat(DISPLAY[0]);

Lcd_Wdat(DISPLAY[1]);

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

c语言程序设计数字电位器,数字电位器X9C103 100级调节电路和单片机源程序相关推荐

  1. c语言程序设计第四版乌云高娃,C语言程序设计教学课件作者第2版乌云高娃课件源程序及习题答案第4章课件.ppt...

    C语言程序设计教学课件作者第2版乌云高娃课件源程序及习题答案第4章课件.ppt 第4章循环结构的流程及应用 学习目标 ? 使用循环处理需要反复执行的操作. ? 循环结构的流程图. ? 循环与条件的综合 ...

  2. 大工17春 c 语言,大工20春《C/C++语言程序设计》在线作业【答案100分】

    大工20春<C/C++语言程序设计>在线作业1 共20道题 总分:100分 答题中 单选题 判断题 一.单选题 共10题,50分 1 5分 一个函数功能不太复杂,但要求被频繁调用,则应把它 ...

  3. 数字秒表c语言程序设计,课程设计 数字秒表

    <课程设计 数字秒表>由会员分享,可在线阅读,更多相关<课程设计 数字秒表(24页珍藏版)>请在人人文库网上搜索. 1.计算机控制技术综合应用设计题目 数字秒表 二级学院 电子 ...

  4. 中南大学c语言程序设计2013年下学期期末考试,2013级计算机专业本科生C语言程序设计期末考试资料.doc...

    中南大学考试试卷 -2014学年第 1 学期期末考试试题 时间95分钟 计算机与程序设计语言基础 课程40学时 2.5学分 考试形式:闭卷 专业年级:计算机科学与技术2013级 总分 100分,占总评 ...

  5. 从用户的角度看 c语言中函数有两种,【南开大学】20秋学期(1709、1803、1809、1903、1909、2003、2009 )《C语言程序设计》在线作业答卷...

    20秋学期(1709.1803.1809.1903.1909.2003.2009 )<C语言程序设计>在线作业 试卷总分:100  得分:100 一.单选题 (共 40 道试题,共 80 ...

  6. c语言程序设计理论考试,《C语言程序设计》理论试题库-程序题100例

    <<C语言程序设计>理论试题库-程序题100例>由会员分享,可在线阅读,更多相关<<C语言程序设计>理论试题库-程序题100例(59页珍藏版)>请在人人 ...

  7. 南开大学c语言程序设计在线作业,[南开大学]18秋学期(1709、1803、1809)《C语言程序设计》在线作业...

    [南开大学]18秋学期(1709.1803.1809)<C语言程序设计>在线作业 谋学网http://doc.xuehai.net [奥鹏][南开大学]18秋学期(1709.1803.18 ...

  8. c语言中如何打出草花图案,C语言程序设计程设计题目1.doc

    C语言程序设计程设计题目1 通信工程10级C语言课程设计任务书 各位同学可以自由组合,不超过以下题目中所规定的人数进行选题(不允许重复选题). 辅导时间:另定 地点:软件中心(语音楼8楼) 答辩检查时 ...

  9. 2018北语c语言程序2答案,北语21春《JAVA语言程序设计》作业2题目【标准答案】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 加VX513274704 21春<JAVA语言程序设计>作业2 试卷总分:100 得分:100 一.单选题 (共 20 道试题,共 100 分 ...

  10. 单片机秒表c语言程序设计思路,单片机秒表程序设计

    <单片机秒表程序设计>由会员分享,可在线阅读,更多相关<单片机秒表程序设计(8页珍藏版)>请在人人文库网上搜索. 1.51单片机秒表程序设计班级:姓名:学号指导老师时间一.课题 ...

最新文章

  1. html语言设计表格,HTML标记语言——表格标记
  2. 【Hibernate步步为营】--(一对多映射)之单向关联
  3. html5 酒店入住插件,jQuery酒店类入住日期时间范围选择器插件
  4. 关于IO模式(浮空、推挽、开漏...)描述及应用
  5. mysql下拉框记忆,Mysql alter语句记忆分析
  6. [react] 状态管理器它精髓是什么?
  7. oracle 增量设为3 循环_Oracle 差异性增量 和 累计增量 原理(转)
  8. Likecloud-吃、吃、吃(洛谷-P1508)
  9. 美丽的字符正方形FINAL
  10. 周志华-机器学习.pdf 学习心得 附整理材料
  11. python上传文件至指定服务器
  12. kettle 教程(一):简介及入门
  13. php tcpdf image,php采用tcpdf生成pdf支持中文,图片
  14. intel网卡211linux驱动,Intel网卡通用驱动下载
  15. 走进 Redis 的世界
  16. 传智播客dos命令_命令行英雄,原始播客
  17. 计算机根号的3次方怎么,excle 开几次方|excel中咋开3次根号啊
  18. AWS KVS(Kinesis Video Streams)之WebRTC集成过程报错问题整理(八)
  19. ::ZheTian / 遮天 强大的Anti-Virus对抗工具
  20. theano 安装_Theano-安装

热门文章

  1. python 进阶面试题_python面试题
  2. devops什么意思_devops是什么意思
  3. 面向对象9:方法的重写、super关键字、子类对象的实例化过程
  4. C#语法基础(二)---数组stringArrayList
  5. javaint接收float_Java Float intValue()用法及代码示例
  6. php7.1 win7,win7 配置AMP环境(apache2.4.39 + php7.1.28)
  7. thinkphp5 mysql加1_ThinkPHP5.1的数据库链接和增删改查
  8. jmeter java_Jmeter 使用-JAVA请求
  9. mysql 通过ssh通道安全连接数据库
  10. 深入理解Java动态代理及手动实现