本文共 1044 字,大约阅读时间需要 3 分钟。
实验现象
下载程序到实验板,开发板从左到右数码管每隔2秒显示1位数字,依次是0-7。程序解释
以下是用于实现上述实验现象的相关代码文件:SMG.h
#ifndef _SMG_H #define _SMG_H extern uchar SMG_Value; // 存放读取到的数据 void SMG_Circle_Display(); // 8个数码管循环显示8个数字 #endif
SMG.c
#include "All.h" uchar SMG_Value = 0; // 存储读取到的数据 // 数码管显示缓冲区 uchar code DuanBuffer[16] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e, 0xff }; // 数码管位选缓冲区 uchar code WeiBuffer[8] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }; void SMG_Circle_Display() { uchar i; for (i = 0; i < 8; i++) { HC138_Enable_CS(7); // 打开段选 P0 = DuanBuffer[disbuffer[i]]; // 显示对应的数字 HC138_Enable_CS(6); // 打开位选 P0 = WeiBuffer[i]; // 设置数码管位选 Delay_ms(2000); // 延迟2000ms } }
main.c
#include "All.h" /* 主函数 */ void main() { // 屏蔽蜂鸣器 HC138_Enable_CS(5); P0 = 0x00; // 初始化所有输入为0 while (1) { SMG_Circle_Display(); // 循环显示数字 } }
实验效果
程序将使开发板上的8个数码管依次以2秒间隔显示数字0到7,形成简单的循环显示效果。转载地址:http://jrbrz.baihongyu.com/