找回密码
 立即注册

QQ登录

只需一步,快速开始

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

共享我的51hei开发板数码显示程序-2

[复制链接]
跳转到指定楼层
楼主
ID:27913 发表于 2011-2-18 12:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是动态显示程序,能同时显示几个数字利用的动态扫描的原理,在51hei开发板上运行成功显示,没参考任何资料自己写的请大家多多指教

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

uchar code we[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

sbit dula=P2^6;
sbit wela=P2^7;

uchar c,d,e;

void sixseg(uint seg);
void delay(uint z);
void light(uchar c);

void main()
{ 
//初始化
// num1 = 0;
// cnt=table1[shu];
//设置计数器
//选取计数方式1
 TMOD = 0x11;
//给计数器写初值
 TH0 = (65536-10000)/256;
 TL0 = (65536-10000)%256;
////////////////////
//操作单片机
//开启CPU中断
 EA = 1;
///////////////////
//开启定时器T0位中断
 ET0 = 1;
//开启计数器
 TR0 = 1;
//调用子函数
 while(1)
 {
  sixseg(43456);
 }
}
//子函数
void light(uchar c)
{
 P0=0xff;
 wela=1;
 wela=0;//数码管消影。由于上次位选值被锁存,被选数码管就是上次的。
           //导致下次段选输入会在上次位置显示本次值。

 P0=table[c];
 dula=1;
// P0=table[c];
 dula=0;


 P0=we[d];
 wela=1;
// P0=we[d]; wela=1输出跟随输入,wela=0保持输出,在此赋值
//可能导致上次的输入被跟随而输出即不满足锁存器的建立和保存时间
//也可能是输入的IO口反转速度不够。
 wela=0;
}

//子函数
void sixseg(uint seg)//seg只能表示<65536的数
{
 int a;//注意当seg为long型时uint很慢,分两组显示
   //int型相对清晰,而a为long型时程序龟速行驶。
    //数码管呈流水灯状
 uchar y,z,l,m,n;
/* x=seg/100000;
 y=seg%100000/10000;
 z=seg%100000%10000/1000;
 l=seg%100000%10000%1000/100;
 m=seg%100000%10000%1000%100/10;
 n=seg%100000%10000%1000%100%10;
*/

 y = seg/10000;
 a = seg%10000;
 z = a/1000;
 a = a%1000;
 l = a/100;
 a = a%100;
 m = a/10;
 n = a%10;
 
 if(e==2)
  { 
   d=1;  
   light(y);         
  } 
 if(e==3)
  {   
   d=2;  
   light(z);        
  } 
 if(e==4)
  {    
   d=3;  
   light(l);       
  } 
 if(e==5)
  {   
   d=4;  
   light(m);       
  } 
 if(e==6)
  {   
   d=5;  
   light(n);
  }
}
//中断函数
void time () interrupt 1
{
//自变量自加

 TH0 = (65536-1000)/256;
 TL0 = (65536-1000)%256;
 e++;
 
 if(e==7)
 {
  e=2;  
 // d++;      
 }
 
}

[此贴子已经被作者于2011-2-18 12:15:10编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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