導航:首頁 > 編程語言 > c計算器源代碼數碼管

c計算器源代碼數碼管

發布時間:2025-08-01 00:36:01

㈠ 51單片機數碼管動態顯示從右往左

這是四位數碼管從右從左流動顯示,像滾動字幕一樣的。用不著矩陣按鍵哪。

其實程序很簡單,沒那麼復雜。程序如下

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//共陰段碼碼,0x00為滅

void delay()//延時子程序

{

uint y;

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

}

void main()

{

uchar n,x;

while(1)

{

n++;

if(n>50)//n為顯示一屏顯示次數,n大小可調節流動速度

{

n=0;

x++;//從下一個位置開始顯示

if(x>8)x=0;

}

}

}

模擬結果

㈡ 利用矩陣式鍵盤,設計一個10以內數的階乘計算器,計算結果用六位數碼管顯示

首先,我們需要選擇一種合適的單片機進行編程。在本例中,我們可以選擇AT89S52單片機作為主控晶元。

接下來,我們需要設計電路圖並進行硬體搭建。按照題目要求,我們需要使用矩陣式鍵盤和六位數碼管。可通過鏈接進行查看:

https://www.easyeda.com/claraliu/matrix-keyboard-and-6-digit-display

接下來,我們需要編寫程序實現階乘計算功能並將結果顯示在六位數碼管上。以下是具體的程序實現方式:

  1. 首先定義一個用於保存輸入數字的變數,並初始化為0;另外還需要定義一個用於保存階乘結果的變數。

2.然後通過鍵盤讀取用戶輸入的數字,並進行判斷是否小於等於10。如果不是,提示用戶重新輸入。

3.接著,通過一個循環語句計算出所輸入數字的階乘,並將結果保存到之前定義的結果變數中。

4.最後,將計算出的階乘結果轉換為六位十進制數,並通過數碼管進行顯示。

以下是完整程序的示例:

#include <reg52.h> // 包含AT89S52頭文件

#define uchar unsigned char // 定義uchar類型

#define uint unsigned int // 定義uint類型

sbit LSA = P2^2; // 設置LSA-P2.2引腳

sbit LSB = P2^3; // 設置LSB-P2.3引腳

sbit LSC = P2^4; // 設置LSC-P2.4引腳

uchar code table[]={ // 建立表格實現數碼管顯示

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0xbf,0xff,

0x88,0x83,0xc6,0xa1};

void delay(uint i) // 延時函數

{

while(i--);

}

void Display(uchar FirstBit,uchar Num) // 數碼管顯示函數

{

LSA=FirstBit; // 選擇哪一位數碼管

P0=table[Num]; // 顯示數字

delay(100); // 延時一段時間

P0=0xff; // 關閉數碼管

}

void main()

{

uchar input_num = 0; // 輸入的數字

uint result = 1; // 階乘結果

uchar i; // 循環計數器

while(1)

{

P1 = 0xf0;

if(P1 != 0xf0) // 如果有鍵按下

{

delay(1000); // 延時去抖

if(P1 != 0xf0) // 確認是否有鍵按下

{

switch(P1) // 判斷按下的是哪個鍵

{

case 0x7f: input_num = 1;break;

case 0xbf: input_num = 2;break;

case 0xdf: input_num = 3;break;

case 0xef: input_num = 10;break;

}

break; // 跳出while循環

}

}

}

if(input_num != 0 && input_num <= 10) // 判斷輸入的數字是否符合要求

{

for(i = 1; i <= input_num; i++) // 計算階乘

{

result *= i;

}

}

else

{

P1 = 0xfe;

Display(0,result/100000); // 顯示結果

Display(1,(result%100000)/10000);

Display(2,(result%10000)/1000);

Display(3,(result%1000)/100);

Display(4,(result%100)/10);

Display(5,result%10);

}

}

最後,我們需要將程序下載到單片機中,並將硬體連接好。這樣,當用戶輸入一個1-10之間的數字時,該計算器就會

閱讀全文

與c計算器源代碼數碼管相關的資料

熱點內容
電腦硬碟數據怎麼拷貝 瀏覽:33
五軸數控編程軟體哪個最好 瀏覽:295
快手app如何登錄多個賬號 瀏覽:70
什麼網站可以下載漫畫 瀏覽:145
ipad批註哪個app好用免費 瀏覽:378
文件的名字由文件名和什麼組成 瀏覽:708
穿越時空的思念所有版本 瀏覽:196
游戲編程學什麼課程 瀏覽:540
access中如何表示指定數據 瀏覽:315
net映射文件下載 瀏覽:59
商務辦公教程 瀏覽:800
oracle導出dmp文件linux 瀏覽:582
盲目崇拜蘋果手機 瀏覽:429
戰地2音頻文件路徑 瀏覽:526
怎麼用手機恢復網站 瀏覽:653
淘寶一樣的app單商戶 瀏覽:111
下載津心辦app有什麼用 瀏覽:268
陌陌升級方法 瀏覽:132
四輪定位哪個數據影響吃胎 瀏覽:1
怎麼清楚cad中lsp文件 瀏覽:358

友情鏈接