微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求 正解 恳请朋友们帮一下忙

求 正解 恳请朋友们帮一下忙

时间:10-02 整理:3721RD 点击:
本人刚开始接触单片机 不是很懂 请求各位路过的朋友 帮帮忙
   我在做数码管的显示  程序 想让 数码管只显示数字  1
  单片机型号  15F 2K61S2
                      351-PDIP40
                       1311HAT493.C
程序如下(自己乱写的  觉得不对  求大神指点)
#include <STC15F2K.h>
#include <intrins.H>
sbit  ser=P2^7;            
sbit srclk=P2^5;            
sbit  rclk=P2^6;   
sbit  dula=Q0;              
void main()
{
  
      srclk=0;srclk=1;srclk=0;
  dula=0xf9;
  rclk=0;rclk=1;rclk=0;  
然后keil 就提示下面的问题了  不知道怎么办  真心感谢朋友们的帮忙
   
XIN.C(12): error C202: 'srclk': undefined identifier
XIN.C(12): error C202: 'srclk': undefined identifier
XIN.C(12): error C202: 'srclk': undefined identifier
XIN.C(13): error C202: 'dula': undefined identifier
XIN.C(14): error C202: 'rclk': undefined identifier
XIN.C(14): error C202: 'rclk': undefined identifier
XIN.C(14): error C202: 'rclk': undefined identifier
Target not created

void main()
{
  
      srclk=0;srclk=1;srclk=0;
  dula=0xf9;
  rclk=0;rclk=1;rclk=0;
while(1);
}
这样试一下,

谢谢 还是不行 这是技术手册里的源程序 和开发板原理图
#include "STC15F2K.h"
#include <intrins.H>
typedef unsigned char uchar;
typedef unsigned int  uint;

uchar bdata OutByte;         /*定义待输出字节变量*/
sbit Bit_Out=OutByte^7;         /*定义输出字节的最高位,即输出位*/
sbit     SER=P2^7;             /*位输出引脚*/
sbit     SRCLK=P2^5;             /*位同步脉冲输出*/
sbit    RCLK=P2^6;             /*锁存脉冲输出*/
uchar code Segment[]={
     0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,         /*共阴7段LED段码表*/
     0x7c,0x39,0x5e,0x79,0x71,0x76,0x73,0x3e,0x00};
void OneLed_Out(uchar i,uchar Location)   /*输出点亮一个7段LED显示器*/
{
     uchar j;
     OutByte=Location;             /*先输出位码*/
     for(j=1;j<=8;j++)
     {
         SER=Bit_Out;
         SRCLK=0;SRCLK=1;SRCLK=0;     /*位同步脉冲输出*/
         OutByte=OutByte<<1;
     }
     OutByte=~Segment[i];         /*再输出段码*/
     for(j=1;j<=8;j++)
     {
         SER=Bit_Out;
         SRCLK=0;SRCLK=1;SRCLK=0;     /*位同步脉冲输出*/
         OutByte=OutByte<<1;
     }
     RCLK=0;RCLK=1;RCLK=0;     /*一个锁存脉冲输出*/
}
void main()
{
     uchar i=0;
     uchar Location=0x01;                 /*定义位码*/
         P2=0x01;
     while(1)
     {
         OneLed_Out(i,Location);
         i=i+1;
         Location=_crol_(Location,1);
         if(i==8)                 //8次一轮
         {
             i=0;
             Location=0x01;
                         //Delay(1000);
         }          
     }
}

sbit  dula=Q0;   
这个定义是个什么东西。

我是看着与a,b,c,d,e,f相连的共阳端是 Q1  Q2  Q3 Q4 Q5 Q6 Q7  所以以为那就是段地址呢   就定义了一下 源程序 就是我发到楼上的那个  这个单片机是51单片机 与 平常所学习的89C52有点不一样 所以 我也不是很懂 自己乱写的  朋友 如果您懂得话  给个正确的答案哈  在此十分感谢

没有定义srclk,dula,rclk变量类型,可以在main函数之前加入以下命令
unsigned char srclk;
unsigned char dula;
unsigned char rclk;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top