ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:714KB ,
资源ID:4518801      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4518801.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(89c52单片机铅酸蓄电池充电器设计说明.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

89c52单片机铅酸蓄电池充电器设计说明.doc

1、 . . . 题 目:铅酸蓄电池充电器设计 摘 要 本系统采用单片机AT89S52为控制核心,实现电子秤的基本控制功能。系统的硬件部分包括最小系统板,数据采集、人机交互界面三大部分。最小系统部分主要是扩展了外部数据存储器,数据采集部分由压力传感器、信号的前级处理和A/D转换部分组成。人机界面部分为键盘输入 ,12864点阵式液晶显示,可以直观的显示中文,使用方便。 软件部分应用单片机C语言实现了本设计的全部控制功能,包括基本的称重功能,和发挥部分的显示购物清单的功能,可以设置日期和重新设定10种商品的单价,具有超重报警功能,由

2、于系统资源丰富,还可以方便的扩展其应用 关键词:单片机AT89S52 压力传感器 目录 1、引言……………………………………………………………………………3 2、数据采集部分………………………………………………………………3 2.1传感器……………………………………………………………………………3 2.2前级放大器部分…………………………………………………………………3 3、人机交互界面………………………………………………………………6 4、具体实现方案……………………………………………………………………6 4.1硬件组成……………………………………………………………………

3、6 4.2软件组成……………………………………………………………………10 5、测试与结果分析……………………………………………………………13 结论…………………………………………………………………………………14 致…………………………………………………………………………………15 参考文献…………………………………………………………………………16 附录…………………………………………………………………………………17 1、引言 本系统基于51系列单片机来实现,因为系统需要大量的控制液晶显示和键盘。不宜采用大规模可编程逻辑器件:CPLD、FPGA来实现。(因为大规

4、模可编程逻辑器件一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。本系统状态较多,难度较大。)另外系统没有其它高标准的要求,我们最终选择了AT89S52通用的比较普通单片机来实现系统设计。部带有8KB的程序存储器,在外面扩展了32K数据存储器,以满足系统要求。 2、数据采集部分 2.1传感器 设计要求称重围9.999Kg,重量误差不大于Kg,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重—。我们选择的是L-PSIII型传感器,量程20Kg,精度为,满量程时误差0.002Kg。可以满足本系统的精度要求。其原理如下图所示:

5、称重传感器主要由弹性体、电阻应变片电缆线等组成,部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,输出信号电压可由下式给出: 2.2前级放大器部分 压力传感器输出的电压信号为毫伏级,所以对运算放大器要求很高。我们考虑可以采用以下几种方案可以采用: 方案一、利用普通低温漂运算放大器构成多级放大器。 普通低温漂运算放大器构成多级放大器会引入大量噪声。由于A/D转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此中方案不宜采用。 方案二、由高精度低漂移运算放大器构成差动放大器。 差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如OP07)做成一个差动放

6、大器。 电阻R1、R2电容C1、C2、C3、C4用于滤除前级的噪声,C1、C2为普通小电容,可以滤除高频干扰,C3、C4为大的电解电容,主要用于滤除低频噪声。 优点:输入级加入射随放大器,增大了输入阻抗,中间级为差动放大电路,滑动变阻器R6可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。输出级为反向放大器,所以输出电阻不是很大,比较符合应用要求。 缺点:此电路要求R3、R4相等,误差将会影响输出精度,难度较大。实际测量,每一级运放都会引入较大噪声。对精度影响较大。 方案三:采用专用仪表放大器,如:INA126,INA121等。 此类芯片部采用差动输入,共模抑

7、制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。 以INA126为例,接口如下图所示: 放大器增益,通过改变的大小来改变放大器的增益。 基于以上分析,我们决定采用制作方便而且精度很好的专用仪表放大器INA126。 (3)、A/D转换器 由上面对传感器量程和精度的分析可知:A/D转换器误差应在以下 12位A/D精度:10Kg/4096=2.44g 14位A/D精度:10Kg/16384=0.61g 考虑到其他部分所带来的干扰,12位A/D无法满足系统精度要求。所以我们需要选择14位或者精度更高的A/D。 方案一、逐次逼近型A/D转换器,如:ADS7805、

8、ADS7804等。 逐次逼近型A/D转换,一般具有采样/保持功能。采样频率高,功耗比较低,是理想的高速、高精度、省电型A/D转换器件。 高精度逐次逼近型A/D转换器一般都带有部基准源和部时钟,基于89C52构成的系统设计时仅需要外接几个电阻、电容。 但考虑到所转换的信号为一慢变信号,逐次逼近型A/D转换器的快速的优点不能很好的发挥,且根据系统的要求,14位AD足以满足精度要求,太高的精度就反而浪费了系统资源。所以此方案并不是理想的选择。 方案三、双积分型A/D转换器:如:ICL7135、ICL7109等。 双积分型A/D转换器精度高,但速度较慢(如:ICL7135),具有精确的差分输

9、入,输入阻抗高(大于),可自动调零,超量程信号,全部输出于TTL电平兼容。 双积分型A/D转换器具有很强的抗干扰能力。对正负对称的工频干扰信号积分为零,所以对50HZ的工频干扰抑制能力较强,对高于工频干扰(例如噪声电压)已有良好的滤波作用。只要干扰电压的平均值为零,对输出就不产生影响。尤其对本系统,缓慢变化的压力信号,很容易受到工频信号的影响。故而采用双积分型A/D转换器可大大降低对滤波电路的要求。 作为电子秤,系统对AD的转换速度要求并不高,精度上14位的AD足以满足要求。另外双积分型A/D转换器较强的抗干扰能力,和精确的差分输入,低廉的价格。综合的分析其优点和缺点,我们最终选择了ICL

10、7135。 3、人机交互界面 (1)、键盘输入 键盘输入是人机交互界面中最重要的组成部分,它是系统接受用户指令的直接途径。我们采用了专用的键盘显示芯片ZLG7289。 Intel8279是一种比较成熟的可编程键盘/显示芯片,可以满足小系统的要求。 ZLG7289是周立功单片机公司设计的串行输入输出可编程键盘/显示芯片有强大的键盘显示功能,支持64键控制。可以比较方便的扩展系统。另外ZLG7289部有译码电路,大大简化了程序。 我们选择功能更好的ZLG7289作为键盘扫描显示芯片 (2)、显示输出 虽然ZLG7289具有控制数码管显示的功能,但考虑到本题目要求中文显示,数码管无法

11、满足,只能考虑用带有中文字库的液晶显示器。由于可以分页显示,无需太大屏幕,我们选择了点阵式128×64型LCD—OCM4X8C。 4、具体实现方案 4.1硬件组成 (一)、硬件结构框图如下: (二)、各部分硬件电路实现 (1)、基于AT89S52的主控电路图 主控电路以89C52为核心扩展32K RAM;单片机使用6M晶振,P0口外接上拉电阻,增大了带负载能力;A12~A15接74LS138译码器,输出作外部片选信号。 扩展了几个接口用于其它部分于单片机的通信 (2)前端信号处理 INA126构成的放大器与滤波电路: 通过调节的阻值来改变放大倍数。微弱信号Vi1和Vi

12、2被分别放大后从INA126的第6脚输出。A/D转换器ICL7135的输入电压变化围是-2V~+2V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在200~300左右,可将接成的滑动变阻器。 由于ICL7135对高频干扰不敏感,所以滤波电路主要针对工频与其低次谐波引入的干扰。因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。 (3)A/D转换器 基于ICL7135的A/D转换器实现电路: 基准源选用芯片MC1403 2.5V分压得到: 由于ICL7135部没有振荡器,所以需要外接。但A/D转换器精度与时钟频率的漂移无关。正向积分时间T1和反向积分时间T

