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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于51單片機的簡易計算器設計

白茶茶668 ? 來源:白茶茶668 ? 作者:白茶茶668 ? 2023-08-01 00:51 ? 次閱讀

該計算器系統51 系列的單片機進行的數字計算器系統設計,可以完成計算器的鍵盤輸入, 進行加、 減、乘、除的簡單四則運算,并在 LCD屏幕上相應的顯示結果。選擇內部存儲資源豐富的 51 單片 機,輸入采用 4×4矩陣鍵盤,顯示采用LCD1602屏幕模塊進行顯示。軟件方面從分析計算器功能、 流程圖設計,再到程序的編寫進行系統設計。編程語言方面從程序總體設計以及高效性和功能性對 C 語言和匯編語言進行比較分析, 針對計算器四則運算算法特別是乘法和除法運算的實現,最終選 用全球編譯效率最高的KEIL 公司的μVision5 軟件,采用C語言進行編程,并用 Proteus8 進行仿真

image.png

部分程序:

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit rs=P2^6; //數據命令選擇

sbit lcden=P2^7;//使能信號


uchar code table[]= " ";


long int data_a,data_b; //第一個數和第二個數

long int data_c; //計算結果


uchar dispaly[10]; //顯示緩沖


sbit MUSIC_REST =P2^2;//語音芯片復位腳

sbit MUSIC_DATA =P2^1;//語音芯片脈沖識別

sbit bus =P2^0;//語音芯片工作狀態識別信號

uchar bbh,xm1,xm2,xm0;


void delay_us(unsigned int us)//延時函數

{

while(us--)

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

void Music(unsigned char music_count)

{

MUSIC_REST=1;

delay_us(200);

MUSIC_REST=0;

delay_us(200);


while(music_count>0)

{

MUSIC_DATA=1;

delay_us(100);

MUSIC_DATA=0;

delay_us(100);

music_count--;

}

}

//************************************************************************/

// 描述: 延時t us函數

//************************************************************************/

void LCD_Delay_us(unsigned int t)

{

while(t--); //t=0,退出

}

//************************************************************************/

// 描述: 延時t ms函數

//************************************************************************/

void LCD_Delay_ms(unsigned int t)

{

unsigned int i,j;

for(i=0;i;i++)>

for(j=0;j<113;j++) //執行113次循環

;

}

//************************************************************************/

// 描述: 1602液晶寫指令

//************************************************************************/

void write_com(uchar com) //1602液晶寫指令

{

rs=0; //寫指令

lcden=0; //使能1602

P0=com; //寫入指令com

LCD_Delay_ms(1); //延時1ms

lcden=1; //使能1602

LCD_Delay_ms(2); //延時2ms

lcden=0; //使能1602

}

//************************************************************************/

// 描述:1602液晶寫數據

//************************************************************************/

void write_date(uchar date) //1602液晶寫數據

{

rs=1; //寫數據

lcden=0; //使能1602

P0=date; //寫入數據date

LCD_Delay_ms(1); //延時1ms

lcden=1; //使能1602

LCD_Delay_ms(2); //延時2ms

lcden=0; //使能1602

}

//************************************************************************/

// 描述:指定x,y寫入字符函數

//************************************************************************/

void W_lcd(unsigned char x,unsigned char y,unsigned char Data)

{

if (y == 0){write_com(0x80 + x);} //第一行

else{write_com(0xc0 + x);} //第二行

write_date( Data); //寫入數據

}

//指定x,y寫入字符串函數

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)

{

if (y == 0){write_com(0x80 + x);} //第一行

else{write_com(0xC0 + x);} //第二行

while (*s) //

{write_date( *s); s++;} //寫入數據

}

//************************************************************************/

// 描述:初始化液晶,及畫面初始化

//************************************************************************/

void init_lcd(void) //初始化液晶,及畫面初始化

