2436|1

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

为什么数据进不了缓存i【】 [复制链接]

#include "stc12le5a60s2.h"

//共阴数码管段码表
unsigned char code DispCode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,                                                                                                                                                       
                          //      0    1    2    3    4    5   6    7    8    9   
                                                           0x77,0x7C,0x39,0x5E,0x79,0x71,0x3D,0x76,0x74,0x30,       
                                          //      A           b    C         d          E           F   G        H         h          I          
                                                0x10,0x1E,0x38,0x54,0x5C,0x73,0x67,0x50,0x31,0x78,
                                          //      i    J    L         n    o           P   q        r    R          t            
                                                    0x3E,0x1C,0x40,0x48,0x08,0x00,0xff};
                                          //      U           V   一    二          _    灭
       
//HC595接口定义
sbit                         HC595_DAT                =        P4^4;           //HC595串行数据线
sbit                         HC595_SCK                =        P4^5;           //HC595移位时钟线
sbit                         HC595_RCK                =        P4^6;           //HC595锁存时钟线
sbit                         HC595_OE                =        P3^7;           //HC595输出允许线

//端口操作定义
#define                 SET                                   1                           //高电平
#define                 CLR                                   0                           //低电平

  //端口操作
#define                HC595_DAT_Clr()        {HC595_DAT=CLR;}
#define                HC595_DAT_Set()        {HC595_DAT=SET;}

#define                HC595_SCK_Clr()        {HC595_SCK=CLR;}
#define                HC595_SCK_Set()        {HC595_SCK=SET;}

#define                HC595_RCK_Clr()        {HC595_RCK=CLR;}
#define                HC595_RCK_Set()        {HC595_RCK=SET;}

#define                HC595_OE_Clr()        {HC595_OE=CLR;}
#define                HC595_OE_Set()        {HC595_OE=SET;}
         
//函数声明
void Delay_ms(unsigned int ms);
void HC595_Init(void);
void HC595_SendWord(unsigned char  dis,unsigned char dig);
int cout=0,miao=11,min=17,hour=10,*p;
int i[]={1,2,3,4,5,6,7,8};

//主方法
void main(void)
{
        unsigned char x;
        HC595_Init();
        TMOD=0x10;
        TH1=0x4B;
        TL1=0xFF;
        TR1=1;
        *p=i;                        //HC595初始化
        while(1)
        {                       
                for(x=0;x<8;x++)                //将37个段码全部显示出来
            {
                      //将待显示的字型码和点亮的数码管号送至锁存器。
                        //由于是共阴数码管,将八段数码管共阴极拉低,显示数据。
                        HC595_SendWord(DispCode[i[x]],~(0x01<                       Delay_ms(500);                 //延时0.5秒
            }
        }
}
/***********************************************
函数名称:HC595_SendWord
功    能:HC595发送两个字节数据。
入口参数:dis:显示的字型码
              dig:点亮的数码管号 dig中为0的位,则对应的数码管点亮
返 回 值:无       
备    注:两片HC595,发送两个字节数据,高字节
          为数码管段码,低字节为选择点亮哪个数码管。
                  该程序点亮数码管可以结合原理图来看,
                  否则不好理解,和电路原理关系密切。
************************************************/
void HC595_SendWord(unsigned char  dis,unsigned char dig)
{
        unsigned char i;               //定义计数器
        unsigned int temp=0;           //定义数据变量
        //将两个8位变量合并成一个16字节变量
        temp=dis;
        temp=temp<<8  | dig;
        HC595_OE_Set();                                   //禁止显示
        //送出数据
        for(i=0;i<16;i++)                        
    {                               
                HC595_SCK_Clr();               //置低时钟线
               
                if( (temp&0x8000)==0x8000 )//先发送高字节
                 {
                           HC595_DAT_Set();           //置高信号线
                 }
                 else
                 {
                        HC595_DAT_Clr();           //置低信号线
                 }       
                HC595_SCK_Set();                   //置高时钟线
               
            temp<<=1;                                   //数据左移                               
        }
        //锁存信号上升沿锁存数据                       
        HC595_RCK_Clr();                        
        HC595_RCK_Set();       
        HC595_OE_Clr();                                   //输出允许,开始显示
}
/***********************************************
函数名称:HC595_Init
功    能:显示初始化函数
入口参数:无
返 回 值:无       
备    注:单片机P4口默认不使用,如需启用,
          需软件设置。
************************************************/
void HC595_Init(void)
{       
        Delay_ms(10);                                //等待HC595上电稳定
        P4SW |=0x70;                                 //使用P4口
        //将端口置高,赋予端口固定电平
        HC595_DAT_Set();
        HC595_SCK_Set();
        HC595_RCK_Set();
        //输出允许,开始显示
        HC595_OE_Clr();
}
/***********************************************
函数名称:Delay_ms
功    能:STC 1T单片机1ms延时程序
入口参数:ms:延时的毫秒数
返 回 值:无       
备    注:示波器实测1.05ms 外部时钟11.0592MHz
************************************************/
void Delay_ms(unsigned int ms)
{
          unsigned int i;
          while( (ms--) != 0)
           {
            for(i = 0; i < 600; i++);
           }            
}

void time1(void) interrupt 1
{
     TH1=0x4B;
         TL1=0xFF;
         cout++;
         if(cout==20)
            {
                   cout=0;
                   miao++;
                      if(miao==60)
                               {  miao=0;
                                      min++;
                                           if(min==60)
                                               {  min=0;
                                                      hour++;
                                                       if (hour==12)
                                                              { hour=0;
                                                                   }
                            }
                    }
                                       
                                                                     
       }        i[0]=miao/10;
                                i[1]=miao%10;
                                i[2]=min/10;
                                i[3]=min%10;
                                i[4]=hour/10;
                                i[5]=hour%10;
}
此帖出自51单片机论坛

最新回复

什么意思?  详情 回复 发表于 2014-2-7 14:29
点赞 关注
 

回复
举报

173

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
什么意思?
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表