13、2按一样比例增加并不影响测量的结果。ICL7135的时钟频率典型值为200kHz最高允许为1200kHz,时钟频率越高,转换速度越快。每输出一位BCD码的时间为200个时钟周期,选通脉冲位于数据脉冲的中部,如果时钟频率太高,则数据的接受程序还没有接受完毕,数据就已经消失了。考虑到此系统频率要求不是太高,且单片机的工作频率也不是很高,因此我们取时钟频率的典型值:200kHz。由于频率比较低,对时钟漂移要求不高,我们采用阻容方式实现了基本的振荡电路。如下: 振荡频率约为160kHz。 此外ICL7135外部还需要外接积分电阻、积分电容,但A/D转换器精度与外接的积分电阻、积分电容的精度无关

14、故可以降低对元件质量的要求。不过积分电容和积分电容的介质损耗会影响到A/D转换器的精度,所以应采用介质损耗较小的聚丙乙烯电容 ICL7135还需要外接基准电源,这是因为芯片部的基准源一般容易受到温度的影响,而基准电源的变化会直接影响转换精度。所以当精度要求较高时,应采用外接基准源。一般接其典型值1V。 (4)、人机交互界面 (a)、键盘接口图: 键盘控制芯片ZLG7289控制键盘的扫描,当监测到有键按下后ZLG7289的9脚便产生一个低电平通知单片机,单片机可以采用查询或者中断方式将数据通过P1.5以串行方式读入。因为查询方式会浪费大量的时间,所以本系统采用的是中断方式。 (b

15、)、LCD显示接口电路 LCD复位信号通过反相器接到单片机的RESET上,上电或手动复位时将随单片机同时复位。由于复位后并行口输出高电平,LCD处于选中状态,此时LCD将输出部状态字,将会影响数据总线上的数据传输。所以外接一个反相器 4.2软件组成 (一)、流程图 主程序流程如图所示: 中断服务程序流程图如下 (2)、软件说明 由于涉与到大量数据的运算,程序不宜采用汇编语言,C语言大大缩短了开发时间,且程序可读性非常好。 程序中对AD采入的数据进行了数字滤波,进一步减小AD读入数据的误差。 7289键盘控制采用中断方式,加快了程序的执行效率。 详细的操作过程见使

16、用说明。 5、测试与结果分析 一、 测试结果与误差分析: 砝码重量(g) 实际显示重量1(g) 实际显示重量2(g) 实际显示重量3(g) 100 99 99 98 150 148 147 149 200 195 197 198 250 244 246 244 300 295 296 294 350 342 344 343 400 393 395 396 450 443 443 444 500 493 494 495 550 552 551 553 600 590 593 594 650 6

17、41 641 642 700 689 692 693 750 740 740 741 800 790 791 790 850 839 840 842 900 887 888 888 950 938 938 938 1000 986 987 987 注:由于传感器和其他器件本身并非理想线性,程序中对实测数据进行了线性补偿。 误差分析:经校准,非线性补偿后,误差已基本达到要求。 所用测量仪器:总重1Kg的砝码,万用表,示波器 结论 本系统采用32键键盘来实现,分为数字键:0-9,商品1-商品10,6个控制键。 本系统开机显示公

18、司名称,后提示输入收银员编号和当前日期。正确输入后,进入称重显示。 数字键和小数点键:用于输入单价; 累加键:相当于确认,可以将当然信息保存至购物清单;并且将金额累加,得到所购买商品的总金额。 去皮键:用于去除皮重; 清单价:用于输入的单价错误的时候,重新输入; 购物清单键:当需要显示当前顾客的总的购物清单时,可以连续按下购物清单键,分页显示所购买的商品信息,并且若以达到最后一页,则显示总计金额,收银员编号,和公司名称,当然日期。 运行中如果顾客购买已存入的10种商品,只需按下相应的商品键,既可以将商品的名称和单价以中文的形式显示,同样累加键保存此商品的信息,包括其重量,金额和当前

