基于单片机的计算器设计毕业论文内容摘要:
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。基于单片机的计算器设计毕业论文
相关推荐
WIRE 总线传至 MCU, 由软件进行声速换算。 为了更好的实现换算过程同时兼顾设备的使用成本,我们采用宏晶公司的最新推出的 STC12C5410 单片机实现超声波测距的各项功能。 STC12C5410 采用了低成本、低功耗、强抗干扰设计,并且在最高支持 48MHz 的前提下能够实现 1个时钟机械周期的运行速度。 由于能够使用高频率的晶振,因此相对于普通单片机来说可以有效的减少由
发出的超声波 (假设传播介质为气体 ),经气体介 质的传播到接收器的时间即往返时间。 往返时间与气体介质中的声速相乘,就是声波传输的距离。 而所测距离是声波传输距离的一半,即公式 ( 11) , L= vt/2 (11) 在上式中, L 为待测距离, v 为超声波的声速, t 为往返时间。 若要求测距误差小于 ,已知声速 v=344m/s(20℃ 时 )。 显然,直接用秒表测时间是不现实的。
void density_dis_buff() { unsigned char i。 for(i=0。 i=3。 i++) { dis_buff[i]=density%10。 density/=10。 } } pragma interrupt_handler adc_isr:iv_ADC void adc_isr(void) { //conversion plete, read value
电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。 也正因为如此, PWM又被称为“开关驱动装置”。 如图 3所示: 图 3 PWM方波 设电机始终接通电源时,电机转速最大为 Vmax,设占空比为 D= t1 / T,则电机的平均速度为 Va = Vmax * D,其中 Va指的是电机的平均速度; Vmax 是指电机在全通电时的最大速度;D = t1 / T是指占空比 [7]
本部分主要介绍单片机最小系统的设计。 单片机系统的扩展,一般是以基本最小系统为基础的。 所谓最小系统,是指一个真正可用的 单片机最小配置系统,对于片内带有程序存储器的单片机,只要在芯片外接时钟电路和复位电路就是一个小系统了。 小系统是嵌入式系统开发的基石。 本电路的小系统主要由三部分组成,一块 AT89C52芯片、复位电路及时钟电路。 AT89C52单片机: AT89C52是美国
位二进制数据或代码, CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 2)数据存储器 (RAM): 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编址的,专用寄存器只能用 于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据