基于单片机的计算器设计毕业论文内容摘要:

void Init_Timer0(void)。 //定时器初始化 /* 主程序 */ void KeyScan1(void)。 static int fun = 3。 sbit KEY=P3^3。 16 sbit KEY1=P3^4。 sbit KEY2=P3^5。 sbit KEY3=P3^6。 sbit KEY4=P3^7。 void main (void) { int temp1。 float temperature。 char displaytemp[12]。 //定义显示温度区域临时存储数组 char displaytime[8]。 //计算器模块数据 unsigned char num,i,j=0,sign。 unsigned char temp[7],temp2[3]。 //最大输入 8 个 bit firstflag。 int a=0,b=0,c=0。 unsigned char s。 LCD_Init()。 //初始化液晶 DelayMs(20)。 //延时有助于稳定 LCD_Clear()。 //清屏 Init_Timer0()。 Init_DS18B20()。 Ds1302_Init()。 //UART_Init()。 17 Lcd_User_Chr()。 //写入自定义字符 while (1) //主循环 { KeyScan1()。 if(fun == 5) fun = 1。 if(fun ==1) { LCD_Write_String(1,0,wele to you)。 LCD_Write_String(5,1,*^o^*)。 // LCD_Clear()。 } //读入温度 if(fun==2) { LCD_Write_Char(14,1,0x01)。 //写入温度右上角点 LCD_Write_Char(15,1,39。 C39。 )。 //写入字符 C ReadTempFlag=1。 if(ReadTempFlag==1) { ReadTempFlag=0。 18 temp1=ReadTemperature()。 temperature=(float)temp1*。 sprintf(displaytemp,Temp is %,temperature)。 //打印温度值 LCD_Write_String(2,0,hello world)。 LCD_Write_String(0,1,displaytemp)。 //显示第二行 } } //读入时间 if(fun==3) { if(!KEY1) //如果检测到低电平,说明按键按下 { DelayMs(10)。 //延时去抖,一般 1020ms if(!KEY1) //再次确认按键是否按下,没有按下则退出 { while(!KEY1)。 //如果确认按下按键等待按键释放,没有释放则一直等待 { time_buf1[4]++。 //正常时间 小时加 1 if( time_buf1[4]==24) time_buf1[4]=0。 19 Ds1302_Write_Time()。 LCD_Clear()。 } } } if(!KEY2) //如果检测到 低电平,说明按键按下 { DelayMs(10)。 //延时去抖,一般 1020ms if(!KEY2) //再次确认按键是否按下,没有按下则退出 { while(!KEY2)。 //如果确认按下按键等待按键释放,没有释放则一直等待 { time_buf1[4]。 if(time_buf1[4]==255)time_buf1[4]=23。 Ds1302_Write_Time()。 //正常时间 小时减 1 LCD_Clear()。 } } } if(!KEY3) //如果检测到低电平,说明按键按下 { 20 DelayMs(10)。 //延时去抖,一般 1020ms if(!KEY3) //再次确认按键是否按下,没有按下则退出 { while(!KEY3)。 //如果确认按下按键等待按键释放,没有释放则一直等待 { time_buf1[5]++。 if(time_buf1[5]==60)time_b。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。