📄 shumaguan_finish.c
字号:
//4位数码管从左到右,动态显示1 2 3 4,晶振选择8M
//测试:ok
//头文件
#include <iom16v.h>
#include <macros.h>
unsigned char data[4]={1,2,3,4};//显示字符
//函数说明
void delay_1ms(void);//
void delay_nms(unsigned int n);//
unsigned char decode(unsigned char i);//
void port_init(void);//
//延时1ms子函数
void delay_1ms(void)
{
unsigned int i;
for(i=1142;i>0;i--)
;
}
//延时nms子函数
void delay_nms(unsigned int n)
{
for(;n>0;n--)
delay_1ms();
;
}
//端口初始化
void port_init(void)
{
DDRA=0XFF;//A口 是段选
PORTA=0X00;
DDRD=0XFF;//D口是位选,从左到右,依次为PD0,PD1,PD2,PD3
PORTD=0X00;
}
//译码子函数
unsigned char decode(unsigned char i)
{
switch(i)
{
case 0:return(0x3F);
case 1:return(0x06);
case 2:return(0x5B);
case 3:return(0x4F);
case 4:return(0x66);
case 5:return(0x6D);
case 6:return(0x7D);
case 7:return(0x07);
case 8:return(0x7F);
case 9:return(0x6F);
default:return(0x3F);
}
}
/********动态显示函数********/
void display(unsigned char *p)
{
unsigned char i;
for(i=0;i<4;i++)
{
PORTD=~(1<<i);
PORTA=decode(p[i]);
delay_nms(2);
}
}
//主函数
void main(void)
{
unsigned char i;
port_init();
while(1)
{
display(data);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -