基于51单片机的语音计算器设计 - 图文 下载本文

北京联合大学 毕业设计

lcden=1; }

void init() //初始化 {

lcden=1; //使能信号为高电平 write_com(0x38); //8位,2行

write_com(0x0c); //显示开,光标关,不闪烁 write_com(0x06); //光标左移,显示屏不移动 write_com(0x80); //检测忙信号 write_com(0x01); //清屏 i=0; j=0;

a=0; //第一个参与运算的数 b=0; //第二个参与运算的数 c=0;

flag=0; //flag表示是否有符号键按下, fuhao=0; // fuhao表征按下的是哪个符号 }

void INT_0(void) interrupt 0 using 0 {

temp=P2&0x0f; start=1; }

calculate() {

switch(temp) {

case 3: // 除号 write_date(0x30+table1[temp]); flag=1; fuhao=4;

43

北京联合大学 毕业设计

break;

case 7: // 乘号 write_date(0x30+table1[temp]); flag=1; fuhao=3; break;

case 11: // 减号 write_date(0x30+table1[temp]); flag=1; fuhao=2; break;

case 12: // ON write_com(0x01); a=0; b=0; flag=0; fuhao=0; j=0; break;

case 14: // 等号 { j=1; if(fuhao==1) {

write_com(0x80+0x4f); //按下等于键,光标前进至第二行最后一个显示处 write_com(0x04); //设置从后住前写数据,每写完一个数据,光标后

退一格

c=a+b;

if(c>2147483647 || c<-2147483647)

{

44