色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>C/C++語言編程>

七節顯示器實驗案例程序分享

大小:0.1 MB 人氣: 2017-09-06 需要積分:0
七節顯示器實驗案例程序分享

1、4個七節顯示器跑馬燈實驗

/* ch05-4-3.c - 4個七節顯示器跑馬燈實驗,P1.0~3 為掃描信號 P2接七節顯示器 */
//==聲明區==================================
#include? ???? // 定義8051暫存器之標頭檔,P2-17~19?
#define?SCANP?P1??// 定義掃瞄碼由Port 1輸出?
#define?SEG7P?P2??// 定義七節顯示碼由Port 2輸出?
char code TAB[11]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,???// 數字0-4
???? ??0x92, 0x83, 0xf8, 0x80, 0x98, 0xbf };?// 數字5-9,-
#define? counts? 6??// 聲明字組數量?
char disp[counts+7]={10,10,10,10,1,2,3,4,5,6,10,10,10};??//----123456---?
void delay1ms(int);??// 聲明延遲函數?
void scanner(char);??// 掃瞄函數?
//==主程序===================================
main()?????// 主程序開始?
{?char i;????// 聲明變數i
?while(1)???// 無窮循環,程序一直跑?
??for(i=0;i ???scanner(i);?// 掃瞄第i列字組?
}??????// 主程序結束?
//==子程序====================================
/* 延遲函數,延遲約x*1ms */
void delay1ms(int x)?// 延遲函數開始?
{?int i,j;???// 聲明整數變數i,j?
?for (i=0;i ??for (j=0;j<120;j++);?// 計數120次,延遲1ms?
}??????// 延遲函數結束?
/* 掃瞄字組函數,顯示第x組數字 */
void scanner(char x)?// 掃瞄字組函數開始?
{?char i,j,BCD,scan;?// 聲明變數?
?for (i=0;i<30;i++)?// 掃瞄30次i循環?
?{?scan=0xf7;??// 掃瞄信號初值1111 0111
??for (j=0;j<4;j++)?// 掃瞄4個數字j循環?
??{?SEG7P=0xff;?// 關閉七段顯示器(防止閃動)
???SCANP=scan;?// 輸出掃瞄信號(低4位元)
???BCD=disp[x+j];?// 讀取第x組第j個數字之BCD碼?
???SEG7P=TAB[BCD];?// 輸出至七節顯示器?
???delay1ms(4);?// 延遲4ms
???scan>>=1;?// 產生下個掃瞄信號?
??}????// 結束掃瞄4個數字j循環?
?}?????// 結束掃瞄30次i循環?
}??????//?scanner函數結束?
?

2、直接驅動4位七節顯示器實驗

/* ch05-4-2.c - 直接驅動4位七節顯示器實驗,P1.0~3為掃描信號 P2接七節顯示器 */
//==聲明區====================================
#include?? ??// 定義8051暫存器之標頭檔,P2-17~19?
#define?SCANP?P1???// 定義掃瞄碼由Port 1輸出?
#define?SEG7P?P2???// 定義七節顯示碼由Port 2輸出?
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?//數字0-4
????? ?0x92, 0x83, 0xf8, 0x80, 0x98 };?//數字5-9
char code disp[2][4]={?{2,0,0,8},?// 顯示資料(第0組)
??????{0,3,1,5}}; // 顯示資料(第1組)
void delay1ms(int);????// 聲明延遲函數?
void scanner(char);????// 掃瞄函數?
//==主程序====================================
main()???????//?主程序開始?
{?char i,j;?????//?聲明變數i,j
?while(1)?????//?無窮循環,程序一直跑?
?{?for(i=0;i<2;i++)??//?顯示第0,1行字組,for循環(字組i)開始?
???for(j=0;j<3;j++)?//?閃爍三次?
???{?scanner(i);??//?掃瞄第i行字組?
????SCANP=0xff;??//?全滅?
????delay1ms(480);?//?延遲480 1m=0.48s
???}
?}???????//?while循環結束?
}????????//?主程序結束?
//==子程序====================================
/* 延遲函數,延遲約x 1ms */
void delay1ms(int x)???// 延遲函數開始?
{?int i,j;?????// 聲明整數變數i,j?
?for (i=0;i ??for (j=0;j<120;j++);?// 計數120次,延遲1ms?
}????????// 延遲函數結束?
/* 掃瞄字組函數,顯示第x組數字 */
void scanner(char x)???// 掃瞄字組函數開始
{?char i,j,BCD,scan;???// 聲明變數?
?for (i=0;i<30;i++)???// 掃瞄30次i循環?
?{?scan=0xf7;????// 掃瞄信號初值1111 0111
??for (j=0;j<4;j++)??// 掃瞄4個數字j循環?
??{?SEG7P=0xff;???// 關閉七段顯示器(防止閃動)
???SCANP=scan;???// 輸出掃瞄信號(低4位元)
???BCD=disp[x][j];??// 讀取第x組第j個數字之BCD碼?
???SEG7P=TAB[BCD];??// 輸出至七節顯示器?
???delay1ms(4);??// 延遲4ms
???scan>>=1;???// 產生下個掃瞄信號?
??}??????// 結束掃瞄4個數字j循環?
?}???????// 結束掃瞄30次i循環?
}????????//?scanner函數結束?
?

3、7447解碼之4位數七節顯示器實驗

/* ch05-4-1.c -7447解碼之4位數七節顯示器實驗,P1.3~0為掃描信號,P1.7~4接7447 */
//==聲明區=================================
#include????// 定義8051暫存器之標頭檔,P2-17~19?
#define?SCANP? P1????//?定義掃瞄信號由P1輸出?
char code disp[2][4]={?{2,0,0,8},?//?顯示資料(第0組)
??????{0,3,1,5}}; //?顯示資料(第1組)
void delay1ms(int);????//?聲明延遲函數?
void scanner(char);????//?掃瞄函數?
//==主程序=================================
main()???????//?主程序開始?
{?char i,j;?????//?聲明變數i,j
?while(1)?????//?無窮循環,程序一直跑?
?{?for(i=0;i<2;i++)??//?顯示第0,1列字組,for循環(字組i)開始?
???for(j=0;j<3;j++)?//?閃爍三次?
???{?scanner(i);??//?掃瞄第i列字組?
????SCANP=0xff;??//?全滅?
????delay1ms(480);?//?延遲480 1m=0.48s
???}
?}???????//?while循環結束?
}????????//?主程序結束?
//==子程序====================================
/* 延遲函數,延遲約x 1ms */
void delay1ms(int x)???//?延遲函數開始?
{?int i,j;?????//?聲明整數變數i,j?
?for (i=0;i ??for (j=0;j<120;j++);?//?計數120次,延遲1ms?
}????????//?延遲函數結束?
/* 掃瞄字組函數,顯示第x組數字 */
void scanner(char x)???//?掃瞄字組函數開始
{?char i,j,BCD,scan;???//?聲明變數?
?for (i=0;i<30;i++)???//?掃瞄30次i循環?
?{?scan=0xf7;????//?掃瞄信號初值1111 0111
??for (j=0;j<4;j++)??//?掃瞄4個數字j循環?
??{?BCD=disp[x][j];??//?讀取第x組第j個數字之BCD碼?
???SCANP=(BCD<<4)|(scan&0x0f);
???// 輸出BCD碼(高4位元)與掃瞄信號(低4位元)
???delay1ms(4);??//?延遲4ms
???scan>>=1;???//?產生下個掃瞄信號?
??}??????//?結束掃瞄4個數字j循環?
?}???????//?結束掃瞄30次i循環?
}????????//?scanner函數結束?
?
?
?

4、七節顯示器實驗程序

/* ch03-3-4.c - 七節顯示器實驗程序? */
//==聲明區=====================================
#include? // 定義8051暫存器的標頭檔,P2-17~19?
#define?SEG?P0??//?定義七節顯示器接至Port 0
/* 聲明七節顯示器驅動信號陣列(共陽) */
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?// 數字0-4
?????0x92, 0x83, 0xf8, 0x80, 0x98 };?// 數字5-9
void delay(int);??//?聲明延遲函數?
//==主程序=====================================
main()?????//?主程序開始?
{?unsigned char i;?//?聲明無號數字元變數i
?while(1)???//?無窮循環,程序一直跑?
??for(i=0;i<10;i++)?//?顯示0-9,共10次?
?{?SEG=TAB[i];??//?顯示數字?
???delay(500);?//?延遲500 1m=0.5秒?
??}????//?for循環結束?
}??????//?主程序結束?
//==子程序=====================================
/* 延遲函數,延遲約x 1ms */
void delay(int x)??//?延遲函數開始?
{?int i,j;???//?聲明整數變數i,j?
?for (i=0;i ??for (j=0;j<120;j++);//?計數120次,延遲1ms?
}??????//?延遲函數結束?
?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 国产在线观看免费观看不卡| 青青草原直播| 动漫美女和男人下载| 亚洲成AV人电影在线观看 | 美女的隐私蜜桃传媒免费看| 第一次破女视频出血视频| 影音先锋av电影| 翁公咬着小娇乳H边走边欢A| 蜜芽tv在线观看免费网站| 国产在线观看网址你懂得| 成人网站国产在线视频内射视频| 岳的奶大又白又胖| 亚欧成人毛片一区二区三区四区| 欧美末成年videos在线| 久久理论片| 国产自产第一区c国产| 成人性生交大片免费看4| 97精品国产高清在线看入口 | 国产精品一区第二页| chinese情侣自拍啪hd| 伊人青青久久| 亚洲精品在线网址| 我和妽妽在厨房里的激情区二区 | 亚洲精品第二页| 首页_亚洲AV色老汉影院| 欧美在线看欧美视频免费| 久久伊人青青| 久久ZYZ资源站无码中文动漫| 国产免费毛片在线观看| 国产高清视频a在线大全| 草久热的视频在线观看| CHINA中国东北GURMA| 51精品国产AV无码久久久密桃| 亚洲幼女网| 亚洲午夜电影| 亚洲视频国产在线精品| 亚洲高清国产品国语在线观看| 无人视频在线观看免费播放影院 | 邓奴的视频IVK| 成人在线免费观看| 第一精品福利导福航|