19、累计金额。 另外,已存入的10种商品的单价均可重新设置,直接输入其单价即可,方便实用。如果所称重物超过了系统最大量程10Kg,则蜂明器发出报警声音。 致 首先感指导老师在设计期间的精心指导,我们的毕业设计才得以圆满完成,在此期间老师给我们提供了很多宝贵的建议,同时也指正了我们很多错误和不足之处,为了让我们能顺利的完成毕业设计,还给我们提供了很多参考资料。另外还要给位同学的协助。 参考文献 [1] 余永权.Flash 单片机原理与应用. :电子工业,1997 [2] 王福瑞等编著。单片微机测控系统设计大全。航空航天大学,1999 [3] 华。MCS

20、51系列单片机使用接口技术。航空航天大学,1990 [4] 何立民。单片机应用系统设计。航空航天大学,1993 [5] 方佩敏。新编传感器原理应用电路详解。:电子工业,1994 [6] 黄继昌等。传感器工作原理与应用实例。:人民邮电,1998。 [7] 纪宗南。单片机外围器件实用手册 输入通道器件分册。航空航天大学,1998 附录 电子秤的信号采集、处理、显示的程序. #include #include //ad控制线 #define ad_244 XBYTE[0xbfff]; sbit ad_stb=P3^3; sbit

21、ad_start=P1^1; //lcd控制线 sbit lcd_di=P1^7; sbit lcd_rw=P1^2; sbit lcd_e=P1^0; //7289控制线 sbit cs7289=P1^3; sbit clk7289=P1^4; sbit dio7289=P1^5; //sbit key7289=P1^6; //7289查询方式 sbit key7289=P3^2; //7289中断方式 sbit baoj=P3^5; //7289子程序 void ini_7289(void); void send

22、7289(short); short receive(void); void keyin(void); //lcd子程序 void ini_lcd(void); void lcdd_send(short); void lcdi_send(short); void chk_busy(void); //ad子程序 void ad(void); void baojing(void); void d_change(long); //初始化,编号,日期 void ini(); void error1(void); void nop1() {} void cha

23、nge(s) int dealy; //全局变量 short sh=0; //商品号 short dot=0; //小数点标志 bit list=0; short qb=0; char xdata shuju[7]=""; short xdata bcd[5]; char xdata s1[16]="单价: 元"; char xdata s2[16]="重量: Kg"; char xdata s3[16]="金额: 元";

24、char xdata s4[16]="累计: 元"; char code message0[]="机电学院"; char code message1[]="输入收银员代号:"; char code message2[]="输入日期:"; char code message3[16]=" --机电学院-- "; char code message5[16]="垃圾公司欢迎您!!"; char xdata bianhao[16]="收银员: "; char xdata riqi[16]=" - - "; long int xd

25、ata zongjia=0,jine=0,jine1=0; int xdata shizhong=0,pizhong=0,zhongliang=0; long int xdata qingdan[20][4]; char code shangpin[11][4]={{"单价"},{"苹果"},{"梨 "},{"花生"},{"大米"}, {"桃子"},{"塑料"},{"瓜子"},{"桔子"},{"香蕉"},{"玉米"}}; long int xdata danjia[11]= {0,2000,3635,5502,6660,3320,5502,660,3210,6600,5600

26、}; char xdata jiage[6]={0x0,0x0,0x0,0xfe,0x0,0x0}; // 0.00 short xdata xiuzheng[]={0,2,5,6,7,8,9,12,13}; char s[16]; {s[6]=shuju[0]; s[7]=shuju[1]; s[8]=shuju[2]; s[9]=shuju[3]; s[10]=shuju[4]; s[11]=shuju[5]; s[12]=shuju[6]; } //*************************************************

