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

📄 h32.c

📁 利用80C196片内的A/D转换模块
💻 C
字号:
// 用8255控制八段数码管

// 1. 启动伟福软件界面,连接好实验仪
// 2. 8255的CS接CS0,
// 3. 8255的PORTA口的PA0~PA7接段码A~H,
// 4. 8255的PORTC口的PC0~PC5接位码G0~G5
// 5. 若程序运行正常,会在八段管上显示 "123456"


#define mode 0x82   // 方式0,PA,PC输出,PB输入

xdata unsigned char PortA _at_ 0x8000 ; // Port A
xdata unsigned char PortB _at_ 0x8001 ; // Port B
xdata unsigned char PortC _at_ 0x8002 ; // Port C
xdata unsigned char CAddr _at_ 0x8003 ; // 控制字地址

code unsigned char LEDMAP[] = {  // 八段管显示码
  0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
  0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
};

void delay(unsigned char CNT)
{
  unsigned int i;

  while (CNT-- !=0)
    for (i=200; i !=0; i--);
}

void main()
{
  register unsigned char dd;

  CAddr = mode;     // 方式0, PA,PC输出, PB输入

  while(1){
    dd = 0x01;           // 先显示最低位
    PortA = LEDMAP[6];   // 段码输出到PA
    PortC = dd;          // 位码输出到PC
    delay(1);            // 延时

    PortC = 0;           // 关闭显示
    dd <<= 1;            // 显示下一位
    PortA = LEDMAP[5];   // 段码输出到PA
    PortC = dd;          // 位码输出到PC
    delay(1);

    PortC = 0;
    dd <<= 1;
    PortA = LEDMAP[4];   // 段码输出到PA
    PortC = dd;          // 位码输出到PC
    delay(1);            // 延时

    PortC = 0;
    dd <<= 1;
    PortA = LEDMAP[3];   // 段码输出到PA
    PortC = dd;          // 位码输出到PC
    delay(1);            // 延时

    PortC = 0;
    dd <<= 1;
    PortA = LEDMAP[2];   // 段码输出到PA
    PortC = dd;          // 位码输出到PC
    delay(1);            // 延时

    PortC = 0;
    dd <<= 1;
    PortA = LEDMAP[1];   // 段码输出到PA
    PortC = dd;          // 位码输出到PC
    delay(1);            // 延时

  }
}

⌨️ 快捷键说明

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