找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TM1620显示程序已正常

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-2 22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//在STC15W204S单片机上测试已正常工作,内部RC振荡器6M
#include<REG52.h>

#include<stdio.h>
#include<intrins.h>

#define dissetmode    0x02        //显示模式设置
#define writedatamode_z   0x40    //自动加一方式显存
#define writeledmode_z   0x41     //自动加一方式写LED显存命令
#define readkeymode    0x42       //读按键命令
#define readswmode    0x43        //读SW命令
#define writedatamode_g   0x44    //固定模式
#define writeledmote_g   0x45     //固定模式写LED显存命令
#define startaddress   0xc0       //起始地址
#define disconmode    0x8f        //显示控制

#define uchar unsigned char
uchar a[]={0x3f,0x06,0x5B,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //1,2,3,4,5,6,7,8,9
unsigned long TmData;
unsigned int i;

sbit   STB    =P3^7;        //定义端口
sbit   CLK    =P3^6;
sbit   DIN   =P1^1;

void indate(unsigned char p)
{ unsigned int i;
STB=0;
for(i=0;i<8;i++)
   {
  CLK=0;
  if((p&0x01)!=0)
  {
   DIN=1;
  }
  else
  {
   DIN=0;
  }
  _nop_();_nop_();
  CLK=1;
  p=p>>1;
   }
   _nop_();_nop_();
}

void display()
{
   uchar temp[4];
   temp[3]=TmData%10000/1000;
   temp[2]=TmData%1000/100;
   temp[1]=TmData%100/10;
   temp[0]=TmData%10;

   DIN=1;
   CLK=1;
   STB=1;     //初始化
   indate(writedatamode_g);
   STB=1;
    for(i=0;i<4;i++)
{
  indate(startaddress+i*2); //传起始地址
  indate(a[temp[i]]);    //传数据
  STB=1;
    }
indate(disconmode);     //显示控制命令
STB=1;
}

void main()
{
   while(1)
   {
   TmData=1234;
    display();
   }
}



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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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