历史上的今天

今天是:2024年11月16日(星期六)

2019年11月16日 | 接近开关的51单片机驱动程序

发布者:CyborgDreamer 来源: 51hei关键字:接近开关  51单片机  驱动程序 手机看文章 扫描二维码
随时随地手机看文章

今天用做了个小东西:数码管显示接近开关变化值接近开关通过外部中断0连接单片机;数码管示数增加到50后清零;


#include              // 引用标准库的头文件

#include

#define uchar unsigned char

#define uint unsigned int


#define NoOp   0x00             // 空操作寄存器 

#define Digit0 0x01             // 数码管1寄存器 

#define Digit1 0x02             // 数码管2寄存器 

#define Digit2 0x03              // 数码管3寄存器  

#define Digit3 0x04             // 数码管4寄存器  

#define Digit4 0x05             // 数码管5寄存器  

#define Digit5 0x06             // 数码管6寄存器  

#define Digit6 0x07             // 数码管7寄存器  

#define Digit7 0x08             // 数码管8寄存器  

#define DecodeMode 0x09            // 译码模式寄存器  

#define Intensity 0x0a                 // 亮度寄存器  

#define ScanLimit 0x0b              // 扫描位数寄存器 

#define ShutDown 0x0c               // 低功耗模式寄存器

#define DisplayTest 0x0f            // 显示测试寄存器

#define ShutdownMode 0x00            // 低功耗方式  

#define NormalOperation 0x01         // 正常操作方式 

#define ScanDigit 0x07                 // 扫描位数设置,显示8位数码管

#define DecodeDigit 0xff           // 译码设置,8位均为BCD码

#define IntensityGrade 0x0a          // 亮度级别设置 

#define TestMode 0x01                  // 显示测试模式,

#define TextEnd 0x00                   // 显示测试结束,恢复正常工作模式



sbit DIN = P0^3;                    // 串行数据输入


sbit CLK = P0^4;                    // 串行时钟


sbit LOAD = P0^5;                   // 显示数据锁存控制





uchar DisBuffer[8]={0,0,0,0,0,0,0,0};    // 显示缓存区0x06

uchar a[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};


uchar num11;


/* 延时t毫秒 */


void delay(uint a)


