国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的簡易計算器設計(Proteus仿真)

2024/11/08
3698
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

有需要資料的可了解一下.docx

共1個文件

該計算器系統(tǒng)51 系列的單片機進行的數(shù)字計算器系統(tǒng)設計,可以完成計算器的鍵盤輸入, 進行加、減、乘、除的簡單四則運算,并在 LCD屏幕上相應的顯示結(jié)果。選擇內(nèi)部存儲資源豐富的 51 單片機,輸入采用 4×4矩陣鍵盤,顯示采用LCD1602屏幕模塊進行顯示。軟件方面從分析計算器功能、流程圖設計,再到程序的編寫進行系統(tǒng)設計。

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

uchar code table[]= "               ";

long  int data_a,data_b; 	//第一個數(shù)和第二個數(shù)
long  int data_c;			//計算結(jié)果

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

sbit MUSIC_REST =P2^2;//語音芯片復位腳					
sbit MUSIC_DATA =P2^1;//語音芯片脈沖識別
sbit bus =P2^0;//語音芯片工作狀態(tài)識別信號  
uchar bbh,xm1,xm2,xm0;

void delay_us(unsigned int us)//延時函數(shù)
{
    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函數(shù)
//************************************************************************/
void LCD_Delay_us(unsigned int t)
{
	while(t--);           //t=0,退出
}
//************************************************************************/
// 描述: 延時t ms函數(shù)
//************************************************************************/
void LCD_Delay_ms(unsigned int t)
{
	unsigned int i,j;
	for(i=0;i<t;i++)       		//執(zhí)行t次循環(huán)
	for(j=0;j<113;j++)     		//執(zhí)行113次循環(huán)
	;
}
//************************************************************************/
// 描述: 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液晶寫數(shù)據(jù) 
//************************************************************************/
void write_date(uchar date) //1602液晶寫數(shù)據(jù)
{
	rs=1;                        //寫數(shù)據(jù)
	lcden=0;                     //使能1602 
	P0=date;                     //寫入數(shù)據(jù)date
	LCD_Delay_ms(1);             //延時1ms
	lcden=1;                     //使能1602
	LCD_Delay_ms(2);             //延時2ms
	lcden=0;	                 //使能1602
}
//************************************************************************/
// 描述:指定x,y寫入字符函數(shù)
//************************************************************************/
 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);                  //寫入數(shù)據(jù)
 }
 //指定x,y寫入字符串函數(shù)
 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++;}      		//寫入數(shù)據(jù)
 }
//************************************************************************/
// 描述:初始化液晶,及畫面初始化 
//************************************************************************/
void init_lcd(void)            //初始化液晶,及畫面初始化
{

  • 有需要資料的可了解一下.docx
    下載

相關推薦

石家庄市| 外汇| 巨野县| 奉节县| 聂荣县| 肇源县| 玛多县| 灵璧县| 永安市| 额敏县| 汾西县| 兴宁市| 壶关县| 三明市| 会昌县| 张家口市| 宜州市| 车险| 墨玉县| 兰溪市| 兴业县| 镇康县| 惠东县| 长岛县| 时尚| 宝应县| 大港区| 财经| 桐梓县| 霞浦县| 布尔津县| 乡宁县| 罗山县| 安塞县| 正宁县| 青岛市| 双牌县| 北流市| 留坝县| 彭山县| 江口县|