main.c

来自「stc15单片机测试程序V1.0版」· C语言 代码 · 共 68 行

C
68
字号
/***********************************************************
实验名称:数码管
程序说明:本程序测试了数码管
实验平台:stc15单片机开发板v1.0版
日期:2012-05-27
QQ:	259902530
www.stcstudy.com    61mcu.taobao.com  版权所有 
***********************************************************/
#include "STC15F2K.h"
#include <intrins.H>

typedef unsigned char uchar;
typedef unsigned int  uint;


uchar bdata OutByte;         /*定义待输出字节变量*/
sbit Bit_Out=OutByte^7;         /*定义输出字节的最高位,即输出位*/
sbit     SER=P4^4;             /*位输出引脚*/
sbit     SRCLK=P4^2;             /*位同步脉冲输出*/
sbit    RCLK=P4^1;             /*锁存脉冲输出*/
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;                 /*定义位码*/

     while(1)
     {
         OneLed_Out(i,Location);
         i=i+1;
         Location=_crol_(Location,1);

         if(i==8)                 //8次一轮
         {
             i=0;
             Location=0x01;
			 //Delay(1000);
         }	  
     }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?