单片机控制8只数码管,分别滚动显示单个数字1~8。程序运行后,单片机控制左边第1个数码管显示1,其他不显示,延时之后,控制左边第2个数码管显示2,其他不显示,....直至第8个数码管显示8,其他不显示,反复循环上述过程
1个回答
关注
展开全部
亲亲您好,很高兴为您解答单片机控制8只数码管,分别滚动显示单个数字1~8。程序运行后,单片机控制左边第1个数码管显示1,其他不显示,延时之后,控制左边第2个数码管显示2,其他不显示,....直至第8个数码管显示8,其他不显示每次显示完一个数字后,程序通过Delay()函数延时1秒,然后再显示下一个数字,直至最后一个数字8。最后程序重新循环执行,从数字1开始重复上述过程。
咨询记录 · 回答于2023-04-03
单片机控制8只数码管,分别滚动显示单个数字1~8。程序运行后,单片机控制左边第1个数码管显示1,其他不显示,延时之后,控制左边第2个数码管显示2,其他不显示,....直至第8个数码管显示8,其他不显示,反复循环上述过程
程序要怎么写
亲亲您好,很高兴为您解答单片机控制8只数码管,分别滚动显示单个数字1~8。程序运行后,单片机控制左边第1个数码管显示1,其他不显示,延时之后,控制左边第2个数码管显示2,其他不显示,....直至第8个数码管显示8,其他不显示每次显示完一个数字后,程序通过Delay()函数延时1秒,然后再显示下一个数字,直至最后一个数字8。最后程序重新循环执行,从数字1开始重复上述过程。
#include // 引入STC单片机头文件// 数码管位选端口定义sbit LSA = P2^2;sbit LSB = P2^3;sbit LSC = P2^4;// 数码管段选端口定义sbit A = P1^0;sbit B = P1^1;sbit C = P1^2;sbit D = P1^3;sbit E = P1^4;sbit F = P1^5;sbit G = P1^6;sbit DP = P1^7;// 数码管显示数字数组定义unsigned char code DisplayData[] = { // 数字0~9及空白符的段选码 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff};void Delay(unsigned int i) { // 延时函数 unsigned int j; while(i--) { for(j=0; j<125; j++); }}void main() { unsigned char i = 0; // 循环计数器 while(1) { // 无限循环 for(i=0; i<8; i++) { // 显示1~8数字 switch(i) { // 位选控制 case 0: LSA = 0; LSB = 0; LSC = 0; break; case 1: LSA = 1; LSB = 0; LSC = 0; break; case 2: LSA = 0; LSB = 1; LSC = 0; break; case 3: LSA = 1; LSB = 1; LSC = 0; break; case 4: LSA = 0; LSB = 0