国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標(biāo)題:
不到100行代碼,51單片機32位數(shù)碼管動態(tài)掃描顯示 proteus仿真
[打印本頁]
作者:
coolice
時間:
2021-7-11 23:46
標(biāo)題:
不到100行代碼,51單片機32位數(shù)碼管動態(tài)掃描顯示 proteus仿真
51單片機使用573鎖存器,32位數(shù)碼管動態(tài)顯示,時間仿真顯示
51單片機到底能帶動多少位數(shù)碼管呢?
本次演示proteus版本為8.6
1.jpg
(69.22 KB)
下載附件
2021-7-11 23:47 上傳
部分源碼:完整源碼見附件
#include "AT89X52.H"
/* */
code unsigned char reg_code[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
code unsigned char reg_code1[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //陰碼 (共陰的數(shù)碼管的段碼)
#define DELAY_N 1000
unsigned char time[3] = {12,34,50};
void show_time(void);
void get_time(void);
void main(void)
{
unsigned short j;
P2 = 0;
P1_0 = 1;
P1_1 = 1;
P1_2 = 1;
P0 = reg_code1[1];
while(1)
{
show_time();
get_time(); //獲取時間
}
}
void show_time(void)
{
char i;
unsigned short j;
unsigned char buf[8]={10,10,10,10,10,10,10,10};
unsigned char buf1[8]={1,2,3,4,5,6,7,8};
unsigned char buf2[8]={3,2,1,4,5,6,3,2};
buf[0] = time[0]/10;
buf[1] = time[0]%10; //除以10,得到余數(shù)
buf[3] = time[1]/10;
buf[4] = time[1]%10;
buf[6] = time[2]/10;
buf[7] = time[2]%10;
for (i=0;i<8;i++)
{
P2 = i<<2;
P1_0 = 1; //讓P0的數(shù)據(jù)通過573
P0 = reg_code1[buf[i]];
P1_0 = 0; //鎖住這個數(shù)據(jù),P0無法通過573
//for(j=0;j<60000;j++);
P1_1 = 1;
P0 = reg_code1[buf1[i]];
P1_1 = 0; //鎖住這個數(shù)據(jù)
// for(j=0;j<60000;j++);
P1_2 = 1;
P0 = reg_code1[buf2[i]];
P1_2 = 0; //鎖住這個數(shù)據(jù)
for(j=0;j<200;j++);
P0 = 0; //熄滅所有的段
}
}
//獲得時間
void get_time(void)
{
static unsigned char j;
if(j++>50)
{
j = 0;
time[2]++; //秒
if(time[2] > 59)
{
time[2] = 0;
time[1] ++;
if(time[1] > 59)
{
time[1] = 0;
time[0] ++;
if(time[0] > 23)
{
time[0] = 0;
}
}
}
}
}
復(fù)制代碼
數(shù)碼管顯示源碼和仿真文件.rar
(99.17 KB, 售價: 1 E幣)
2021-7-11 23:46 上傳
點擊文件名下載附件
售價: 1 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0