27、 void main() {short i,j; long int x,z; int y; int xdata duilie[3]={0}; P1=0xff; ini_lcd(); //初始化LCD lcdi_send(0x8a); while(message0[i]) lcdd_send(message0[i++]); ini_7289(); //初始化7289 pizhong=ad1(); lcdi_send(0x1); //总清 屏 ini();

28、 //初始页面,收银员编号,日期 lcdi_send(0x1); //总清 屏 EA=1;EX0=1; //中断 //EX1=1; //ad_start=1; while(1) {if(list){lcdi_send(0x80); //显示单位名称 for(i=0;i<16;i++) lcdd_send(message3[i]); x=qingdan[0][0]; //商品名

29、 单价 for(i=0;i<4;i++) s1[i]=shangpin[x][i]; x=qingdan[0][1]; d_change(x); change(s1); lcdi_send(0x90); for(i=0;i<16;i++) lcdd_send(s1[i]); x=qingdan[0][2]; //显示重量 d_change(x); change(s2); s

30、2[10]=s2[9];s2[9]='.'; if(s2[8]==32) s2[8]=0x30; lcdi_send(0x88); for(i=0;i<16;i++) lcdd_send(s2[i]); x=qingdan[0][3]; d_change(x); change(s3); lcdi_send(0x98); for(i=0;i<16;i++) lcdd_send(s3[i]); //以上为第一页 EA=0

31、EX0=0; //关键盘中断 for(j=1;j

32、8]=0x30; lcdi_send(0x90); for(i=0;i<16;i++) lcdd_send(s2[i]); x=qingdan[j][1]; d_change(x); change(s1); x=qingdan[j][0]; for(i=0;i<4;i++) s1[i]=shangpin[x][i]; lcdi_send(0x80); for(i=0

33、i<16;i++) lcdd_send(s1[i]); x=qingdan[j][3]; d_change(x); change(s3); lcdi_send(0x88); for(i=0;i<16;i++) lcdd_send(s3[i]); lcdi_send(0x98); for(i=0;i<16;i++) lcdd_send(0x20); lcdi_send(0x98)

34、 while(key7289==0); } while(key7289); d_change(zongjia); change(s4); lcdi_send(0x80); for(i=0;i<16;i++) lcdd_send(s4[i]); lcdi_send(0x90); for(i=0;i<16;i++) lcdd_send(bianhao[i]); l

35、cdi_send(0x88); for(i=0;i<16;i++) lcdd_send(message5[i]); lcdi_send(0x98); for(i=0;i<16;i++) lcdd_send(riqi[i]); list=0; while(key7289==0); while(key7289==1); while(key7289==0); EA=1;EX0=1;

36、 } else{ y=0; /* duilie[2]=duilie[1]; //数字滤波 duilie[1]=duilie[0]; y=ad1(); duilie[0]=y>>1; x=duilie[0]; x=x<<1; x=x+duilie[1]+duilie[2]; */ zhongliang=ad1(); shizhong=zhongliang-pizhong; //数据转换

37、 x=danjia[sh]; jine1=shizhong*x; jine=jine1/1000; d_change(shizhong); change(s2); //显示数据 s2[10]=s2[9]; s2[9]='.'; if(s2[8]==32) s2[8]=0x30; lcdi_send(0x90); for(i=0;i<16;i++) lcdd_send(s2[i]); d_change(danjia[sh]); ch

38、ange(s1); for(i=0;i<4;i++) s1[i]=shangpin[sh][i]; lcdi_send(0x80); for(i=0;i<16;i++) lcdd_send(s1[i]); d_change(jine); change(s3); lcdi_send(0x88); for(i=0;i<16;i++) lcdd_send(s3[i]); d_change(zongjia); change(s4); lcdi_send(0x98);

39、 for(i=0;i<16;i++) lcdd_send(s4[i]); lcdi_send(0x98); //while(1); } } } void keyin(void) interrupt 0 using 0 //中断0服务程序 {char X,i; long int y; send7289(0x15); //接收数据 X=receive(); cs7289=1; X=X&0x1f; switch(X) {case 0xf : {zongjia=zongjia+jine;

40、 qingdan[qb][0]=sh; qingdan[qb][1]=danjia[sh]; qingdan[qb][2]=shizhong; qingdan[qb][3]=jine; qb++; sh=0;dot=0; danjia[0]=0; for(i=0;i<6;i++) jiage[i]=0;

41、 } break; //累加 case 0xe : pizhong=zhongliang; break; //去皮 case 0xd : {danjia[sh]=0;dot=0;} break; //清单价 case 0xc : {zongjia=0;jine=0;dot=0;list=0;qb=0;pizhong=0; if(sh==0) danjia[sh]=0;} break;

42、 //总清 case 0xa : dot=1;break; //点 case 0xb : list=1;break; //清单 case 0x19 : sh=10;break; case 0x18 : sh=9;break; case 0x17 : sh=8;break; case 0x16 : sh=7;break; case 0x15 : sh=6;break;

43、 case 0x14 : sh=5;break; case 0x13 : sh=4;break; case 0x12 : sh=3;break; case 0x11 : sh=2;break; case 0x10 : sh=1;break; case 0x1f : case 0x1e : case 0x1d : case 0x1c : case 0x1a : break; case 0x1b

44、 : dot=1;break; default :{if(dot==0) {jiage[0]=jiage[1];jiage[1]=jiage[2];jiage[2]=X;} if(dot==1) {jiage[4]=X;dot++; } else if(dot==2) {jiage[5]=X; dot++;} else if(dot>2) break; // lcdi_send(0x84);

45、 y=jiage[0]; y=y*10+jiage[1]; y=y*10+jiage[2]; y=y*10+jiage[4]; danjia[sh]=y*10+jiage[5]; } } while(key7289==0); //等待键盘松开 } /* void ad(void) interrupt 2 usi

46、ng 1 {short x,y; x=ad_244; y=x; if(x&0x80) baojing(); else x=x>>4; y=y&0xf; bcd[x]=y; } */ //初始页面 void ini() // 输入收银员编号,日期 {short i,j; char X; lcdi_send(0x80); //提示输入收银员编号 i=0; while(message1[i]) lcdd_send(message1[i++]); for(i=8;i<1

47、2;i++) { while(key7289); send7289(0x15); //接收数据 X=receive(); cs7289=1; bianhao[i]=X+0x30; lcdi_send(0x93); for(j=8;j<16;j++) lcdd_send(bianhao[j]); while(key7289==0); } lcdi_send(0x88); //提示输入日期 i=0; while(message2[i]

48、) lcdd_send(message2[i++]); for(i=0;i<10;i++) //输入日期 {if(i==4||i==7) i++; while(key7289==1); send7289(0x15); //接收数据 X=receive(); cs7289=1; riqi[i]=X+0x30; j=0; lcdi_send(0x9a); for(j=0;j<10;j++) lcdd_send(riqi[j]); while(key7289==0); } while(key7

49、289); nop1(); while(key7289==0); nop1(); lcdi_send(0x1); } //LCD子程序 void ini_lcd() //LCD初始化子程序 { lcdi_send(0x30); lcdi_send(0x1); //总清 lcdi_send(0xc); lcdi_send(0x2); //光标右移,AC+1 } void lcdd_send(short X) //LCD发送数据子程序 {chk_busy(); nop1(); lcd_

50、di=1;lcd_rw=0;lcd_e=0; P0=X; for(dealy=0;dealy<5;dealy++);// lcd_e=1; X=X; P0=0xff; } void lcdi_send(short X) //LCD发送指令子程序 {chk_busy(); nop1(); lcd_di=0;lcd_rw=0;lcd_e=0; P0=X; for(dealy=0;dealy<5;dealy++);// lcd_e=1; X=X; P0=0xff; } void chk_busy() {short i=0xff;

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服