导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[ALP]C51编程:簡單問題愁煞人



No.5243
作者:ALP
邮件:ALP2502@SOHU.COM
ID:3395
登陆:3次
文章数:9篇
最后登陆IP:61.144.193.63
最后登陆:2004/7/22 16:45:47
注册:2002/1/18 9:40:00
财富:35
发帖时间:2002/1/25 8:56:00
发贴者IP:61.142.10.84
标题:ALP:C51编程:簡單問題愁煞人
摘要:No.5243C51编程:簡單問題愁煞人 各位大俠﹕
    我寫了一個DS1302的應用程序﹐運行時LED顯示有錯﹕數字顯示不全﹐如"8"共陰極字型
碼是0X80,但顯示結果是0X87,后3位出錯﹔其它數字類似﹐均是后3位出錯。經運行測試程
序﹐硬件上無錯。百思不得其解﹐請教個位大俠。附源程序如下﹕

/***************************************************************************/
/* DS1302.C                                                                */
/***************************************************************************/
#include    <stdio.h>
#include    <reg51.h>
#include    <intrins.h>

#define uchar unsigned char 
/***************************************************************************/
/* Prototypes                                                              */
/***************************************************************************/
void     clkwritebyte();
void     ramwritebyte();
uchar    rbyte_3w();
void    reset_3w();
void    wbyte_3w(uchar);
void    initialize_DS1302();
void    disp_clk_regs();
void    burstramrd();
void    burstramwr();

sbit SCLK    = P1^2;
sbit IO        = P1^3;
sbit RSTB     = P1^4;

/* ----------------------------------------------------------------------- */
void reset_3w()
{
   SCLK = 0;
   RSTB = 0;
   RSTB = 1;
}
/* ----------------------------------------------------------------------- */
void wait(uchar t)
{     
    uchar i,j;
    for (i=0; i<=t; i++)
    {
        for (j=0; j<120; j++)
        {
            _nop_();
        }
    }
}
/* ----------------------------------------------------------------------- */
void wbyte_3w(uchar W_Byte)
{
    uchar i;
    for(i = 0; i < 8; ++i)
    {
        IO = 0;
        SCLK = 0;
        if(W_Byte & 0x01)
        {
            IO = 1;    /* set port pin high to read data */
        }
        SCLK = 1;
        W_Byte >>= 1;
    }
}
/* ----------------------------------------------------------------------- */
uchar rbyte_3w()
{
    uchar i;
    uchar R_Byte;
    uchar TmpByte;

    R_Byte = 0x00;
    /*IO = 1;*/
    for(i=0; i<8; ++i)
    {
        SCLK = 1;
        SCLK = 0; ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:78531毫秒 查询6次