?? shumaguan_finish.c
字號(hào):
//4位數(shù)碼管從左到右,動(dòng)態(tài)顯示1 2 3 4,晶振選擇8M
//測(cè)試:ok
//頭文件
#include <iom16v.h>
#include <macros.h>
unsigned char data[4]={1,2,3,4};//顯示字符
//函數(shù)說(shuō)明
void delay_1ms(void);//
void delay_nms(unsigned int n);//
unsigned char decode(unsigned char i);//
void port_init(void);//
//延時(shí)1ms子函數(shù)
void delay_1ms(void)
{
unsigned int i;
for(i=1142;i>0;i--)
;
}
//延時(shí)nms子函數(shù)
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;
}
//譯碼子函數(shù)
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);
}
}
/********動(dòng)態(tài)顯示函數(shù)********/
void display(unsigned char *p)
{
unsigned char i;
for(i=0;i<4;i++)
{
PORTD=~(1<<i);
PORTA=decode(p[i]);
delay_nms(2);
}
}
//主函數(shù)
void main(void)
{
unsigned char i;
port_init();
while(1)
{
display(data);
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -