基于单片机的实用电子称的设计课程设计毕业设计.doc
#include<reg52.h>#include<lm4229.h>#include<DS1302.h>#include<intrins.h>uchar ad_data;uchar ch2;uchar ds5;sbit ADCS =P35; sbit ADDI =P37; sbit ADDO =P37; sbit ADCLK =P36;sbit FUWEI=P34;sbit KAISHI=P33;float press;float price;float total_price;float danjia=2.35,3.56,5.67,4.58,8.96,2.65,5.89,2.19;char *mingcheng="商品代码"void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void bcdtocha(uchar cha)ch0=cha/16+'0'ch1=cha%16+'0'void flotocha(float t) uint tt; tt=(t*100+0.5); ds0=tt/1000+'0' ds1=tt%1000/100+'0' ds2=46; ds3=tt%1000%100/10+'0' ds4=tt%10+'0'/*读ADC0832函数* */采集并返回uchar adc0832() /AD转换,返回结果channel为初始值uchar channel=2; uchar i=0; uchar j; uint dat=0; uchar ndat=0; ADDI=1; _nop_(); _nop_(); ADCS=0;/拉低CS端 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿1 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 ADDI=channel&0x1; _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿2 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 ADDI=(channel>>1)&0x1; _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿3 ADDI=1;/控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i<8;i+) dat|=ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1; if(i=7)dat|=ADDO; for(i=0;i<8;i+) j=0; j=j|ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_(); _nop_(); j=j<<7; ndat=ndat|j; if(i<7)ndat>>=1; ADCS=1;/拉搞CS端 ADCLK=0;/拉低CLK端 ADDO=1;/拉高数据端,回到初始状态 dat<<=8; dat|=ndat; return(dat); /return ad bit fuwei()bit cc=1;if(FUWEI=0) FUWEI=1;delay(10);if(FUWEI=0)cc=0; return cc;void disp_week()gettime_1302();bcdtocha(year);write_lcd(96,12,ch);bcdtocha(mon);write_lcd(96,16,ch);bcdtocha(day);write_lcd(96,20,ch);bcdtocha(hour);write_lcd(112,0,ch);bcdtocha(min);write_lcd(112,3,ch);bcdtocha(sec);write_lcd(112,6,ch);switch(week)case 1:write_lcd(112,14,"日");break; case 2:write_lcd(112,14,"一");break; case 3:write_lcd(112,14,"二");break; case 4:write_lcd(112,14,"三");break; case 5:write_lcd(112,14,"四");break; case 6:write_lcd(112,14,"五");break; case 7:write_lcd(112,14,"六");break; void main() EA=1;EX0=1;IT0=1;lcd_init();init_1302(); clr_lcdall();write_lcd(0,0, "-");write_lcd(12,0," 实用电子称的设计 ");write_lcd(28,0,"-");write_lcd(40,0," 设计人: 张元科 ");write_lcd(56,0,"-");write_lcd(68,0," 指导教师:姚惠林 ");write_lcd(84,0,"-");write_lcd(96,0,"当前时间: 20 年 月 日 ");write_lcd(112,0," : : 星期 ");dodisp_week();while(fuwei();delay(100); clr_lcdall(); write_lcd(0,0, "商品名称:商品代码 ");write_lcd(16,0,"-");write_lcd(36,0,"单价: 元/千克" );write_lcd(52,0,"重量: 千克 ");write_lcd(68,0,"总价: 元 ");write_lcd(84,0,"-");write_lcd(96,0,"当前时间: 20 年 月 日 ");write_lcd(112,0," : : 星期 ");do disp_week();ad_data=adc0832() ;write_lcd(0,9,mingcheng);total_price=price*press;flotocha(price); write_lcd(36,5,ds);flotocha(press);write_lcd(52,5,ds);flotocha(total_price);write_lcd(68,5,ds);while(fuwei(); delay(100); void int0()interrupt 0P1=0xff;delay(10);switch(P1)case 0xfe:mingcheng="苹果 " price=danjia0; break;case 0xfd: mingcheng="香蕉 " price=danjia1; break; case 0xfb: mingcheng="黄瓜 " price=danjia2; break;case 0xf7: mingcheng="西瓜 " price=danjia3; break;case 0xef: mingcheng="李子 " price=danjia4; break;case 0xdf: mingcheng="栗子 " price=danjia5; break;case 0xbf: mingcheng="橘子 " price=danjia6; break;case 0x7f: mingcheng="雪梨 " price=danjia7; break; typedef struct typFNT_GB16 / 汉字字模数据结构 signed char Index2; / 汉字内码索引 char Msk32; / 点阵码数据 ;struct typFNT_GB16 code GB_16 = / 数据表 "实", 0x01,0x00,0x00,0x80,0x3F,0xFE,0x28,0x04 , 0x46,0x88,0x04,0x80,0x08,0x80,0x06,0x80 , 0x04,0x80,0x7F,0xFE,0x00,0x80,0x01,0x40 , 0x02,0x20,0x04,0x10,0x18,0x18,0x60,0x10 ,/*0*/ "用", 0x00,0x00,0x1F,0xFC,0x10,0x84,0x10,0x84 , 0x10,0x84,0x1F,0xFC,0x10,0x84,0x10,0x84 , 0x10,0x84,0x1F,0xFC,0x10,0x84,0x10,0x84 , 0x20,0x84,0x20,0x84,0x40,0x94,0x80,0x88 ,/*1*/ "电", 0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8 , 0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08 , 0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08 , 0x01,0x02,0x01,0x02,0x00,0xFE,0x00,0x00 ,/*2*/"子", 0x00,0x00,0x3F,0xF0,0x00,0x20,0x00,0x40 , 0x00,0x80,0x01,0x00,0x01,0x00,0x01,0x04 , 0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00 , 0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00 ,/*3*/ "称", 0x0C,0x80,0x70,0x80,0x10,0xFE,0x10,0x82 , 0xFD,0x24,0x31,0x20,0x32,0x20,0x58,0xB0 , 0x54,0xA8,0x91,0xA4,0x11,0x24,0x12,0x22 , 0x14,0x22,0x10,0x20,0x10,0xA0,0x10,0x40 ,/*4*/ "设", 0x40,0x00,0x21,0xF0,0x31,0x10,0x21,0x10 , 0x01,0x10,0x01,0x10,0xE2,0x0E,0x25,0xF8 , 0x21,0x08,0x21,0x08,0x20,0x90,0x20,0x90 , 0x28,0x60,0x30,0x90,0x23,0x0E,0x0C,0x04 ,/*5*/ "计", 0x40,0x20,0x20,0x20,0x30,0x20,0x20,0x20 , 0x00,0x20,0xF3,0xFE,0x10,0x20,0x10,0x20 , 0x10,0x20,0x10,0x20,0x10,0x20,0x12,0x20 , 0x14,0x20,0x18,0x20,0x10,0x20,0x00,0x20 ,/*6*/ "人", 0x01,0x00,0x01,0x80,0x01,0x00,0x01,0x00 , 0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x80 , 0x04,0x80,0x04,0x40,0x08,0x60,0x08,0x30 , 0x10,0x18,0x20,0x0E,0x40,0x04,0x00,0x00 ,/*7*/ "张", 0x00,0x80,0xF8,0x88,0x08,0x8C,0x08,0x90 , 0x78,0xA0,0x40,0xC0,0x40,0x80,0x43,0xFE , 0xF8,0xA0,0x48,0xA0,0x08,0x90,0x08,0x90 , 0x08,0x88,0x08,0xA6,0x29,0xC4,0x10,0x80 ,/*8*/ "元", 0x00,0x00,0x1F,0xF8,0x00,0x00,0x00,0x00 , 0x00,0x00,0x7F,0xFE,0x04,0x40,0x04,0x40 , 0x04,0x40,0x04,0x40,0x08,0x40,0x08,0x40 , 0x10,0x42,0x20,0x42,0x40,0x3E,0x00,0x00 ,/*9*/ "科", 0x06,0x08,0x78,0x88,0x08,0x48,0x08,0x48 , 0xFE,0x08,0x18,0x88,0x1C,0x48,0x2A,0x48 , 0x28,0x0E,0x48,0x78,0x8B,0x88,0x08,0x08 , 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08 ,/*10*/ "学", 0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90 , 0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40 , 0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80 , 0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00 ,/*11*/ "号", 0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10 , 0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x08,0x00 , 0x08,0x00,0x1F,0xF0,0x08,0x10,0x00,0x10 , 0x00,0x10,0x01,0x10,0x00,0xA0,0x00,0x40 ,/*12*/"指", 0x11,0x00,0x11,0x38,0x11,0xC0,0x11,0x04 , 0xFD,0x04,0x11,0xFC,0x14,0x00,0x19,0xFC , 0x31,0x04,0xD1,0x04,0x11,0xFC,0x11,0x04 , 0x11,0x04,0x11,0x04,0x51,0xFC,0x20,0x00 ,/*13*/"导", 0x00,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0 , 0x10,0x04,0x10,0x04,0x0F,0xFC,0x00,0x20 , 0x00,0x20,0xFF,0xFE,0x08,0x20,0x04,0x20 , 0x06,0x20,0x04,0x20,0x00,0xA0,0x00,0x40 ,/*14*/"教", 0x08,0x20,0x08,0x20,0x7F,0x20,0x0A,0x7E , 0xFF,0xC4,0x08,0x44,0x10,0xC4,0x3E,0x48 , 0xC4,0x28,0x08,0x28,0x0F,0x10,0xF8,0x10 , 0x08,0x28,0x08,0xC8,0x2B,0x06,0x10,0x04 ,/*15*/ "师", 0x08,0x00,0x0B,0xFE,0x48,0x20,0x48,0x20 , 0x4B,0xFE,0x4A,0x22,0x4A,0x22,0x4A,0x22 , 0x4A,0x22,0x52,0x22,0x52,0x2A,0x12,0x24 , 0x20,0x20,0x40,0x20,0x80,0x20,0x00,0x20 ,/*16*/"姚", 0x10,0xA0,0x10,0xA0,0x10,0xA0,0x12,0xA4 , 0x7D,0xA8,0x24,0xB0,0x24,0xA0,0x24,0xB0 , 0x49,0xA8,0x2E,0xAC,0x12,0xA8,0x18,0xA0 , 0x25,0x22,0x41,0x22,0x82,0x1E,0x04,0x00 ,/*17*/ "惠", 0x01,0x00,0x7F,0xFC,0x01,0x00,0x1F,0xF0 , 0x11,0x10,0x1F,0xF0,0x11,0x10,0x1F,0xF0 , 0x01,0x08,0x7F,0xFC,0x00,0x04,0x09,0x00 , 0x28,0x88,0x28,0x24,0x67,0xE4,0x00,0x00 ,/*18*/ "林", 0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20 , 0xFD,0xFE,0x10,0x20,0x10,0x60,0x38,0x70 , 0x34,0xB0,0x54,0xA8,0x51,0x28,0x92,0x26 , 0x14,0x24,0x10,0x20,0x10,0x20,0x10,0x20 ,/*19*/ "当", 0x00,0x80,0x10,0x90,0x08,0x98,0x0C,0x90 , 0x08,0xA0,0x00,0x80,0x3F,0xFC,0x00,0x04 , 0x00,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04 , 0x00,0x04,0x3F,0xFC,0x00,0x04,0x00,0x00 ,/*20*/ "前", 0x08,0x10,0x06,0x18,0x04,0x20,0xFF,0xFE , 0x00,0x00,0x3E,0x08,0x22,0x48,0x3E,0x48 , 0x22,0x48,0x22,0x48,0x3E,0x48,0x22,0x48 , 0x22,0x48,0x2A,0x08,0x24,0x28,0x00,0x10 ,/*21*/ "时", 0x00,0x10,0x00,0x10,0x7C,0x10,0x44,0x10 , 0x47,0xFE,0x44,0x10,0x7C,0x10,0x45,0x10 , 0x44,0x90,0x44,0x90,0x7C,0x10,0x00,0x10 , 0x00,0x10,0x00,0x10,0x00,0x50,0x00,0x20 ,/*22*/ "间", 0x20,0x00,0x13,0xFC,0x10,0x04,0x40,0x04 , 0x47,0xE4,0x44,0x24,0x44,0x24,0x47,0xE4 , 0x44,0x24,0x44,0x24,0x47,0xE4,0x40,0x04 , 0x40,0x04,0x40,0x04,0x40,0x14,0x40,0x08 ,/*23*/ "年", 0x08,0x00,0x0F,0xFC,0x10,0x80,0x10,0x80 , 0x20,0x80,0x4F,0xF8,0x88,0x80,0x08,0x80 , 0x08,0x80,0x08,0x80,0xFF,0xFE,0x00,0x80 , 0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80 ,/*24*/ "月", 0x07,0xF0,0x04,0x10,0x04,0x10,0x04,0x10 , 0x07,0xF0,0x04,0x10,0x04,0x10,0x04,0x10 , 0x07,0xF0,0x04,0x10,0x08,0x10,0x08,0x10 , 0x10,0x10,0x20,0x50,0x40,0x20,0x00,0x00 ,/*25*/ "日", 0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10 , 0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10 , 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 , 0x1F,0xF0,0x10,0x10,0x00,0x00,0x00,0x00 ,/*26*/ "星", 0x00,0x00,0x1F,0xF8,0x10,0x08,0x1F,0xF8 , 0x10,0x08,0x1F,0xF8,0x01,0x00,0x11,0x00 , 0x1F,0xFC,0x21,0x00,0x21,0x00,0x4F,0xF8 , 0x01,0x00,0x01,0x00,0x7F,0xFE,0x00,0x00 ,/*0*/"期", 0x22,0x00,0x22,0x7C,0x7F,0x44,0x22,0x44 , 0x3E,0x44,0x22,0x7C,0x3E,0x44,0x22,0x44 , 0x22,0x44,0xFF,0x7C,0x00,0x44,0x24,0x84 , 0x22,0x84,0x43,0x14,0x81,0x08,0x00,0x00 ,/*1*/ "一", 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 , 0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,/*2*/"二", 0x00,0x00,0x00,0x10,0x3F,0xF8,0x00,0x00 , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04 , 0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00 ,/*3*/ "三", 0x00,0x00,0x00,0x00,0x7F,0xFC,0x00,0x00 , 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8 , 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 , 0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00 ,/*4*/ "四", 0x00,0x00,0x7F,0xFC,0x44,0x84,0x44,0x84 , 0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84 , 0x48,0x84,0x48,0x7C,0x50,0x04,0x60,0x04 , 0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00 ,/*5*/ "五", 0x00,0x00,0x7F,0xF8,0x02,0x00,0x02,0x00 , 0x02,0x00,0x02,0x00,0x02,0x20,0x3F,0xF0 , 0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20 , 0x04,0x24,0xFF,0xFE,0x00,0x00,0x00,0x00 ,/*6*/"六", 0x04,0x00,0x03,0x00,0x01,0x80,0x01,0x00 , 0xFF,0xFE,0x00,0x00,0x00,0x00,0x04,0x80 , 0x06,0x40,0x04,0x20,0x08,0x10,0x08,0x18 , 0x10,0x0C,0x20,0x0C,0x40,0x08,0x00,0x00 ,/*7*/"商", 0x01,0x00,0x00,0x80,0x7F,0xFC,0x04,0x20 , 0x02,0x40,0x3F,0xF8,0x22,0x48,0x24,0x28 , 0x3F,0xE8,0x24,0x48,0x24,0x48,0x27,0xC8 , 0x24,0x48,0x24,0x08,0x20,0x28,0x20,0x10 ,/*0*/ "品", 0x00,0x00,0x0F,0xF0,0x08,0x10,0x08,0x10 , 0x08,0x10,0x0F,0xF0,0x08,0x10,0x00,0x00 , 0x7E,0xFC,0x42,0x84,0x42,0x84,0x42,0x84 , 0x42,0x84,0x7E,0xFC,0x42,0x84,0x00,0x00 ,/*1*/ "代", 0x11,0x00,0x19,0x20,0x11,0x10,0x11,0x08 , 0x21,0xFC,0x3F,0x00,0x50,0x80,0x90,0x80 , 0x10,0x80,0x10,0x40,0x10,0x40,0x10,0x24 , 0x10,0x14,0x10,0x0C,0x10,0x06,0x00,0x00 ,/*2*/"码", 0x00,0x00,0xFD,0xF8,0x10,0x08,0x10,0x88 , 0x10,0x88,0x20,0x88,0x3C,0x88,0x64,0xFC , 0xA4,0x04,0x24,0x04,0x25,0xF4,0x24,0x04 , 0x3C,0x04,0x24,0x04,0x20,0x28,0x00,0x10 ,/*3*/ "单", 0x08,0x20,0x06,0x30,0x04,0x40,0x3F,0xF8 , 0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08 , 0x3F,0xF8,0x21,0x08,0x01,0x00,0xFF,0xFE , 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00 ,/*4*/ "价", 0x08,0x40,0x0C,0x40,0x18,0xA0,0x11,0x10 , 0x32,0x18,0x64,0x0E,0xA9,0x14,0x21,0x10 , 0x21,0x10,0x21,0x10,0x21,0x10,0x22,0x10 , 0x22,0x10,0x24,0x10,0x24,0x10,0x28,0x10 ,/*5*/ "总", 0x08,0x20,0x04,0x20,0x04,0x40,0x1F,0xF0 , 0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0 , 0x00,0x00,0x01,0x00,0x08,0x88,0x28,0x84 , 0x28,0x16,0x68,0x12,0x07,0xF0,0x00,0x00 ,/*6*/ "重", 0x01,0xF0,0x3F,0x00,0x01,0x00,0xFF,0xFE , 0x01,0x00,0x1F,0xF0,0x11,0x10,0x1F,0xF0 , 0x11,0x10,0x1F,0xF0,0x01,0x00,0x3F,0xF8 , 0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00 ,/*7*/ "量", 0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10 , 0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x11,0x10 , 0x1F,0xF0,0x11,0x10,0x1F,0xF0,0x01,0x00 , 0x1F,0xF8,0x01,0x00,0xFF,0xFE,0x00,0x00 ,/*8*/"苹", 0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40 , 0x04,0x40,0x3F,0xFC,0x11,0x10,0x09,0x18 , 0x0D,0x20,0x09,0x40,0xFF,0xFE,0x01,0x00 , 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00 ,/*9*/ "果", 0x00,0x00,0x1F,0xF0,0x11,0x10,0x1F,0xF0 , 0x11,0x10,0x1F,0xF0,0x01,0x00,0x01,0x00 , 0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x30 , 0x31,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00 ,/*10*/ "香", 0x01,0xF0,0x3F,0x00,0x01,0x00,0xFF,0xFE , 0x03,0x80,0x05,0x40,0x09,0x30,0x31,0x0E , 0xCF,0xF4,0x08,0x10,0x08,0x10,0x0F,0xF0 , 0x08,0x10,0x08,0x10,0x0F,0xF0,0x00,0x00 ,/*11*/ "蕉", 0x04,0x20,0x04,0x20,0xFF,0xFE,0x05,0x20 , 0x10,0x80,0x1F,0xFC,0x30,0x80,0x5F,0xF8 , 0x90,0x80,0x1F,0xF8,0x10,0x80,0x1F,0xFC , 0x00,0x00,0x28,0x88,0x26,0x66,0x44,0x44 ,/*12*/ "黄", 0x04,0x40,0x04,0x40,0x7F,0xFC,0x04,0x40 , 0x04,0x40,0xFF,0xFE,0x01,0x00,0x1F,0xF0 , 0x11,0x10,0x1F,0xF0,0x11,0x10,0x11,0x10 , 0x1F,0xF0,0x08,0x20,0x10,0x18,0x60,0x08 ,/*13*/ "西", 0x00,0x00,0xFF,0xFE,0x04,0x40,0x04,0x40 , 0x7F,0xFC,0x44,0x44,0x44,0x44,0x44,0x44 , 0x44,0x44,0x48,0x3C,0x50,0x04,0x60,0x04 , 0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00 ,/*15*/"瓜", 0x00,0x10,0x01,0xF8,0x1E,0x40,0x12,0x40 , 0x12,0x40,0x12,0x20,0x12,0x20,0x12,0x20 , 0x12,0x20,0x12,0x10,0x12,0x90,0x22,0x50 , 0x22,0xA8,0x43,0x28,0x42,0x06,0x80,0x04 ,/*16*/"李", 0x01,0x00,0x01,0x00,0x7F,0xFC,0x03,0x80 , 0x05,0x40,0x09,0x30,0x31,0x0E,0xDF,0xE4 , 0x00,0x80,0x01,0x00,0x7F,0xFE,0x01,0x00 , 0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00 ,/*17*/ "子", 0x00,0x00,0x3F,0xF0,0x00,0x20,0x0