七節(jié)顯示器實驗案例程序分享
大?。?/span>0.1 MB 人氣: 2017-09-06 需要積分:0
標(biāo)簽:顯示器(136589)C語言(117708)
七節(jié)顯示器實驗案例程序分享1、4個七節(jié)顯示器跑馬燈實驗
/* ch05-4-3.c - 4個七節(jié)顯示器跑馬燈實驗,P1.0~3 為掃描信號 P2接七節(jié)顯示器 *///==聲明區(qū)==================================
#include?
#define?SCANP?P1??// 定義掃瞄碼由Port 1輸出?
#define?SEG7P?P2??// 定義七節(jié)顯示碼由Port 2輸出?
char code TAB[11]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,???// 數(shù)字0-4
???? ??0x92, 0x83, 0xf8, 0x80, 0x98, 0xbf };?// 數(shù)字5-9,-
#define? counts? 6??// 聲明字組數(shù)量?
char disp[counts+7]={10,10,10,10,1,2,3,4,5,6,10,10,10};??//----123456---?
void delay1ms(int);??// 聲明延遲函數(shù)?
void scanner(char);??// 掃瞄函數(shù)?
//==主程序===================================
main()?????// 主程序開始?
{?char i;????// 聲明變數(shù)i
?while(1)???// 無窮循環(huán),程序一直跑?
??for(i=0;i
}??????// 主程序結(jié)束?
//==子程序====================================
/* 延遲函數(shù),延遲約x*1ms */
void delay1ms(int x)?// 延遲函數(shù)開始?
{?int i,j;???// 聲明整數(shù)變數(shù)i,j?
?for (i=0;i
}??????// 延遲函數(shù)結(jié)束?
/* 掃瞄字組函數(shù),顯示第x組數(shù)字 */
void scanner(char x)?// 掃瞄字組函數(shù)開始?
{?char i,j,BCD,scan;?// 聲明變數(shù)?
?for (i=0;i<30;i++)?// 掃瞄30次i循環(huán)?
?{?scan=0xf7;??// 掃瞄信號初值1111 0111
??for (j=0;j<4;j++)?// 掃瞄4個數(shù)字j循環(huán)?
??{?SEG7P=0xff;?// 關(guān)閉七段顯示器(防止閃動)
???SCANP=scan;?// 輸出掃瞄信號(低4位元)
???BCD=disp[x+j];?// 讀取第x組第j個數(shù)字之BCD碼?
???SEG7P=TAB[BCD];?// 輸出至七節(jié)顯示器?
???delay1ms(4);?// 延遲4ms
???scan>>=1;?// 產(chǎn)生下個掃瞄信號?
??}????// 結(jié)束掃瞄4個數(shù)字j循環(huán)?
?}?????// 結(jié)束掃瞄30次i循環(huán)?
}??????//?scanner函數(shù)結(jié)束?
?
2、直接驅(qū)動4位七節(jié)顯示器實驗
/* ch05-4-2.c - 直接驅(qū)動4位七節(jié)顯示器實驗,P1.0~3為掃描信號 P2接七節(jié)顯示器 *///==聲明區(qū)====================================
#include?
#define?SCANP?P1???// 定義掃瞄碼由Port 1輸出?
#define?SEG7P?P2???// 定義七節(jié)顯示碼由Port 2輸出?
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?//數(shù)字0-4
????? ?0x92, 0x83, 0xf8, 0x80, 0x98 };?//數(shù)字5-9
char code disp[2][4]={?{2,0,0,8},?// 顯示資料(第0組)
??????{0,3,1,5}}; // 顯示資料(第1組)
void delay1ms(int);????// 聲明延遲函數(shù)?
void scanner(char);????// 掃瞄函數(shù)?
//==主程序====================================
main()???????//?主程序開始?
{?char i,j;?????//?聲明變數(shù)i,j
?while(1)?????//?無窮循環(huán),程序一直跑?
?{?for(i=0;i<2;i++)??//?顯示第0,1行字組,for循環(huán)(字組i)開始?
???for(j=0;j<3;j++)?//?閃爍三次?
???{?scanner(i);??//?掃瞄第i行字組?
????SCANP=0xff;??//?全滅?
????delay1ms(480);?//?延遲480 1m=0.48s
???}
?}???????//?while循環(huán)結(jié)束?
}????????//?主程序結(jié)束?
//==子程序====================================
/* 延遲函數(shù),延遲約x 1ms */
void delay1ms(int x)???// 延遲函數(shù)開始?
{?int i,j;?????// 聲明整數(shù)變數(shù)i,j?
?for (i=0;i
}????????// 延遲函數(shù)結(jié)束?
/* 掃瞄字組函數(shù),顯示第x組數(shù)字 */
void scanner(char x)???// 掃瞄字組函數(shù)開始
{?char i,j,BCD,scan;???// 聲明變數(shù)?
?for (i=0;i<30;i++)???// 掃瞄30次i循環(huán)?
?{?scan=0xf7;????// 掃瞄信號初值1111 0111
??for (j=0;j<4;j++)??// 掃瞄4個數(shù)字j循環(huán)?
??{?SEG7P=0xff;???// 關(guān)閉七段顯示器(防止閃動)
???SCANP=scan;???// 輸出掃瞄信號(低4位元)
???BCD=disp[x][j];??// 讀取第x組第j個數(shù)字之BCD碼?
???SEG7P=TAB[BCD];??// 輸出至七節(jié)顯示器?
???delay1ms(4);??// 延遲4ms
???scan>>=1;???// 產(chǎn)生下個掃瞄信號?
??}??????// 結(jié)束掃瞄4個數(shù)字j循環(huán)?
?}???????// 結(jié)束掃瞄30次i循環(huán)?
}????????//?scanner函數(shù)結(jié)束?
?
3、7447解碼之4位數(shù)七節(jié)顯示器實驗
/* ch05-4-1.c -7447解碼之4位數(shù)七節(jié)顯示器實驗,P1.3~0為掃描信號,P1.7~4接7447 *///==聲明區(qū)=================================
#include?
#define?SCANP? P1????//?定義掃瞄信號由P1輸出?
char code disp[2][4]={?{2,0,0,8},?//?顯示資料(第0組)
??????{0,3,1,5}}; //?顯示資料(第1組)
void delay1ms(int);????//?聲明延遲函數(shù)?
void scanner(char);????//?掃瞄函數(shù)?
//==主程序=================================
main()???????//?主程序開始?
{?char i,j;?????//?聲明變數(shù)i,j
?while(1)?????//?無窮循環(huán),程序一直跑?
?{?for(i=0;i<2;i++)??//?顯示第0,1列字組,for循環(huán)(字組i)開始?
???for(j=0;j<3;j++)?//?閃爍三次?
???{?scanner(i);??//?掃瞄第i列字組?
????SCANP=0xff;??//?全滅?
????delay1ms(480);?//?延遲480 1m=0.48s
???}
?}???????//?while循環(huán)結(jié)束?
}????????//?主程序結(jié)束?
//==子程序====================================
/* 延遲函數(shù),延遲約x 1ms */
void delay1ms(int x)???//?延遲函數(shù)開始?
{?int i,j;?????//?聲明整數(shù)變數(shù)i,j?
?for (i=0;i
}????????//?延遲函數(shù)結(jié)束?
/* 掃瞄字組函數(shù),顯示第x組數(shù)字 */
void scanner(char x)???//?掃瞄字組函數(shù)開始
{?char i,j,BCD,scan;???//?聲明變數(shù)?
?for (i=0;i<30;i++)???//?掃瞄30次i循環(huán)?
?{?scan=0xf7;????//?掃瞄信號初值1111 0111
??for (j=0;j<4;j++)??//?掃瞄4個數(shù)字j循環(huán)?
??{?BCD=disp[x][j];??//?讀取第x組第j個數(shù)字之BCD碼?
???SCANP=(BCD<<4)|(scan&0x0f);
???// 輸出BCD碼(高4位元)與掃瞄信號(低4位元)
???delay1ms(4);??//?延遲4ms
???scan>>=1;???//?產(chǎn)生下個掃瞄信號?
??}??????//?結(jié)束掃瞄4個數(shù)字j循環(huán)?
?}???????//?結(jié)束掃瞄30次i循環(huán)?
}????????//?scanner函數(shù)結(jié)束?
?
?
?
4、七節(jié)顯示器實驗程序
/* ch03-3-4.c - 七節(jié)顯示器實驗程序? *///==聲明區(qū)=====================================
#include?
#define?SEG?P0??//?定義七節(jié)顯示器接至Port 0
/* 聲明七節(jié)顯示器驅(qū)動信號陣列(共陽) */
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?// 數(shù)字0-4
?????0x92, 0x83, 0xf8, 0x80, 0x98 };?// 數(shù)字5-9
void delay(int);??//?聲明延遲函數(shù)?
//==主程序=====================================
main()?????//?主程序開始?
{?unsigned char i;?//?聲明無號數(shù)字元變數(shù)i
?while(1)???//?無窮循環(huán),程序一直跑?
??for(i=0;i<10;i++)?//?顯示0-9,共10次?
?{?SEG=TAB[i];??//?顯示數(shù)字?
???delay(500);?//?延遲500 1m=0.5秒?
??}????//?for循環(huán)結(jié)束?
}??????//?主程序結(jié)束?
//==子程序=====================================
/* 延遲函數(shù),延遲約x 1ms */
void delay(int x)??//?延遲函數(shù)開始?
{?int i,j;???//?聲明整數(shù)變數(shù)i,j?
?for (i=0;i
}??????//?延遲函數(shù)結(jié)束?
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
七節(jié)顯示器實驗案例程序分享下載
相關(guān)電子資料下載
- 三星宣布正開發(fā)RGB OLEDoS 蘋果考慮采用 249
- 京東方新型LTPS、LTPO顯示技術(shù)預(yù)計2025年量產(chǎn) 49
- 基于STM32F429芯片的單片機芯片內(nèi)存映射圖 154
- C語言編寫程序執(zhí)行效率高的原因是什么? 31
- 你了解顯示器的組成電路嗎?顯示器分辨率選多少合適? 48
- PLC控制變頻器故障分析 21
- LED行業(yè)一周大事件匯總 259
- 首爾半導(dǎo)體、Silicon Core簽署Micro LED專利許可協(xié)議 194
- 靈犀微光榮獲大獎 二維新品驚艷亮相世界VR產(chǎn)業(yè)大會 221
- 基于51單片機DS18B20溫度測量仿真設(shè)計 254