{

lcden=0; //使能1602

write_com(0x38); //8 位總線,雙行顯示,5X7 的點陣字符

LCD_Delay_us(100); //延時100us

write_com(0x0c); //開顯示,無光標,光標不閃爍

write_com(0x06); //光標右移動

write_com(0x01); //清屏

write_com(0x80); //DDRAM 地址歸0

}

//************************************************************************/

// 描述: 反轉法鍵盤掃描

//************************************************************************/

short keycheckdown() /* 反轉法鍵盤掃描 */

{


short temp1,temp2,temp,a=0xff;

P1=0xf0; /* 輸入行值(或列值) */

LCD_Delay_ms(20); /* 延時 */

temp1=P1; /* 讀列值(或行值) */

P1=0xff;

LCD_Delay_ms(20); /* 延時 */

P1=0x0f; /* 輸入列值(或行值) */

LCD_Delay_ms(20); /* 延時 */

temp2=P1; /* 讀行值(或列值) */

P1=0xff;

temp=(temp1&0xf0)|(temp2&0xf); /* 將兩次讀入數據組合 */

switch(temp) /* 通過讀入數據組合判斷按鍵位置 */

{

case 0x77 :a=0x0d;Music(27);while(!bus);break;// 按鍵/

case 0x7b :a=0x0e;Music(31);while(!bus); break;// 按鍵=

case 0x7d :a=0;Music(2);while(!bus);break;// 按鍵0

case 0x7e :a=0x0f; break;// 按鍵CE

case 0xb7 :a=0x0c;Music(26);while(!bus);break;// 按鍵*

case 0xbb :a=0x9;Music(11);while(!bus);break; // 按鍵9

case 0xbd :a=0x8;Music(10);while(!bus);break; // 按鍵8

case 0xbe :a=0x7;Music(9);while(!bus);break; // 按鍵7

case 0xd7 :a=0x0b;Music(25);while(!bus);break;// 按鍵-

case 0xdb :a=0x6;Music(8);while(!bus);break; // 按鍵6

case 0xdd :a=0x5;Music(7);while(!bus);break; // 按鍵5

case 0xde :a=0x4;Music(6);while(!bus);break; // 按鍵4

case 0xe7 :a=0x0a;Music(24);while(!bus);break;// 按鍵+

case 0xeb :a=3;Music(5);while(!bus);break; // 按鍵3

case 0xed :a=2;Music(4);while(!bus);break; // 按鍵2

case 0xee :a=1;Music(3);while(!bus);break; // 按鍵1

default :a=0xff;

}

return a; /* 返回按鍵值 */

}

image.png?

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4424

    瀏覽量

    167412
  • 51單片機
    +關注

    關注

    274

    文章

    5702

    瀏覽量

    123498
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136703
  • 計算器
    +關注

    關注

    16

    文章

    437

    瀏覽量

    37330