{uchar x,y;

  for(x=a;x>0;x--)

  for(y=110;y>0;y--);



/* 向MAX7219写入字节(8位)*/


void SendChar (uchar ch)


{


    uchar i,temp;


    _nop_();


   for(i=0;i<8;i++)


    {


       temp=ch&0x80;


       ch=ch<<1;


       if(temp)


        {


               DIN=1;


               CLK=0;


               CLK=1;


        }


        else


        {


               DIN=0;


               CLK=0;


               CLK=1;


        }


    }


}




/* 向MAX7219写入字(16位)*/


void WriteWord (uchar addr,uchar num)


{


    LOAD=0;


    _nop_();


    SendChar(addr);


    _nop_();


    SendChar(num);


    _nop_();


    LOAD=1;                            // 锁存进相应寄存器


}




/* MAX7219初始化 */


void InitDisplay (void)


{


    WriteWord (ScanLimit,ScanDigit);         // 设置扫描界限


    WriteWord (DecodeMode,DecodeDigit);      // 设置译码模式


    WriteWord (Intensity,IntensityGrade);    // 设置亮度


    WriteWord (ShutDown,NormalOperation);    // 设置为正常工作模式


}


// show




// 外部中断0

void show1(uchar dat)

{uchar shi,ge;

shi=dat/10;

ge=dat%10;

delay(1);

WriteWord (Digit6,a[ge]);

WriteWord (Digit7,a[shi]);


}






/* 主函数 */

void main(void)


{


     InitDisplay ();                                              // MAX7219初始化

         


         IE=0x81;

         IT0=1;


      show1(0);

          WriteWord (Digit1,0xff);

          WriteWord (Digit0,0xff);

      WriteWord (Digit2,0xff);

          WriteWord (Digit3,0xff);

          WriteWord (Digit4,0xff);

          WriteWord (Digit5,0xff);

while(1)


{

        if(num11==50)

    num11=0;


    show1(num11);


}

}



void exint0(void)interrupt 0

{

num11++;


InitDisplay();

delay(1);

show1(num11);

delay(1);


}


关键字:接近开关  51单片机  驱动程序 引用地址:接近开关的51单片机驱动程序

上一篇:L297,L298驱动步进电机原理图proteus仿真+程序 LCD显示速度
下一篇:基于51单片机的波形发生器的设计

推荐阅读

11月15日消息,随着首款搭载基于7n m工艺制程打造的麒麟980芯片的华为Mate 20系列机型以及今年最后的一批旗舰机陆续亮相,用户和业内人士都将目光集中在了明年旗舰机主打的全新高通骁龙旗舰处理器上。现在有最新消息,全新旗舰处理器骁龙8150的跑分数据得到曝光。        今日,安安兔官方微博公布了高通骁龙8150的跑分成绩,该芯片总分高达3622...
随着数字信号速率和边沿的越来越快,信号完整性设计、测试和分析给涉及数字电路和系统的产品研究和开发带来了巨大的挑战。信号完整性是运用射频微波理论解决高速数字设计问题的一门技术,是一门交叉学科。在测试分析方面,也需要把射频微波仪器和数字仪器结合起来完成。信号完整性分析应该贯串产品开发的整个过程,以达到降低成本和一次性设计成功的目标。...
去机场,最让你苦恼的是什么?那一定是停车了,当你找到停车位的时候,估计飞机都要起飞了,试想一下,如果你把车开到机场,当你停在指定的停放点后,拿上行李后,就可以直接去登机了,车上的自动泊车系统,会使车辆自动停靠到停车位上。当你下飞机时,使用手机APP,点击车辆可回到停放点,当你去到停车场,就可以直接开车走梅赛德斯已经和斯图加特机场共...
之前曾有消息称,苹果可能取消iPhone的mimi款,主要原因是销量不是很好。  据爆料人LeaksApplePro透露,明年的iPhone阵容将由两款6.1英寸和两款6.7英寸的设备组成,而不会推出iPhone 14 mini。  除了销量不堪的缘故外,还有更多的因素是,苹果希望继续扩大专业机型和非专业机型之间差距。  类似的消息之前就曾出现过,当时就有消息人士透露...

史海拾趣

问答坊 | AI 解惑

面向对象技术在嵌入式开发中的应用

随着信息技术的发展,对嵌入式系统的研究与开发也成为当前的一个热点。由于 -.机上应用的 /01占用资源太多,不适合嵌入式的应用,因此嵌入式系统对轻量级 /01 的需求越来越迫切。首先介绍了嵌入式系统及其相关概念,并针对图形用户界面在嵌入式系统 ...…

查看全部问答∨

请推荐电源降压IC

我现在正在做一个系统外部供电是12V。系统中有3.3V和3.8V供电,请问我应该选择先降到哪一个点比较合适?我还有一个掉电保护电路。请推荐一个IC给我和一个电源系统的设计方案。谢谢!…

查看全部问答∨

运动与健康市场的人体传感器网络PAN

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 近年来,随着各种短距离无线通信技术的发展,人们提出了一个新的概念,即个人局域网PAN(Personal Area Network)。      PAN 核心思想是,用无线电或红外线或者蓝牙代替传统的有线电缆 ...…

查看全部问答∨

DS18B20

问下 就是DS18B20负温度如何弄 ,我做来总是有1度的误差…

查看全部问答∨

《小强爬行记》全套漫画:道尽毕业生辛酸

近日,天涯社区一名广州的网友“卖身找工作”,自称是仍然失业的应届毕业生,他结合眼下“被就业”“跨省追捕”等时兴话题及自 身的经历,以漫画“小强爬行记”道尽自己大学毕业以来就业路上的种种辛酸经历。他调侃自己为一只“踩不死的小强,就算 ...…

查看全部问答∨

奇特的发光引路带子

  你有没有当夜猫子的习惯,有没有半夜起床翻冰箱,找水喝的“恶习”。但是又不想开电打扰家人或者麻烦去开电,那就让发光带子给你引路吧...把这些带子贴在你晚上频繁经过的地方,沙发角、茶几角、阶梯、门把手,白天你几乎看不到这些带子 ...…

查看全部问答∨

FIR滤波器的问题

写了一个FIR滤波器的程序。要求大约是200Hz采样速率,16阶,17抽头。算出来延迟是40毫秒。并且算好了滤波系数。 可能是我对“延迟”的理解有问题,代码写成滤波函数定时每40毫秒运行一次,取当时最近的一次采样结果进行滤波。运行的结果当然是惨不 ...…

查看全部问答∨

ShellExecuteEx 打开bat文件一闪

= _T(\"searchlist.bat\");          //执行DOS命令                                TCHAR szAppPath[MAX_PATH] = _T(\"\");& ...…

查看全部问答∨

请教 LED灯闪烁模式

现在有8个LED ,用51单片机的8个I/O控制,老大让闪烁200种模式 如果每种模式写一个函数实现,那就得200个函数,老大说200个函数太大了 他要像活字印刷那样,几个函数通过不同的组合就能实现这200种模式 唉,想得头都大了,不知道大家有没有什么 ...…

查看全部问答∨

MPMC里的VFBC

在EDK中,MPMC的VFBC可以不经过CPU直接跟用户逻辑通信吗?在EDK中配置好MPMC的端口后,如何将其导入到ISE里啊?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved