找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2063|回复: 4
打印 上一主题 下一主题
收起左侧

求赐教,求赐教,显示程序不会啊

[复制链接]
跳转到指定楼层
楼主
ID:158420 发表于 2016-12-28 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "reg52.h"

unsigned char code dsp_code_ca[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int tflag;
unsigned char dspflag;
unsigned char second;
unsigned char dflag;

void display(unsigned char d);

void main()
{
  TMOD |= 0x02;
  TH0 = 0x06;
  TL0 = 0x06;
  EA = 1;
  ET0 = 1;
  TR0 = 1;
  while(1)
  {
    display(second);  
  }
}

//T0中断服务函数
void isr_t0(void) interrupt 1
{
  tflag++;
  dflag++;
  if(dflag == 16)
  {
          dflag = 0;
        dspflag++;
        if(dspflag == 2)
          dspflag = 0;
  }
  if(tflag == 4000)
  {
    tflag = 0;
    second++;
    if(second == 60)
      second = 0;
  }  
}

//显示程序
void display(unsigned char d)
{
  if((dspflag == 0) && (d/10 != 0))
  {
        P0 = 0xFF;
    P2 |= 0xE0;
    P2 &= 0x1F;

        P0 = dsp_code_ca[d/10];
    P2 |= 0xE0;
    P2 &= 0x1F;
    P0 = 0x40;
    P2 |= 0xC0;
    P2 &= 0x3F;
  }
  if(dspflag == 1)
  {
    P0 = 0xFF;
        P2 |= 0xE0;
    P2 &= 0x1F;

        P0 = dsp_code_ca[d%10];
    P2 |= 0xE0;
    P2 &= 0x1F;
    P0 = 0x80;
    P2 |= 0xC0;
    P2 &= 0x3F;
  }  
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:113208 发表于 2016-12-28 21:33 | 只看该作者
有电路图吗?没有电路图不好说。&=|=就是按位与和或,然后赋值。
回复

使用道具 举报

板凳
ID:158420 发表于 2016-12-29 14:49 | 只看该作者
张伟灵 发表于 2016-12-28 21:33
有电路图吗?没有电路图不好说。&=|=就是按位与和或,然后赋值。

回复

使用道具 举报

地板
ID:158420 发表于 2016-12-29 14:51 | 只看该作者
张伟灵 发表于 2016-12-28 21:33
有电路图吗?没有电路图不好说。&=|=就是按位与和或,然后赋值。

Y7是位选,Y6是段选。这个现实程序定义的d,还有显示的逻辑我看不懂。能帮我解一下惑吗?
谢谢您
回复

使用道具 举报

5#
ID:111634 发表于 2016-12-29 22:08 | 只看该作者
本帖最后由 zl2168 于 2016-12-29 22:12 编辑

显示是单片机最基本最常用的功能。
介绍你几种显示电路和程序,自己去学习研究吧!


5 显示


5.1  LED数码管静态显示


实例51  单个LED数码管循环显示0~9


实例52  74LS377并行输出3LED静态显示


实例53  CC4511 BCD码驱动3LED数码管静态显示


实例54  74LS164串行扩展3LED数码管静态显示


实例55  CC4094串行扩展3LED数码管静态显示


实例56  74HC595串行扩展3LED数码管静态显示


5.2  LED数码管动态显示


实例57  PNP晶体管选通3位共阳LED数码管动态显示


实例58  74LS139选通4LED数码管动态显示


实例59  74LS138选通8LED数码管动态显示


实例60  74LS595串行选通8LED数码管动态显示


实例61  控制8LED数码管滚动显示


实例62  8255A扩展8LED数码管动态显示


实例63  8155扩展8LED数码管动态显示


实例64  MAX7221控制8LED数码管动态显示


5.3  LED点阵显示


实例65  LED5×7点阵显示字符


实例66  LED 16×16点阵显示汉字


5.4  LCD显示屏显示


实例67  LCD1602显示屏显示字符


实例68  LCD12864显示屏显示汉字



以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表