收藏 人收藏

    評論

    相關推薦

    51單片機 簡易計算器制作

    具體東西 都在附件里基于STC89C51做的想做簡但計算器的可以看看
    發表于 04-16 11:37

    基于51單片機簡易計算器制作 相關資料推薦

    基于51單片機簡易計算器制作51單片機可以實現的功能很多,今天筆者介紹一種使用4*4矩陣鍵盤和
    發表于 07-06 06:12

    基于51單片機簡易計算器,用LCD1602顯示 精選資料分享

    基于51單片機簡易計算器經歷了一番學習,成功做出了一個簡易計算器,并且在程序開頭加了一個小密
    發表于 07-14 07:28

    怎樣去設計一種基于51單片機簡易計算器

    怎樣去設計一種基于51單片機簡易計算器簡易計算器上的矩陣按鍵分別代表什么意思?
    發表于 09-07 07:01

    如何設計一個基于51單片機簡易計算器

    1.簡介本計算器是以MCS-51系列AT89C51單片機為核心構成的簡易計算器系統。該系統通過
    發表于 11-18 08:50

    51單片機簡易計算器(單片機小實驗,含C程序和Ptotues電路圖)

    51單片機簡易計算器(單片機小實驗,含C程序和Ptotues電路圖)一個單片機的小實驗,做一個
    發表于 04-22 11:04 ?812次下載

    基于MC51單片機簡易計算器設計_畢業設計(論文)

    畢業設計(論文)-基于MC51單片機簡易計算器設計 有需要的看一看,不收積分。
    發表于 11-20 16:49 ?136次下載

    簡易計算器設計

    基于51單片機簡易計算器,采用按鍵與數碼管實現
    發表于 12-31 14:33 ?20次下載

    基于51單片機簡易計算器,用LCD1602顯示

    基于51單片機簡易計算器經歷了一番學習,成功做出了一個簡易計算器,并且在程序開頭加了一個小密
    發表于 11-11 15:51 ?48次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>簡易</b><b class='flag-5'>計算器</b>,用LCD1602顯示

    基于51單片機簡易計算器

    1.簡介本計算器是以MCS-51系列AT89C51單片機為核心構成的簡易計算器系統。該系統通過
    發表于 11-11 19:51 ?54次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>簡易</b><b class='flag-5'>計算器</b>

    基于51單片機簡易計算器設計

    一.硬件方案本設計是以51單片機為核心的計算器模擬系統設計,輸入采用4×4矩陣鍵盤,可以進行加、減、乘、除4位帶符號數字運算,并在LCD1602上顯示操作過程。。主要由51
    發表于 11-13 10:21 ?28次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>簡易</b><b class='flag-5'>計算器</b>設計

    基于51單片機簡易計算器LCD顯示

    分享一個小作品,是根據普中單片機給的簡易計算器的代碼的思路自己改寫的,IO口的話也能對應的上開發板的引腳,他原來給的程序是只能實現兩位數差十倍的加減乘除,特別是除法的話A/B A<B在
    發表于 11-23 16:36 ?3次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>簡易</b><b class='flag-5'>計算器</b>LCD顯示

    基于51單片機簡易計算器(數碼管顯示)源代碼

    基于51單片機簡易計算器(數碼管顯示)例程源代碼
    發表于 05-12 16:39 ?58次下載

    基于51單片機簡易計算器設計

    基于51單片機簡易計算器設計(實物)
    發表于 01-02 10:02 ?41次下載

    基于51單片機簡易計算器設計

    電子發燒友網站提供《基于51單片機簡易計算器設計.rar》資料免費下載
    發表于 01-12 10:50 ?9次下載
    主站蜘蛛池模板: 人人做人人干| 一色狗影院| a视频在线看| 久草在线福利资站免费视频| 日本妈妈在线观看中文字幕| 中文国产在线观看| 娇妻让壮男弄的流白浆| 午夜射精日本三级| 成人1000部免费观看视频| 蜜桃成熟时33D在线嘟嘟网| 亚洲AV无码专区国产乱码网站 | 一扒二脱三插片在线观看| 国产精品久久大陆| 日本污ww视频网站| fryee性欧美18 19| 欧美一区二区VA毛片视频| 99九九免费热在线精品| 国产精品伦理一二三区伦理| 男人插女人逼逼| 99热免费精品店| 99精品免费在线观看| 国产精自产拍久久久久久蜜| 亚洲看片网站| 芒果影院网站在线观看| MELODY在线播放无删减| 无码观看AAAAAAAA片| 久爱在线中文在观看| a视频免费在线| 午夜福利32集云播| 久久综合网久久综合| 高清视频在线观看SEYEYE| 亚洲欧美综合乱码精品成人网| 美女露出逼| 国产日韩欧美高清免费视频| 在线视频 国产精品 中文字幕| 日本无修肉动漫在线观看| 精品国产自在现线拍国语| 丰满饥渴老太性hd| 最近中文字幕MV免费高清视频8| 日日啪无需播放器| 久久中文字幕人妻熟AV女蜜柚M|