⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 14489.c

📁 这是《Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践》教材各章中列出的全部程序例子。
💻 C
字号:
#pragma db oe sb 
#define uchar unsigned char

sbit DATA	= 0x90 ;      /* 定义P1.0为DATA IN */
sbit CLK	= 0x91 ;          /* 定义P1.1为CLOCK */
sbit ENA	= 0x92 ;          /* 定义P1.2为ENABLE */

void DSPCMD(uchar CMD) {  /* 单字节命令函数, 写入MC14489内部设置寄存器 */
  uchar i;
  ENA=0;                  /* 使能MC14489 */
  for (i=8;i>=1;i--) {    /* 写入单字节命令 */
    DATA=CMD&0x80;
    CMD=CMD<<1;
    CLK=0;
    CLK=1;
  }
  ENA=1;                  /* 禁止MC14489 */
}

void DSPDATA(uchar DSCMD, uchar DSDATA1, uchar DSDATA2) { 
  uchar DSP,i,j;          /* 多字节命令函数, 写入MC14489显示寄存器 */
  i=0;
  ENA=0;                  /* 使能MC14489 */
  while(i<24) {           /* 写入三字节显示数据 */
   if(i<8) {DSP=DSCMD;}
    else if(i<16) {DSP=DSDATA1;}
     else {DSP=DSDATA2;}
     for(j=8;j>=1;j--) {
       DATA=DSP&0x80;
       DSP=DSP<<1;
       CLK=0;
       CLK=1;
     }
     i=i+8;
  }
  ENA=1;                  /* 禁止MC14489 */
}

void main() {
  DSPCMD(0x01);            /* 单字节命令, 点亮所有LED */
  DSPDATA(0x85,0x43,0x21); /* 在5位LED上分别显示54321, 满亮度显示 */
  DSPDATA(0x01,0x23,0x45); /* 在5位LED上分别显示12345, 半亮度显示 */
}

⌨️ 快捷键说明

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