91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 66KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: 其他
  • 標簽:

資源簡介

用51單片機實現整數的加減乘除,通過矩陣按鍵實現數據的輸入和處理,通過8個數碼管實現數據及結果的顯示。

資源截圖

代碼片段和文件信息

/**************************************************************************************
* ??????????????矩陣按鍵實驗 ??*
實現現象:下載程序后數碼管顯示0,按下矩陣按鍵上的按鍵顯示對應的數字
S1-S4:0-3
S5-S8:4-7
S9-S12:8-B
S13-S16:C-F。
注意事項: ??
***************************************************************************************/

#include?“reg52.h“ ?//此文件中定義了單片機的一些特殊功能寄存器

typedef?unsigned?int?u16; ??//對數據類型進行聲明定義
typedef?unsigned?char?u8;

#define?GPIO_DIG?P0
#define?GPIO_KEY?P1

u8?a[9]={0};
u16?mnh;

sbit?LSA=P2^2;
sbit?LSB=P2^3;
sbit?LSC=P2^4;
sbit?beep=P2^7; ?


u8?KeyValue=20; //用來存放讀取到的鍵值


u8?code?smgduan[17]={0x3f0x060x5b0x4f0x660x6d0x7d0x07
0x7f0x6f0x770x7c0x390x5e0x790x71};//顯示0~F的值

/*******************************************************************************
*?函?數?名?????????:?delay
*?函數功能 ???:?延時函數,i=1時,大約延時10us
*******************************************************************************/
void?delay(u16?i)
{
while(i--);
}

void?chaifen(u16?n)
{
u8?i;
for(i=0;i<8;i++)
{
?a[8-1-i]=n%10;
?n/=10;
}
}

void?fuwei()
{
u8?i;
for(i=0;i<9;i++)
{
a[i]=0;
}
}

/*******************************************************************************
*?函?數?名?????????:?DigDisplay
*?函數功能 ???:?數碼管動態掃描函數,循環掃描8個數碼管顯示
*******************************************************************************/
void?DigDisplay()
{
u8?i;
for(i=0;i<8;i++)
{
?if(a[i]!=0)
?break;
}
if(i==8)
{
?i--;
}
for(;i<8;i++)
{
switch(i) ?//位選,選擇點亮的數碼管,
{
case(0):
LSA=0;LSB=0;LSC=0;?break;//顯示第0位
case(1):
LSA=1;LSB=0;LSC=0;?break;//顯示第1位
case(2):
LSA=0;LSB=1;LSC=0;?break;//顯示第2位
case(3):
LSA=1;LSB=1;LSC=0;?break;//顯示第3位
case(4):
LSA=0;LSB=0;LSC=1;?break;//顯示第4位
case(5):
LSA=1;LSB=0;LSC=1;?break;//顯示第5位
case(6):
LSA=0;LSB=1;LSC=1;?break;//顯示第6位
case(7):
LSA=1;LSB=1;LSC=1;?break;//顯示第7位
}
P0=smgduan[a[i]];//發送段碼
delay(100);?//間隔一段時間掃描
P0=0x00;//消隱
}
}

/*******************************************************************************
*?函?數?名?????????:?KeyDown
*?函數功能 ???:?檢測有按鍵按下并讀取鍵值
*?輸????入?????????:?無
*?輸????出?????????:?無
*******************************************************************************/
void?KeyDown(void)
{
char?a=0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)//讀取按鍵是否按下
{
delay(1000);//延時10ms進行消抖
if(GPIO_KEY!=0x0f)//再次檢測鍵盤是否按下
{
//測試列
GPIO_KEY=0X0F;
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d):?KeyValue=2;break;
case(0X0e): KeyValue=3;break;
}
//測試行
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue+4;break;
case(0Xd0):?KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break;
}
while((a<50)&&(GPIO_KEY!=0xf0)) ?//檢測按鍵松手檢測
{
delay(1000)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????14827??2019-04-11?11:17??用51單片機實現簡單的計算器要求說明.docx
?????目錄???????????0??2018-12-02?21:11??計算器程序例程\
?????文件????????5093??2018-11-30?21:24??計算器程序例程\main.c
?????文件???????14310??2018-11-30?21:34??計算器程序例程\main.LST
?????文件????????9650??2018-11-30?21:34??計算器程序例程\main.OBJ
?????文件????????8053??2018-11-30?21:34??計算器程序例程\template
?????文件????????3018??2018-11-30?21:34??計算器程序例程\template.hex
?????文件??????????44??2018-11-30?21:34??計算器程序例程\template.lnp
?????文件???????13652??2018-11-30?21:34??計算器程序例程\template.M51
?????文件?????????180??2018-12-02?21:11??計算器程序例程\template.plg
?????文件??????135109??2018-11-04?13:17??計算器程序例程\template.uvgui.Administrator
?????文件???????85331??2018-11-17?19:24??計算器程序例程\template.uvgui.ThinkPad
?????文件??????135101??2018-11-04?13:17??計算器程序例程\template.uvgui_Administrator.bak
?????文件???????56275??2018-12-02?21:11??計算器程序例程\template.uvopt
?????文件???????13229??2018-11-29?10:10??計算器程序例程\template.uvproj
?????文件???????56277??2018-12-02?20:35??計算器程序例程\template_uvopt.bak
?????文件???????13844??2018-11-17?19:24??計算器程序例程\template_uvproj.bak

評論

共有 條評論