- 打卡等级:初来乍到
- 打卡总天数:2
- 最近打卡:2024-04-19 13:20:08
注册会员
- 积分
- 80
|
发表于 2023-7-1 21:28:12
|
显示全部楼层
第13期主要讲了数码管的动态与静态显示,由于还没学习到定时器,一些功能无法更精简地实现。
本人的开发板上使用的是74138译码器和两组四码共阴数码管,所以代码部分稍显复杂
#include <STC89C5xRC.H>
#include <intrins.h>
unsigned char code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管段码
unsigned char code ls138[]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c}; //74138真值表
void Delay1ms();
void main(){
unsigned char seg7 = 0;
unsigned char ls38 = 0;
unsigned char l;
while(1){
for(seg7=0;seg7<10;seg7++){
for(l=0;l<50;l++){
for(ls38=0;ls38<8;ls38++){
P2=ls138[ls38];
P0=smg[seg7];
Delay1ms();
P0=0xff;
}
}
}
}
}
void Delay1ms() //@11.0592MHz
{
unsigned char data i, j;
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
实现了一个从0到9的循环显示,知识点和教程视频相差不大 |
|