国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
基于51單片機+MAX7221芯片驅動數碼管程序與Proteus仿真圖
[打印本頁]
作者:
eng
時間:
2021-6-5 15:23
標題:
基于51單片機+MAX7221芯片驅動數碼管程序與Proteus仿真圖
at89c51芯片,可以通過MAX7221芯片進行數碼管驅動,實現三個引腳控制8位數碼管,驅動函數已經寫好,包括數碼管顯示函數,可以隨心控制你想要輸出的數字。目前置為8位數,自動減1,具體功能可以自行加入。
1.png
(113.24 KB)
下載附件
2021-6-5 15:21 上傳
部分源碼:完整源碼和仿真文件在本文尾部附件中
#include <reg51.h>
#include <intrins.h>
sbit DIN = P2^0; //數據串出引腳
sbit CS = P2^1; //片選端
sbit CLK = P2^2; //移位時鐘端
unsigned char disp_buff[10] = {0,1,2,3,4,5,6,7,8,9};//顯示的數字,數值為10的時候,顯示“-”
// 延時函數
void delayms(unsigned int x)
{
unsigned char i;
while(x--)
{
for(i = 0;i < 120;i++);
}
}
void write_data(unsigned char addr,unsigned char dat)
{
unsigned char i;
CS = 0; // 先寫地址,片選置低,串行數據加載到移位寄存器
for(i = 0;i < 8;i++) //
{
CLK = 0; //時鐘上升沿數據移入內部移位寄存器
addr <<= 1; //待發送的地址,每次左移一次,高位在前發送,
DIN = CY; //數據移位后,如果有溢出,則可以從進位位CY中獲得溢出的數據位
CLK = 1;
_nop_();
_nop_();
CLK = 0; //下降沿時數據從DOUT移出
}
for(i = 0;i < 8;i++)
{
CLK = 0; //
dat <<= 1; //發送數據
DIN = CY;
CLK = 1;
_nop_();
_nop_();
CLK = 0;
}
CS = 1; //CS上升沿,數據鎖存
}
//初始化函數
void init_max7221(void)
{write_data(0x09,0xff); //編碼模式
write_data(0x0a,0x07); //亮度控制
write_data(0x0b,0x07); //掃描數碼管的位數
write_data(0x0c,0x01); //工作模式
write_data(0x0f,0x00); //工作模式
}
void main(void)
{
unsigned char Sec_1=0,Sec_2=0,Sec_3=0,Sec_4=0,Sec_5=0,Sec_6=0,Sec_7=0,Sec_8=0;
unsigned char i;
unsigned long int Sum=87654321;
init_max7221(); // 初始化
delayms(2);
while(1)
{
Sum-=10;
Sec_8 = Sum/10000000;
Sec_7 = Sum%10000000/1000000;
Sec_6 = Sum%1000000/100000;
Sec_5 = Sum%100000/10000;
Sec_4 = Sum%10000/1000;
Sec_3 = Sum%1000/100;
Sec_2 = Sum%100/10;
Sec_1 = Sum%10;
for(i = 0;i < 8;i++)
{
switch(i)
{
case 0:write_data(i+1,disp_buff[Sec_8]);break;
case 1:write_data(i+1,disp_buff[Sec_7]);break;
case 2:write_data(i+1,disp_buff[Sec_6]);break;
case 3:write_data(i+1,disp_buff[Sec_5]);break;
case 4:write_data(i+1,disp_buff[Sec_4]);break;
case 5:write_data(i+1,disp_buff[Sec_3]);break;
case 6:write_data(i+1,disp_buff[Sec_2]);break;
case 7:write_data(i+1,disp_buff[Sec_1]);break;
default:break;
}
}
i=0;
}
}
復制代碼
完整源碼和仿真文件:
基于MAX7221驅動數碼管.rar
(50.71 KB, 售價: 2 E幣)
2021-6-5 15:23 上傳
點擊文件名下載附件
售價: 2 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0