當前位置:編程學習大全網 - 編程語言 - 設計壹個單片機輸入顯示系統,要求每按壹下按鍵數碼管顯示數據加1(數碼管初始值為0,9加1 後顯示0)。

設計壹個單片機輸入顯示系統,要求每按壹下按鍵數碼管顯示數據加1(數碼管初始值為0,9加1 後顯示0)。

程序清單如下:

#include < reg51.h >// 51單片機頭文件

#define uchar unsigned char// 宏定義,用uchar替代無符號字符型

#define uint ?unsigned int// 宏定義,用uint 替代無符號整數型

sbit Key = P2 ^ 7;

uchar Count = 0;?

uchar code DataChar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'P'

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

};//延時N毫秒

void DelayNms( uint N )// 利用x、y作簡單的自減運算,消耗單片機指令周期,達到延時的目的

{

uint x,y;

for( x=N; x>0; x-- )

for( y=110; y>0; y-- );

}

//數碼管顯示? // 顯示方式為動態掃描,視覺暫留原理

void Display( uchar Num )// *p指向Main函數中的數組ShowNum的首地址

{

P0 = DataChar[ Num ];// 向P0賦段碼值

DelayNms(2);// 短暫的延時

P0 = 0x00;// 讓數碼管熄滅,否則會造成數字重疊

}

void main( void )

{

while(1)

{

if( Key == 0 )

{

DelayNms(30);

if( Key == 0 )

{

Count += 1;

Count = (Count>9)? 0 : Count;

}

while( !Key );

}

Display( Count );

}

}

擴展資料

8051單片機具有如下功能:

8位CPU·4kbytes程序存儲器(ROM) (52為8K)

128bytes的數據存儲器(RAM) (52有256bytes的RAM)

32條I/O口線·111條指令,大部分為單字節指令

21個專用寄存器

2個可編程定時/計數器·5個中斷源,2個優先級(52有6個)

壹個全雙工串行通信口

外部數據存儲器尋址空間為64kB

外部程序存儲器尋址空間為64kB

邏輯操作位尋址功能·雙列直插40PinDIP封裝

單壹+5V電源供電

CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器;

RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據;

ROM:用以存放程序、壹些原始數據和表格;

I/O口:四個8位並行I/O口,既可用作輸入,也可用作輸出

T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;

五個中斷源的中斷控制系統;

壹個全雙工UART(通用異步接收發送器)的串行I/O口,用於實現單片機之間或單片機與微機之間的串行通信;

片內振蕩器和時鐘產生電路,石英晶體和微調電容需要外接。最佳振蕩頻率為6M—12M。

百度百科-51單片機

  • 上一篇:如何獲取局域網內所有IP地址 java代碼
  • 下一篇:tpl後綴是什麽文件?
  • copyright 2024編程學習大全網