1、=BIT2 /P3.2/*写入内容待显示内容*/const uchar hang1 = 小小苏电子称系统;const uchar hang2 = 净重: g const uchar hang3 = 总价: 元const uchar hang4 = 单价 /Kgconst uchar hang5 = 萝卜const uchar hang6 = 豆角const uchar hang7 = 土豆const uchar hang8 = 白菜const uchar hang9 = 苹果const uchar hang10 = 香蕉const uchar hang11 = 橘子const uchar ha
2、ng12 = 桃子const uchar hang13 = 猪肉const uchar hang14 = 羊肉const uchar hang15 = 牛肉const uchar hang16 = 鸡肉const uchar hang17 = 山药const uchar hang18 = 生姜const uchar hang19 = 木耳函数名称:Init_Keypad功 能:初始化扫描键盘的IO端口参 数:无返回值 :void Init_Keypad(void) P1DIR = 0xf0; /P1.0P1.3设置为输入状态, P1.4P1.7设置为输出状态 P1OUT |= 0xf0; /
3、P1.4P1.7输出低电平 key_Flag = 0; key_Pressed = 0; key_val = 5;Check_Key扫描键盘的IO端口,获得键值void Check_Key(void) uchar row ,col,tmp1,tmp2; tmp1 = 0x80; for(row = 0;row =1; if (P1IN & 0x0f) 0x0f) /是否P1IN的P1.0P1.3中有一位为0 tmp2 = 0x01; / tmp2用于检测出那一位为0 for(col = 0;col col+) / 列检测 if(P1IN & tmp2) = 0x00) / 是否是该列,等于0为
4、是 key_val = key_Maprow * 4 + col; / 获取键值 return; / 退出循环 tmp2 0;tmp-);Key_Event检测按键,并获取键值void Key_Event(void) uchar tmp; P1OUT &= 0x00; / 设置P1高四位全为0,等待按键输入 tmp = P1IN; / 获取 p1IN if (key_Pressed = 0x00)&(tmp & 0x0f) /如果有键按下 key_Pressed = 1; / 如果有按键按下,设置key_Pressed标识 delay(); /消除抖动 Check_Key(); / 调用che
5、ck_Key(),获取键值 else if(key_Pressed = 1)& 0x0f) = 0x0f) /如果按键已经释放 / 清除key_Pressed标识 key_Flag = 1; / 设置key_Flag标识 else _NOP(); Delay_1ms延时约1ms的时间void Delay_1ms(void) uchar i; for(i = 150;i i-) _NOP();Delay_Nms延时N个1ms的时间n-延时长度void Delay_Nms(uint n) uint i; for(i = n;i-) Delay_1ms();Write_Cmd向液晶中写控制命令cmd
6、-控制命令void Write_Cmd(uchar cmd) uchar lcdtemp = 0; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(); lcdtemp = LCD2MCU_Data; LCD_EN_L; while(lcdtemp & 0x80); LCD_DataOut; LCD_RW_L; MCU2LCD_Data = cmd; LCD_EN_H; LCD_EN_L;Write_Data向液晶中写显示数据dat-显示数据void Write_Data(uchar dat) lcdtemp = LCD2MCU_Da
7、ta; LCD_RS_H; MCU2LCD_Data = dat;Ini_Lcd初始化液晶模块void Ini_Lcd(void) LCD_CMDOut; /液晶控制端口设置为输出 Delay_Nms(500); Write_Cmd(0x30); /基本指令集 Delay_1ms(); Write_Cmd(0x02); / 地址归位 Write_Cmd(0x0c); /整体显示打开,游标关闭 Write_Cmd(0x01); /清除显示 Write_Cmd(0x06); /游标右移 Write_Cmd(0x80); /设定显示的起始地址Disp_HZ控制液晶显示汉字addr-显示位置的首地址
8、pt-指向显示数据的指针 num-显示字符个数void Disp_HZ(uchar addr,const uchar * pt,uchar num) Write_Cmd(addr); for(i = 0;i 400) a=g/1000; b=g%1000/100; c=g%1000%100/10; d=g%1000%100%10; a=b=c=d=0;y=0; Write_Cmd(0x93);Write_Data(a+0x30);Write_Data(b+0x30); Write_Data(c+0x30);Write_Data(d+0x30); Delay_Nms(200); Write_Cmd(0x8b);Write_Data(y/100000+0x30); Write_Data(y%100000/10000+0x30); Write_Data(y%100000%10000/1000+0x30);Write_Data(0x2e); Write_Data(y%100000%10000%1000/100+0x30); Write_Data(y%1000
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1