关于6位数码管动态扫描显示程序的一些问题

该程序是用ATmega16单片机实现6位数码管动态扫描显示的示例。它包括显示函数、时间转换为显示缓冲区函数。主要疑惑点在于秒数点的显示逻辑。程序中通过`if (point_on && (i == 2 || i == 4)) PORTA |= 0x80;`这一行来控制秒数的点显示,`point_on`用于切换秒数点的状态,每40ms更新一次时间并显示。程序提供了时间更新、延时和扫描显示等功能。
摘要由CSDN通过智能技术生成

File name : demo_6_5.c
Chip type           : ATmega16
Program type        : Application
Clock frequency     : 4.000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*********************************************/

#include <mega16.h>
#include <delay.h>

flash unsigned char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
flash unsigned char position[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
unsigned char time[3]; // 时、分、秒计数
unsigned char dis_buff[6]; // 显示缓冲区,存放要显示的6个字符的段码值
unsigned char time_counter; // 1秒计数器
bit point_on; // 秒显示标志

void display(void) // 扫描显示函数,执行时间12ms
{
unsigned char i;
  for(i=0;i<=5;i++)
{
PORTA = led_7[dis_buff[i]]; 
if (point_on && ( i==2 || i==4 )) PORTA |= 0x80; // (1)
PORTC = 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值