• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#实现51单片机频率计的代码分享(数字频率计设计)

c#实现51单片机频率计的代码分享(数字频率计设计)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了单片机数字频率计,51单片机数字频率计,基于单片机数字频率计,单片机数字频率计论文,单片机数字频率计设计等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

//按键
sbit button=P1^7;
//LED
sbit led2=P3^5;
sbit led3=P3^7;
//数码管位选
sbit c0 = P3^0;
sbit c1 = P3^1;
sbit c2 = P3^2;
sbit c3 = P3^3;
//数码管段码
uchar code dm[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar wm[]={0,0,0,0};
ulong pl;
uchar mode;
void delay3ms(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=1;c>0;c--)
        for(b=176;b>0;b--)
            for(a=7;a>0;a--);
}

void smg()
{
 static uchar i=0;
 c0=1;c1=1;c2=1;c3=1;
 P1 = 0XFF;
 switch(i)
 {
  case 0: c0=0;
  break;
  case 1: c1=0;
  break;
  case 2: c2=0;
  break;
  case 3: c3=0;
  break;
 }
 P1 = dm[wm[i]];
 i++;
 if(i>3)
 {
  i=0;
 } 
}
void ledmode()
{
 switch(mode)
 {
  case 0:led2=led3=0;
  break;
  case 1:led2=1;led3=0;
  break;
  case 2:led2=0;led3=1;
  break;
  case 3:led2=led3=1;
  break;
 }
}
void key()
{
 static uchar num;
 delay3ms();
 button=1;
 switch(num)
 {
  case 0: if(!button)
    {
     num=1;
    }
  break;
  case 1: if(!button)
    {
     if(mode<3)
     {
      mode++;
     }
     else
     {
      mode=0;
     }
     num=2;
    }
    else
    {
     num=0;
    }
  break;
  case 2: if(button)num=3;
  break;
  case 3: if(button)num=0;
  break;
 }
}

void timeinit()
{
 TMOD=0x15;  //设置T0T1控制字
 TH0=0x00;
 TL0=0x00;
 TH1=0xfC;
 TL1=0x18;
 ET0=1;  //定时器0中断允许
 ET1=1;
 TR0=1;  //启动T0计数
 TR1=1;  //并启动T1计数
 EA=1;  //CPU开中断
}

 


void main()
{
 timeinit();
 while(1)
 {
  smg(); 
  ledmode();
  key();
 }
}

void t1()interrupt 3
{
 static uint time;
 TR0=0;
 TH1=(65536-10000)/256;
 TL1=(65536-10000)%256;
 time++;
 if(time>99)
 {
  time=0;
  pl=TH0*256+TL0;
  wm[0]=(pl/1000)%10;
  wm[1]=(pl/100)%10;
  wm[2]=(pl/10)%10;
  wm[3]=pl%10;
  TH0=TL0=0;
 }
 TR0=1;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c#实现51单片机频率计的代码分享(数字频率计设计)

相关文章

  • 2017-05-28c#使用微信接口开发微信门户应用
  • 2017-05-28解析C#中的常量及如何在C#编程中定义常量
  • 2017-05-28C#实现把指定数据写入串口
  • 2017-05-28C#使用动态规划解决0-1背包问题实例分析
  • 2017-05-28Json操作库DynamicJson使用指南
  • 2017-05-28C#实现老板键功能的代码
  • 2017-05-28DevExpress之ChartControl用法实例总结
  • 2017-05-28磁盘配额的wmi版本(C#)
  • 2017-05-28分享一个C#编写简单的聊天程序(详细介绍)
  • 2017-05-28c#中利用委托反射将DataTable转换为实体集的代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 基于私钥加密公钥解密的RSA算法C#实现方法
    • C#采用OpenXml给Word文档添加表格
    • C# 6.0 新特性汇总
    • 你是不是这样写异常处理代码的呢?
    • C#实现简单的井字游戏实例
    • c#操作xml帮助类分享(xml增删改查)
    • c# 自定义泛型链表类的详解
    • C#基础知识之this关键字介绍
    • C#委托现实示例分析
    • ADO.NET实用技巧两则

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有