产假包括:98天+30天(奖励假)+15天(难产)+15天(多胞胎每多生一个婴儿),女职工怀孕未满4个月流产的,享受15天产假;怀孕满4个月流产的,享受42天产假,领生育津贴。中国招生考试网www.chinazhaokao.com
小编精心为大家整理了2017产假计算器,希望对你有帮助。
2017产假计算器
产假计算器:
http://www.chinazhaokao.com/tool/new_cjjs.htm
(点击下面图片直接进入界面)
注:1、晚育指已婚妇女生育第一子女时年满24周岁;
2、产假起始日期即离开岗位日期;
3、以上假期计算中涵盖国家法定假日、双休日、寒暑假,晚育者应在此基础上顺延国家法定假期。
产假假期是如何规定与计算
2017年我国现行产假规定主要根据《女职工劳动保护特别规定》和计划生育法以及各省市计划生育条例执行,当中规定女职工生育享受98天产假,其中产前可以休假15天;难产的增加15天产假;生育多胞胎的,每多生育1个婴儿,增加15天产假,同时各省市可根据自身情况,制定延长生育奖励假,只要符合计划内生育均可享有各省市规定的延长生育假的相关奖励。而本文所指的产假假期天数计算主要根据正常产假、奖励产假、难产、多胞胎生育情形等计算,具体计算公式如下:
产假综合天数 = 正常产假天数 + 奖励产假 + 生育情形产假
【说明】:
1、正常产假天数为98天(顺产,其中15天为产前休假)。
2、奖励产假根据各省市计划生育正常执行,例如广东省奖励产假有80天。
3、生育情形产假是指难产假30天,以及多生育一个孩子增加15天产假。
4、产假包括双休日与国家法定假节日。
5、流产假主要根据流产时间确定的,一般女职工怀孕未满4个月流产的,享受15天产假;怀孕满4个月流产的,享受42天产假。
6、哺乳假:生育后在其婴儿一周岁内应照顾其在每班劳动时间内授乳两次(包括人工喂养)。每次单胎授乳时间为三十分钟,亦可将两次授乳时间合并使用。多胞胎 生育者,每多生一胎,每次哺乳时间增加三十分钟。女职工生育后,若有困难且工作许可.由本人提出申请,经单位批准,可谓哺乳假六个半月。
7、产检假:女职工妊娠期间在医疗保健机构约定的劳动时间内进行产前检查(包括妊娠十二周内的初查),应算作劳动时间。
8、保胎假:医生开证明,按病假待遇。
二胎产假计算:根据现行我国计划生育法规定,符合国家计划政策内生育二胎,产妇均可享受产假。其产假天数跟生育一孩或一胎产假天数相同。
【温馨提示】:自2016年1月起,最新计划生育条例中已正式取消晚婚假与晚育假,如需了解更多,请拨打社保局服务热线12333。
全国各级法院诉讼费计算器、广东省律师事务所律师服务收费计算器
全国各级法院诉讼费计算器、广东省律师事务所律师服务收费计算器
http://www.wqyfw.com/诉讼费律师费计算器.html
诉讼费交纳标准
一、财产案件根据诉讼请求的金额或者价额,按照下列比例分段累计交纳:
1.不超过1万元:每件交纳50元
2.超过1万元至10万元:诉讼标的额x2.5,,200元
3.超过10万元至20万元:诉讼标的额x2,,300元
4.超过20万元至50万元:诉讼标的额x1.5,,1300元
5.超过50万元至100万元:诉讼标的额x1,,3800元
6.超过100万元至200万元:诉讼标的额x0.9,,4800元
7.超过200万元至500万元:诉讼标的额x0.8,,6800元
8.超过500万元至1000万元:诉讼标的额x0.7,,11800元
9.超过1000万元至2000万元:诉讼标的额x0.6,,21800元
10.超过2000万元:诉讼标的额x0.5,,41800元
二、非财产案件受理费收费标准
1、离婚案件每件交纳50元至300元。涉及财产分割,财产总额不超过20万元的,不另行交纳;超过20万元的部分,按照0.5,交纳。
2、侵害姓名权、名称权、肖像权、名誉权、荣誉权以及其他人格权的案件,每件交纳100元至500元。涉及损害赔偿,赔偿金额不超过5万元的,不另行交纳;超过5万元至10万元的部分,按照1,交纳;超过10万元的部分,按照0.5,交纳。
3、其他非财产案件每件交纳50元至100元。
三、知识产权民事案件受理费:没有争议金额或者价额的,每件交纳500元至1000元;有争议金额或者价额的,按照财产案件的标准交纳。
四、劳动争议案件受理费:每件交纳10元。
五、行政案件受理费:按照下列标准交纳:
1、商标、专利、海事行政案件每件交纳100元;
2、其他行政案件每件交纳50元。
六、管辖异议案件受理费:当事人提出案件管辖权异议,异议不成立的,每件交纳50元至100元。
七、其他情形:
1、适用简易程序、调解结案、撤诉、反诉、有独立请求权的第三人提出与本案有关的诉讼请求合并审理破产案件减半交纳。
2、符合民事诉讼法第五十五条第四款规定,未参加登记的权利人向人民法院提起诉讼的,按照本项规定的标准交纳申请费,不再交纳案件受理费。
八、关于申请费的收费标准:
1、依法申请支付令的,比照财产案件受理费标准的1/3交纳。
2、依法申请公示催告的,每件交纳100元。
3、申请撤销仲裁裁决或者认定仲裁协议效力的,每件交纳400元。
4、破产案件依据破产财产总额计算,按照财产案件受理费标准减半交纳,但是,最高不超过30万元。
5、海事案件的申请费按照下列标准交纳:
申请设立海事赔偿责任限制基金的,每件交纳1000元至1万元;
申请海事强制令的,每件交纳1000元至5000元;
申请船舶优先权催告的,每件交纳1000元至5000元;
申请海事债权登记的,每件交纳1000元;
申请共同海损理算的,每件交纳1000元。
6、申请执行费 :
没有执行金额或者价额的,每件交纳50元至500元。
执行金额或者价额不超过1万元的,每件交纳50元;
超过1万元至50万元的部分,按照1.5,交纳;
超过50万元至500万元的部分,按照1,交纳;
超过500万元至1000万元的部分,按照0.5,交纳;
超过1000万元的部分,按照0.1,交纳。
7、申请保全费 :
财产数额不超过1000元或者不涉及财产数额的,每件交纳30元;
超过1000元至10万元的部分,按照1%交纳;
超过10万元的部分,按照0.5,交纳。
但是,当事人申请保全措施交纳的费用最多不超过5000元。
广东省司法厅规定律师收费标准指导价
(单位:人民币) 省物价局、广东省司法厅(粤价【2006】298号)文件的规定,广东省律师服务收费标准指导价如下: 一、解答法律咨询
1、不涉及财产关系 80,150元/件 2、涉及一般财产关系 100,300元/件 3、涉及商业财产关系 200,500元/件 二、制作法律事务文件
1、声明、启事及其他一般法律文书 500,2000元/件 2、起诉状、上诉状、答辩状、申诉状及其他诉状和申请仲裁文书等 1000,3000元/件 3、分单、遗嘱、赠与及其他涉及财产关系的法律文书 1500,4500元/件 4、民事合同、契约等 2000,5000元/件 法律文件一式三份。如需增加份数,另收工本费。
三、办理刑事案件
1、侦查阶段: 2000,6000元/件 2、审查起诉阶段: 6000—16000元/件 3、审判阶段: 6000—33000元/件 刑事自诉、担任被害人代理人的按上述标准执行
四、民事、商事、行政诉讼:
1、不涉及财产: 3000—20000元
2、涉 及 财产: 在收取基础费用1000—8000元的基础上再按其争议标的额按比例累加计算收取,具体计算标准如下:
标的额 收费标准 速算公式 5万元以下部分(含5万元) 免加收 基础费用 5,10万元(含10万元) 8% (标的额,5万)×8%+基础费用 10,50万元(含50万元) 5% (标的额—10万)×5%+4000+基础费用 50,100万元(含100万元) 4% (标的额—50万)×4%+24000+基础费用 100,500万元(含500万元) 3% (标的额—100万)×3%+44000+基础费用 500—1000万元(含1000万元) 2% (标的额—500万)×2%+164000+基础费用 1000—5000万元(含5000万元) 1% (标的额—1000万)×1%+264000+基础费用 5000万元以上 0.5% (标的额—5000万)×0.5%+664000+基础费用
五、办理非诉讼法律事务
1、不涉及财产的一般法律事务 1000,5000元/件 2、资信调查、咨询建议书、法律意见书、见证等 2000-10000元/件 3、为企业股份制改组提供法律服务,按改组企业总股本1厘/股计算收费。 每家收费最低不得少于100000元 4、为股票公开发行并上市的公司提供法律服务,按发行、上市股票总数的5厘每家收费最低不得少于200000元 /股计算收费。
5、公司清算,根据实际工作量或按可分配财产数额的一定比例协商收费。按可分配财产数额比例收费的标准是:
可 分 配 财 产 数 额 收 费 标 准 10万元以下部分 标的额×(10%,30%)
10,50万元(含50万元) (标的额,10万元)×(8%,20%),10万元部分收费 50,100万元(含100万元) (标的额,50万元)×(6%,10%),50万元部分收费 100,500万元(含500万元) (标的额,100万元)×(4%,8%),100万元部分收费 500,1000万元(含1000万元) (标的额,500万元)×(2%,4%),500万元部分收费 1000万元以上 (标的额,1000万元)×(0.5%,1%),1000万元部分收费 6、其他非诉讼案件可根据律师投入的工作量和案件复杂程度以及律师可能承担的风险,与当事人协商收费 六、担任法律顾问
1、律师担任法律顾问的费用可根据律师提供服务的范
围、工作量大小以及顾问单位的规模,由签约双方协商每年收费不得低于30000元 确定。
2、律师担任法律顾问后为顾问单位提供的专业法律服务应按本收费标准的70,80%收费
七、计时收费
律师事务所在实行计时收费时,可根据律师的执业年限
业年限、业务能力、社会信誉等,和当事人协商确定律200-3000元/小时 师的每小时的收费标准
附件一、民营、外资、合资企业股权转让及见证收费标准 合同标的额 收费公式
50万(含50万)以下 标的额à0.0024(不低于200元) 50万,500万(含500万) (标的额-50万)× 0.002+1200 500万01元,1000万(含1000万) (标的额-500万)× 0.0016+10200 1000万01元,2000万(含2000万) (标的额-1000万)× 0.0012+18200 2000万01元,5000万(含5000万) (标的额-2000万)× 0.0008+30200 5000万01元,,亿(含,亿) (标的额-5000万)× 0.0004+54200 ,亿01元以上 (标的额-,亿)× 0.00008+74200
比如:合同标的额为600万,见证费,(600万,500万)× 0.0016+10200=11800
附件二、国有、集体企业股权转让见证收费标准
,、协议成交方式
成交金额 比例
100万(含100万)以下 0.3%,最低收费600元 100万,500万(含500万)的部分 0.25%
500万,1000万(含1000万)的部分 0.2%
1000万,5000万(含5000万)的部分 0.1%
5000万,,亿(含,亿)的部分 0.05%
,亿以上的部分 不收费
注,:以成交金额为基数,按分段累加分别计算,双向收取交易见证费。
注2:此标准根据《中华人民共和国价格法》、《中华人民共和国律师法》和《国家发展改革委、司法部关于印发<>
务收费管理办法>的通知》(发改价格[2006]611)号以及原国家计委等六部委《关于印发<中介服务收费管理办法>的通知(计价
格[1999]2255号)的有关规定,结合广东省律师服务业的具体情况,制定本实施办法。收费办法自2007年1月10日起执行,
省物价局、省司法厅《关于印发广东省律师服务收费管理实施办法的通知》(粤价,2005,157号)同时废止。以上费用浮动幅
度:20,。
,、竞投和拍卖成交方式
成交金额 见证费
小于净资产值(等于净资产值)的部份 按照本附件协议成交方式的标准收取 超出净资产值的部份 超出部分按1%向转让方收取 拍卖 按成交额的5%向交纳拍卖手续费
附件三、有限责任公司股权质押收费标准 质押标的额(人民币) 收费比例(以质押标的额为基数) 1000万以下(含1000万) 0.15%
1000万,6000万(含6000万) 0.1%
6000万以上 0.05%
说明:该收费标准按分段累进方法计算,比如质押标的额为5000万元,则收费
总额=10,000,000×0.15%+(50,000,000,10,000,000)×0.1%=55000
二、说明:
(1)上列各项收费标准和比例是办理诉讼案件一个审级或仲裁案件的收费标准。未办一审而办二审的,按一审标准收费;曾办一审再办二审的或曾办一审或二审,再办发回重审、再审申请或确定再审案件的,按一审标准减半收费;涉及仲裁的案件,曾代理仲裁的,诉讼一审或二审阶段按仲裁标准减半收费。执行案件按一个审级收费。
刑事附带民事,其民事部分按一审标准减半收取。
(2)办理涉及财产关系的民事案件亦可采取风险收费,风险收费的最高收费标准或总额,不得高于收费合同约定标的额的30,。
三、协商收费
(一)适用范围:
除诉讼、仲裁、执行案件外的其它各类非诉讼法律事务
(二)收费标准:由律师事务所与委托人协商。
四、其他费用
律师事务所在提供法律服务过程中代委托人支付的诉讼费、仲裁费、鉴定费、公证费、查档费、翻译费、异地办案差旅费、跨境通讯费、专家论证费及律师事务所代委托人支付的其他费用(简称“办案费”),不属于律师服务收费,由委托人另行支付。
下面的是2016年经典励志语录,需要的朋友可以欣赏,不需要的朋友下载后可以编辑删除~~谢谢~~
1、有来路,没退路;留退路,是绝路。
2、为目标,晚卧夜半,梦别星辰,脚踏实地,凌云舍我其谁! 3、做一题会一题,一题决定命运。
4、静下来,铸我实力;拼上去,亮我风采。
5、拼一载春秋,搏一生无悔。
6、狠抓基础是成功的基础,持之以恒是胜利的保证。 7、把汗水变成珍珠,把梦想变成现实!
8、拧成一股绳,搏尽一份力,狠下一条心,共圆一个梦。 9、每天都是一个起点,每天都有一点进步,每天都有一点收获! 10、22.对命运承诺,对承诺负责
11、我自信,故我成功,我行,我一定能行。
12、不敢高声语,恐惊读书人。
13、高三高考高目标,苦学善学上好学。
14、争分夺秒巧复习,勤学苦练创佳绩、攀蟾折桂,舍我其谁。 15、眼泪不是我们的答案,拼搏才是我们的选择。
16、站在新起点,迎接新挑战,创造新成绩。
17、遇难心不慌,遇易心更细。
18、乐学实学,挑战高考;勤勉向上,成就自我。 19、努力造就实力,态度决定高度
20、忘时,忘物,忘我。诚实,朴实,踏实。 21、精神成人,知识成才,态度成全。
22、作业考试化,考试高考化,将平时考试当高考,高考考试当平时。
23、我高考我自信我成功!
24、23.再苦再累不掉队,再难再险不放弃
25、拼搏高考,今生无悔;越过高三,追求卓越! 26、挑战人生是我无悔的选择,决胜高考是我不懈的追求。 27、山高不厌攀,水深不厌潜,学精不厌苦:追求! 28、学练并举,成竹在胸,敢问逐鹿群雄今何在?师生同志,协力攻关,笑看
燕赵魁首谁人得。
29、快马加鞭君为先,自古英雄出少年。
30、太阳每天都是新的,你是否每天都在努力。 31、把握现在、就是创造未来。
32、25.我因X班而自豪,X班因我而骄傲
33、我心飞翔,路在脚下。
34、人活着要呼吸。呼者,出一口气;吸者,争一口气 35、辛苦三年,幸福一生。
36、精神成就事业,态度决定一切。
2016年经典励志语录二
你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。
竹子用了4年时间,仅仅长了3cm,从第五年开始,以每天30cm的速度疯狂的生长,仅仅用了六周时间就长到了15米。其实在前面的四年,竹子将根在土壤里延伸了数百平米。做人做事亦是如此,不要担心你此时的付出得不到回报,因为这些付出都是为了扎根。人生需要储备!多少人,没熬过那三厘米! 能够比跌倒的次数多一次站起来的次数,你就是强者!
开始,去做,这是最难的一步。往往,突破了最难的一步以后,或者说,破除了想像中的困难以外,其他的事,可能反而容易。尤其有些事情,上瘾以后,形成习惯,不继续反而不舒服。再好的方法,对于彻底的、不想上进的懒人是无效的,但既然,生命是属于自己的,愿意行动与否,也还是自己的事。
成功与不成功之间,有时距离是很短的,你只要后退一步或再向前几步。 想得再多不如行动一次;说得再好不如立刻就做!人与人的距离是说与做的差别;人与人的差别是信与愿的有无!凡事实行则无瑕忧虑,空想则寸步难行。无论要做什么立刻行动!马上行动!开始行动!
做一件事情,只有最初五分钟热情的,叫失败者;最后五分钟仍有热情的,叫成功者。
当你周围都是米的时候,你很安逸;当有一天米缸见底,才发现想跳出去已无能为力。有一种陷阱,名叫安逸!别在最能吃苦的年纪选择安逸!没有危机!是最大的危机!自己不上进,危机无处不在吞噬你的理想和灵魂,混下去很容易,混上去太难了!
为什么成功的不是你。年轻的你,迷茫又着急。你想要房子想要汽车,想要旅行想要高品质生活。你不断催促自己成长,却沉不下心来认真读一篇文章;
你急切地期待成功,却每次在遇到挫折时提前退缩。既然没有过那些汗水和拼搏,又何必在旁观别人的荣耀与成功时愤愤不平呢?所以,努力吧,别抱怨。 如果你要做一件事,请只管安安静静的去做。因为那是你自己的事,别人不知道你的情况,也不可能帮你实现梦想。千万不要因为虚荣心而炫耀,也不要因为别人一句评价放弃自己的梦想。其实最好的状态,是坚持自己的梦想,听听前辈的建议,少错几步。值不值,时间是最好的证明。 你可以没有梦想,但不能不知道现在要做什么,你可以长相平凡丢到人群里就被淹没,但不能随波逐流成为没有个性的复制品,你可以被压力逼迫得痛哭一百次,但哭完记得笑一千次给它看,你可以习惯为别人付出,但至少别忘了为自己而活,你可以学会假装,但最后不要变成你当初讨厌的那种人。 你比你想象中更勇敢,比你看起来更强大,也比你以为的更聪明。
2016年经典励志语录三
1、如果真的想活得悠闲,那么,为何不学着让自己释放心灵的重负,学着忘却,忘记那些无碍于个人原则的得失;无关大局的磕磕碰碰;无伤大雅的前嫌旧隙呢?学会让自己时时都轻装上阵,潇洒前行!
2、人格的完善是本,财富的确立是末。
3、古人云“隐忍不怒的人,胜于勇者”、“修己冶心的人胜于攻城掠地的将领”。生活中,宽容可以减少人与人之间的隔阂,可以让大家更好地沟通,彼此多一些体贴和关怀。
4、“一个人不能骑两匹马,骑上这匹,就要丢掉那匹,聪明人会把凡是分散精力的要求置之度外。”人的生命和精力是有限的,我们要学会将聚光镜一样,排除一切琐事的干扰,将所有的资料、精力、热情聚焦并锁定你的目标上。
5、一个能从别人的观念来看事情,能了解别人心灵活动的人,永远不必为自己的前途担心。一个人最大的破产是绝望,最大的资产是希望。不要等待机会,而要创造机会。
6、喜欢的最高境界是你可能为她去死,可爱的最高境界是你得为你爱的人好好活着。
7、如果人生需要一个完美的符号,没有比微笑更合适的了。微笑,它是甜美的歌声,能唱出生活的快乐;它是温暖的阳光,能驱散心头的阴影;它是无边的春风,能蓬勃事业的生机。
8、微笑可以减轻紧张的情绪和压力,不管面对多么愤怒或者冲动得人,只要微笑示之,都能坦然以对,微笑一把神奇的钥匙,可以打开别人心灵的窗户,传递心灵的善意,退一步,海阔天空;退一步,瞒天过海;冲动是魔鬼,只要心平气和静下心来,相对而笑,一切都能化干戈为玉帛。
9、很多人找女朋友或者男朋友,把学历当作指标之一,既希望对方能够给他/她伴侣的温暖与浪漫,又希望他/她知识丰富、学历相当或更高,在事业上能蒸蒸日上;我想说,你找的是伴侣,不是合作伙伴,更不是同事,生活就是生活,这个人适合你,即使你是博士他/她斗大字不识一个,那也无所谓,适合就会和谐融洽,人比文凭更重要
10、听着一首歌,反反复复,琢磨不透,自己在想什么?难道真的爱她么?可为什么说不出口呢,爱情就是买卖,看透就好。痴情的人不会有真爱、让这一切随风,吹到天涯海角。不要再让我见到,对你,既然说不出,那就模模糊糊。或许,这样最好,谁都不会太累。
11、一个能从别人的观念来看事情,能了解别人心灵活动的人,永远不必为自己的前途担心。
12、人要想树立自己的威信,就要不断进行自我完善和修养、严于律己。你要求别人怎么样,首先必须自己先做到那样,身教的效果总比言传更为快捷。严于律己能使自己成为一个最可信赖的人。
13、成功的道路上,肯定会有失败;对于失败,我们要正确地看待和对待,不怕失败者,则必成功;怕失败者,则一无是处,会更失败。
14、选几个自认为能靠得住的人组成良好、稳固、有力的人际关系的核心。这首选的几个人可以包括自己的朋友、家庭成员和那些在你职业生涯中彼此联系紧密的人。他们构成你的影响力内圈,因为他们能让你发挥所长,而且彼此都希望对方成功。
15、我们现在做的工作,也许过于平淡,也许鸡毛蒜皮。但这就是工作,是生活,是成就人事的不可缺少的基础。对于敬业者来说,凡事无小事,简单不等于容易。
16、亲情是一种深度,友情是一种广度,而爱情是一种纯度。亲情是没有条件、不求回报的阳光沐浴,友情是浩荡巨大、可以随时安然栖息的堤岸;而爱情则是神秘无边、可以使歌至到忘情泪至潇洒的心灵照射。人生一世,亲情、友情、爱情;三者缺一,已为遗憾,三者缺二,实为可怜;三者皆缺,活而如亡。
17、如果你心中有阳光,就不会恐惧前方的坎坷;如果你心中有勇气,就不会畏缩不前;无论前方风多大,雨多大,闯过去就是一片海阔天空!孩子别忧伤,生命的美丽就是坚强的走过坎坷!
18、好心没有错,但也要分清是非,不分原则的善良,是“愚善”,就像东郭先生一样。因此,在没有搞清一件事是否值得做之前,要敢于说“不”,不要被他人利用,更不要一不小心成为他人的替罪羊。
19、其实路并没有错,错的是选择,爱并没有错,错的是缘分,所以无论何地,一路的风景总是有限的,终究会有美好的。生命不是一场赛跑,而是一次旅行。
20、什么是嫁得好?嫁得好并不是嫁富豪,而是嫁给一个能给你安全感的男人。住在别墅里天天流泪的,你进的不是天堂而是地狱。真正嫁得好的女人,是住在单元房里却被老公哄的像只傻鸟,爱你一时,宠你一世,骗你一辈子!其实日子过得好,真的不是有多少钱,而是无忧无虑无烦恼。
21、想取得成功,不仅要吃“苦中苦”,也要相关条件的配合支持,那些光知道吃苦的人,那些吃了不值得吃的苦的人,那些把吃苦当成解决一切问题法宝的人,恐怕只能继续在“苦中苦”的怪圈里徘徊。
22、人往往是失去之后才懂得珍惜,可是为时已晚,即使是哭干眼泪也换不回曾经的拥有。多少人都是这样的感叹:拥有时不知道珍惜,失去时已无可挽回。
23、从不犯错的孩子长大后要么成为庸才,要么早晚要犯大错。因此,我们要适度降低对孩子的期望与要求,鼓励他们真实地面对自己的缺点和错误,鼓励他们在尝试中不怕犯错误,注重过程的体验和收获,摘掉“好孩子”的面具。
24、成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。 25、人生的最大遗憾莫过于错误地坚持了不该坚持的东西,轻易地放弃了不该放弃的东西,每一个人都有自己的理想,都有那个期望达到的目标,或许有这么一天我恩男狗狗成为一名教师,或许有那么一天我能实现自己的理想,达到自己的目标!生活还在继续!不要忘记微笑的对待每一天,不要忘记珍惜余下的每一天!
26、要始终保持敬畏之心。对时光,对美,对痛楚。仿佛我们的活,也只是一棵春天中洁白花树的简单生涯。不管是竭力盛放,还是静默颓败,都如此甘愿和珍重。
27、我们缺少的不是机遇,而是对机遇的把握;我们缺欠的不是财富,而是创造财富的本领;我们缺乏的不是知识,而是学而不厌的态度;我们缺少的不是理想,而是身体力行的实践。
28、只有一条路不能选择——那就是放弃的路;只有一条路不能拒绝——那就是成长的路。
29、积极的人在每一次忧患中都看到一个机会,而消极的人则在每个机会都看到某种忧患。莫找借口失败,只找理由成功。
30、能够刚正批评、指责我们缺点和错误的人是我们难得的诤友,善意的批评就像是一壶美酒,当我们开怀陶醉在这种朋友同事间畅饮的世界里,批评的因子仿佛蕴藏在每个直观的感觉细胞中。
31、没有人愿意和总是虚伪、圆滑的人打交道,但是一味的诚实,却也容易伤害人。所以,生意人讲究的是大诚实,即在适当的时候,对适当人,说适当的话。如果坦率无忌是一种伤害,那么,请选择机智的“谎言”。 32、只要你有能力去做的事就一定要去做,不要给自己留下任何遗憾,人生最重要的不是所站的位置,而是所朝的方向。路就在你脚下,只要走,就能到达远方。
33、做对的事情比把事情做对重要。
34、生命的奖赏远在旅途终点,而非起点附近。我不知道要走多少步才能达到目标,踏上第一千步的时候,仍然可能遭到失败。但我不会因此放弃,我会坚持不懈,直至成功!
35、以前喜欢一个人,可以任由招之即来,挥之即去。现在喜欢一个人,仍可以招之即来,但不再接受挥之即去。因为我现在知道,我很好,所以你爱我,也只有一次机会。
36、水的心是平静的,水的心是轻灵的,你看,水,一平如镜,云月其中,怡然自乐。水,怀着平静而轻灵的心,缓和的一淌而去,遇一些阻隔且轻轻的绕过,何必那么多计较,心平而轻流自畅;如一路顺直,那更好了,我也可以尽情的奔流,一望千里,波涛澎湃,我也会挥洒我的潇洒,我的纵情。 37、日子不动声色奴役我们疲于奔命,而我们还要为之稽首敛眉。 38、不要等待机会,而要创造机会。
39、没有一种不通过蔑视、忍受和奋斗就可以征服的命运。 40、夫事未有不生于微而成于着,圣人之虑远,故能谨其微而治之,众人之识近,故必待其着而后救之;治其微则用力寡而功多,就其着则竭力而不能及也。人见识短浅,所以必等弊端闹大才来设法挽救。
41、人性最可怜的就是:我们总是梦想着天边的一座奇妙的玫瑰园,而不去欣赏今天就开在我们窗口的玫瑰。
42、古人说:“少成若天性,习惯如自然。”坏习惯是我们打不开的心锁;坏习惯是我们转不过的弯;坏习惯是我们看不见的障碍??好习惯要保持,坏习惯要改正,永远别让坏习惯左右我们的未来。
计算器12
《单片机技术》课程设计说明书 计 算 器
院 、 部:
学生姓名:
指导教师:职称
专 业:
班 级:
完成时间:
课程设计任务书
课 程:单片机技术
课程设计题目:
适 用 班 级:自动化卓越 1201 电子 1201-1203
时 间:2014~2015学年第一学期 指 导 教 师:凌 云
《单片机技术》课程设计任务书
一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码 锁、波形发生器、数字温度计、计算器、数字式秒表。
二、适用班级:自动化卓越 1201、电子 1201-1203、通信 1201-1202
三、指导教师:凌云
四、设计目的与任务:
学生通过理论设计和实物制作解决相应的实际问题, 巩固和运用在 《单片机 技术》 中所学的理论知识和实验技能, 掌握单片机应用系统的一般设计方法, 提 高设计能力和实践动手能力, 为以后从事电子电路设计、 研发电子产品打下良好 的基础。
五、设计内容与要求
设计内容
1、数字电子钟
设计一个具有特定功能的电子钟。 该电子钟上电或按键复位后能自动显示系 统提示符 “P.” , 进入时钟准备状态;第一次按电子钟启动 /调整键,电子钟从 0时 0分 0秒开始运行,进入时钟运行状态;再次按电子钟启动 /调整键,则电子 钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动 /调 整键再次进入时钟运行状态。
2、数字频率计
设计一个能够测量周期性矩形波信号的频率、 周期、 脉宽、 占空比的频率计。 该频率计上电或按键复位后能自动显示系统提示符 “P.” , 进入测量准备状态。 按 频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽; 按占空比测量键则测量占空比。
3、数字电压表
设计一个能够测量直流电压的数字电压表。 测量电压范围 0~5V , 测量精度 小数点后两位。 该电压表上电或按键复位后能自动显示系统提示符 “P.” , 进入测 量准备状态, 按测量开始键则开始测量, 并将测量值显示在显示器上, 按测量结 束键则自动返回 “P.” 状态。
4、交通灯
设计一个具有特定功能的十字路口交通灯。 该交通灯上电或按键复位后能自 动显示系统提示符 “P.” , 进入准备工作状态。 按开始键则开始工作, 按结束键则 返回 “P.” 状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为 主车道,每次通车时间为 60秒,乙车道为次车道,每次通车时间为 30秒,要求
黄灯亮 3秒,并且 1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆 通车时间 10秒,同时禁止其他车辆通过。
5、抢答器
设计一个具有特定功能的抢答器。 该抢答器上电或按键复位后能自动显示系 统提示符 “P.” , 进入准备工作状态。 主持人按下开始按钮后, 抢答开始并限定时 间 30S ; 10S 内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下 抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用; 正常抢答, 显示器显示台号, 蜂鸣器发出音响, 其它抢答按钮无效; 正常抢答下, 从按下抢答按钮开始 30S 内,答完按钮没按下,则作超时处理,超时处理时,违 规指示灯亮,显示器显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂 鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
6、密码锁
设计一个具有特定功能的密码锁。 该密码锁上电或按键复位后能自动显示系 统提示符 “P.” , 进入准备工作状态。该密码锁具有系统原始密码 888888,用户 可以设定并存储用户密码, 密码输入时应处于保密显示状态, 密码输入正确时应 显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
7、波形发生器
设计一个具有特定功能的波形发生器。 该波形发生器上电或按键复位后能自 动显示系统提示符 “P.” , 进入准备工作状态。该波形发生器可以分别产生幅值 0~5V 、频率 100Hz ~100KHz 范围内的三角波、锯齿波、方波、梯形波和正弦 波。
8、数字温度计
设计一个具有特定功能的数字温度计。 该数字温度计上电或按键复位后能自 动显示系统提示符 “P.” ,进入准备工作状态。测量温度范围 0℃ ~99℃ ,测量精度 小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。
9、计算器
设计一个具有特定功能的计算器。 该计算器上电或按键复位后能自动显示系 统提示符 “P.” ,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、 开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。 10、数字式秒表
设计一个具有特定功能的数字式秒表。 该数字式秒表上电或按键复位后能自 动显示系统提示符 “P.” ,进入准备工作状态。该数字式秒表应具有开始、暂停、 连续、清零和停止功能。
设计要求
1、以上课题可以任选其一或多选,学生也可以自拟课题;
2、编程语言:汇编或 C51;
3、计算机打印《单片机技术》课程设计说明书一份;
4、设计时间:一周;
5、实物制作;
6、人员分组:一人一组一实物。
六、《单片机技术》课程设计说明书正文主要内容
参照 “ 《单片机技术》课程设计说明书正文主要内容 ” 文件。
七、《单片机技术》课程设计说明书书写规范格式
参照 “ 《单片机技术》课程设计说明书书写规范格式 ” 文件。
八、参考资料
1、马忠梅,单片机的 C 语言 Windows 环境编程宝典 [M], 北京:北京航空航 天大学出版社, 2003.6;
2、李光飞 , 单片机 C 程序设计指导 [M],北京 :北京航空航天大学出版社,
2003.01 ;
3、李光飞 , 单片机课程设计实例指导 [M],北京 :北京航空航天大学出版社, 2004.9。
电气自动化教研室 2014年 9月 10日
摘 要
本设计是基于 52系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除 3位无符号数字的简单四则运算,并在 LED 上相应的显示结果。
设计过程在硬件与软件方面进行同步设计。 硬件方面从功能考虑, 首先选择 内部存储资源丰富的 AT89S52单片机, 输入采用 4×4矩阵键盘。 显示采用 4位 8段共阴极 LED 动态显示。软件方面从分析计算器功能、流程图设计,再到程序 的编写进行系统设计。首先,利用 Microsoft Visio软件画出系统流程图;然后编 程语言方面从程序总体设计以及高效性和功能性对 C 语言和汇编语言进行比较 分析, 针对计算器四则运算算法特别是乘法和除法运算的实现, 最终选用全球编 译效率最高的 KEIL 公司的 μVision4软件,采用汇编语言进行编程;最后利用 proteus 软件进行仿真、测试。当仿真结果正确以后,再利用 AD 软件画图,制 板。
关键字:单片机;计算器;加减乘除; 4*4矩阵键盘; LED
ABSTRACT
This design is based on 51 series microcontroller for decimal calculator system design, can complete the calculator keyboard input, add, subtract, multiply and divide three unsigned Numbers of simple arithmetic, and the corresponding on the LED display results.
In the aspect of hardware and software design process synchronization design. From a functional hardware, first select the internal storage resources rich AT89C51, the 4 * 4 matrix keyboard input. According to the four 8 segments common cathode LED dynamic display. Software based on an analysis of the calculator function, the flow chart of design to the writing of the program for system design. First, use the Microsoft Visio software draw a flow chart of system; Then programming language from the application and efficiency of the overall design and function of C language and assembly language comparative analysis, in view of the calculator arithmetic algorithm especially the realization of the multiplication and division, finally chooses the compilation of the most efficient KEIL company of mu Vision4 software, using assembly language programming; The last is the use of proteus software for simulation and testing. When simulation results right recycling AD software drawing, plate.
Key words: single chip microcomputer; The calculator; Subtracting ; 4 * 4 matrix keyboard ; The LED
目 录
1 绪论 .......................................................................................................................... 1
2 系统硬件设计 .......................................................................................................... 2 2.1 芯片 AT89S52的介绍 .................................................................................. 2 2.1.1 AT89S52引脚图 ............................................................................. 2 2.1.2 AT89S52的引脚说明和功能 ......................................................... 2 2.2 芯片 74HC573的介绍 .................................................................................. 3 2.3 单片机最小系统 ............................................................................................ 4 2.3.1 复位电路 .......................................................................................... 4 2.3.2 晶振电路 .......................................................................................... 4 2.3.3 电源电路 .......................................................................................... 5 2.4 八段共阳极数码管 ........................................................................................ 5
2.5 矩阵键盘的设计 ........................................................................................... 6
3 软件系统设计 .......................................................................................................... 7 3.1 系统模块 ........................................................................................................ 7 3.2 系统流程框图 ................................................................................................ 7 3.2.1 主程序 .............................................................................................. 7
3.2.2 算术运算流程图 .............................................................................. 8
4 Proteus 仿真 ........................................................................................................... 10 4.1 Proteus 简介 ................................................................................................. 10 4.2 电路仿真图 .................................................................................................. 11 4.3 仿真结果 ...................................................................................................... 11 结束语 .......................................................................................................................... 13 致 谢 .......................................................................................................................... 14 参考文献 ...................................................................................................................... 15 附 录 .......................................................................................................................... 17 附 录 A :程序 . .................................................................................................. 17 附 录 B :原理图 . .............................................................................................. 23 附 录 C :PCB 版图 .......................................................................................... 24 附 录 D :元器件清单 . ...................................................................................... 25
附 录 E :实物图 ............................................................................................... 26
1 绪论
随着社会的发展, 科学的进步, 人们的生活水平在逐步的提高, 尤其是微电 子技术的发展, 犹如雨后春笋般的变化。 电子产品的更新速度快就不足惊奇了 , 单 片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起 来。
近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控 制、 仪器仪表、 设备、 产品的自动化、 智能化方面获得了广泛的应用。 与此同时, 单片机应用系统的可靠性成为人们越来越关注的重要课题. 影响可靠性的因素是 多方面的, 如构成系统的元器件本身的可靠性、 系统本身各部分之间的相互耦合 因素等。其中系统的抗干扰性能是系统可靠性的重要指标。
本设计采用 80S52芯片, 实现了利用单片机进行了一个简单计算器设计。 允 许对输入数据进行加减乘除运算及 LCD (Liquid Crystal Display)显示。如果设 计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。 LCD 液晶显示器是 Liquid Crystal Display的简称, LCD 的构造是在两片平行的玻璃基 板当中放置液晶盒,下基板玻璃上设置 TFT (薄膜晶体管),上基板玻璃上设置 彩色滤光片,通过 TFT 上的信号与电压改变来控制液晶分子的转动方向,从而 达到控制每个像素点偏振光出射与否而达到显示目的。现在 LCD 已经替代 CRT 成为主流,价格也已经下降了很多,并已充分的普及。故采用 LCD 。设计的关 键所在, 必须非常熟悉单片机的原理与结构, 同时还要对整个设计流程有很好的 把握,将单片机和其他模块完整的衔接。本设计是基于 51系列单片机来进行的 数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除基本四 则运算, 并在 LCD 上显示相应的结果; 设计电路采用 AT89C51单片机为主要控 制电路, 显示采用字符 LCD 静态显示; 软件方面使用汇编语言编程, 并用 Proteus 仿真 。
2 系统硬件设计
2.1 芯片 AT89S52的介绍
2.1.1 AT89S52引脚图
图 1 AT89S52引脚图
AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可 编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引 脚完全兼容。 片上 Flash 允许程序存储器在系统可编程, 亦适于常 规编程器。在单芯片上,拥有灵巧的 8位 CPU(Central Processing Unit)和在系统 可编程 Flash , 使得 AT89S52为众多嵌入式控制应用系统提供高灵活、 超有效的 解决方案。 AT89S52具有以下标准功能:8k 字节 Flash , 256字节 RAM , 32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16位定时器 /计数器,一个 6向量 2级中断结构, 全双工串行口, 片内晶振及时钟电路。 另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下, CPU 停止工作, 允许 RAM 、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM 内 容被保存, 振荡器被冻结, 单片机一切工作停止, 直到下一个中断或硬件复位为 止。
2.1.2 AT89S52的引脚说明和功能
XTAL1:接外部晶振的一个引脚。 在单片机内部, 它是一反相放大器输入端, 这个放大器构成了片内振荡器。它采用外部振荡器时,些引脚应接地。
XTAL2:接外部晶振的一个引脚。 在片内接至振荡器的反相放大器输出端和 内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输
入。
RST :STC90C52AD 的复位信号输入引脚,高电位工作,当要对芯片又时, 只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间, AT89C51便能完成系统复位的各项工作, 使得内部特殊功能寄存器的内容均被设成已知状 态。
P0口:(P0.0~P0.7)是一个 8位漏极开路双向输入输出端口,当访问外部数 据时,它是地址总线(低 8位)和数据总线复用。外部不扩展而单片应用时,则 作一般双向 I /O 口用。 P0口每一个引脚可以推动 8个 LSTTL 负载。
P2口:(P2.0~P2.7)口是具有内部提升电路的双向 I/0端口 (准双向并行 I/O口 ) ,当访问外部程序存储器时,它是高 8位地址。外部不扩展而单片应用时, 则作一般双向 I /O 口用。每一个引脚可以推动 4个 LSTL 负载。
P1口:(P1.0~P1.7)口是具有内部提升电路的双向 I/0端口 (准双向并行 I/O口 ) ,其输出可以推动 4个 LSTTL 负载。仅供用户作为输入输出用的端口。 P3口:(P3.0~P3.7)口是具有内部提升电路的双向 I/0端口 (准双向并行 I/O口 ) ,它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部 随机存储器内容的读取或写入控制等功能。
2.2 芯片 74HC573的介绍
芯片 74HC573有 20个引脚, D0-D7为输入, Q0-Q7为输出。 74HC573是一 款高速 CMOS 器件, 74HC573引脚兼容低功耗肖特基 TTL (LSTTL )系列。 74HC573包含八路 D 型透明锁存器,每个锁存器具有独立的 D 型输出,以 及适应于面向总线的应用的三态输出。所有锁存器共用一个锁存使能(LE )端 和一个输出使能(OE )端。
当 LE 为高时,数据从 Dn 输入到锁存器,在此条件下,锁存器进入透明模 式,也就是说,锁存器的输出状态将会随着对应的 D 输入每次的变化而变化。 当 LE 为低时,锁存器将存储 D 输入上的信息一段就绪时间,直到 LE 的下降沿 来临。
当 OE 为低时, 8个锁存器的内容可被正常输出;当 OE 为高时,输出进入 高阻态。 OE 端的操作不会影响锁存器的状态。
图 2 74HC573引脚图
2.3 单片机最小系统
单片机最小系统就是支持主芯片正常工作的最小部分, 包括电源电路、 复位 电路和晶振电路。
2.3.1 复位电路
图 3 复位电路
本设计采用上电与手动复位电路,
电阻分别选取 100和 10K , 电容选取 10uF , 系统一上电,芯片就复位,或者中途按按键也可以进行复位。
2.3.2
晶振电路
图 4 晶振电路
晶振电路是单片机的心脏, 它用于产生单片机工作所需要的时钟信号。 单片
机的晶振选取 11.0592MHz ,晶振旁电容选取 30pF 。
2.3.3 电源电路
图 5电源电路
电源电路靠下载口供电, 然后通过 V+、 KG6进入到电路当中。 当 KG6闭合时, LED 亮,当 KG6断开时, LED 灭。
2.4 八段共阳极数码管
LED 显示器由 8段发光二极管组成,排列成 8字形状,称为 8段 LED 显示器, 器件内部接线图如图所示:
图 6 4位数码管外形结构和引脚分布图
为了显示数字或符号,要为 LED 显示器提供代码,即字形代码。七段发光二 极管,再加上一个小数点位,共计 8段,因此提供的字形代码的长度正好是一个 字节。简易计算器用到的数字 0~9的共阴极字形代码如下表 1所示:
表 1 共阴极数码管字形代码
显示字符 0 1 2 3 4 5 + - * / 段码 3FH 06H 5BH 4FH 66H 6DH 70H 40H 76H 49H
2.5 矩阵键盘的设计
键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以 上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等 问题, 直接输出按键的编码, 无需系统软件干预。 通用计算机使用的标准键盘就 是编码键盘。 当系统功能比较复杂, 按键数量很多时, 采用编码键盘可以简化软 件设计。但大多数智能仪器和电子产品的按键数目都不太多(20个以内),为 了降低成本和简化电路通常采用非编码键盘。 非编码键盘的接口电路有设计者根 据需要自行决定,按键信息通过接口软件来获取。本课题需要的是 16个按键, 故选择用非编码键盘。
计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方 式,在这种情况下,编程会很简单,但是会占用大量的 I/O 口资源,因此在很多 情况下都不采用这种方式, 而是采用矩阵键盘的方案。 矩阵键盘采用四条 I/O 线 作为行线, 四条 I/O 线作为列线组成键盘, 在行线和列线的每个交叉点上设置一 个按键。 这样键盘上按键的个数就为 4×4个。 这种行列式键盘结构能有效地提高 单片机系统中 I/O 口的利用率。
矩阵键盘的工作原理:计算器的键盘布局如图五所示:一般有 16个键组成, 在单片机中正好可以用一个 P 口实现 16个按键功能,这种形式在单片机系统中 也最常用。
图 7 4*4键盘接口电路
3 软件系统设计
3.1 系统模块
系统模块图如图 8所示, 首先利用按键作为输入模块, 当有按键按下时, 就 控制单片机运行,然后使数码管显示。
图 8 计算器系统模块
3.2 系统流程框图
3.2.1 主程序
当程序开始后,首先要使各参数初始化, LED 显示初始化。然后判断是否 有键按下。当无按键按下时,延时再判断按键;当有键按下时,先读取键码,再 判断是数字键、 清零键还是功能键。 当是按下数字键时, 然后进行键入数值处理, 再把数值送显示缓冲,最后送 LED 显示;当时按下清零键时,然后使所有状态 清零,在把数值送显示缓冲,最后送 LED 显示;当时按下功能键时,再根据上 次功能键和输入的数据计算结果, 再送显示缓冲并且等待数值键入, 并且把此次 的数值送给数码管显示。其系统总流程图如图 9所示:
图 9 主程序流程图
3.2.2 算术运算流程图
当程序开始运行后, 首先就要判断是数字键还是运算符。 当判断是运算符时, 然后要进一步判断是加减乘除的哪一种。 当是作加法运算时, 然后要判断两个数 之和是否超出 255,即判断 CY 位,当 CY 为 0时,则此时的数有效且在数码管 上显示出来;当 CY 为 1时,此时的数大于 255,算出来的结果错误,在数码管 显示为 ?000? 。同理,在作减法运算时,也要判断 CY 位, CY 为 0时,值有效; CY 为 1时,此时数小于 0, 数码管显示为 ?000? 。当是作乘法运算时,判断它们乘 积是否大于 255,即判断 OV 位,当 OV 为 0时,值有效;当 OV 为 1时,此时
乘积大于 255,数码管显示为 ?000? 。同理,在作除法运算时,也要判断 OV 位, 当 OV 为 0时,此时除数不为 0,算出的值有效;当 OV 为 1时,此时除数为 0, 表示除法无意义,数码管显示 ?000? 。其算术运算程序流程图如图 10所示:
图 10 算术运算流程图
4 Proteus 仿真
4.1 Proteus 简介
Proteus 软件是英国 Labcenter electronics公司出版的 EDA 工具软件 (该软件 中国总代理为广州风标电子技术有限公司)。它不仅具有其它 EDA 工具软件的 仿真功能, 还能仿真单片机及外围器件。 它是目前最好的仿真单片机及外围器件 的工具。 虽然目前国内推广刚起步, 但已受到单片机爱好者、 从事单片机教学的 教师、 致力于单片机开发应用的科技工作者的青睐。 Proteus 是世界上著名的 EDA 工具 (仿真软件 ) ,从原理图布图、代码调试到单片机与外围电路协同仿真,一键 切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将 电路仿真软件、 PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理 器模型支持 8051、 HC11、 PIC10/12/16/18/24/30/DsPIC33、 A VR 、 ARM 、 8086和 MSP430等, 2010年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系 列处理器模型。在编译方面,它也支持 IAR 、 Keil 和 MPLAB 等多种编译器。 Proteus 软件是英国 Labcenter electronics公司出版的 EDA 工具软件 (该软件中国 总代理为广州风标电子技术有限公司)。它不仅具有其它 EDA 工具软件的仿真 功能, 还能仿真单片机及外围器件。 它是目前最好的仿真单片机及外围器件的工 具。 虽然目前国内推广刚起步, 但已受到单片机爱好者、 从事单片机教学的教师、 致力于单片机开发应用的科技工作者的青睐。 Proteus 是世界上著名的 EDA 工具 (仿真软件 ) ,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换 到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路 仿真软件、 PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模 型支持 8051、 HC11、 PIC10/12/16/18/24/30/DsPIC33、 A VR 、 ARM 、 8086和 MSP430等, 2010年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模 型。在编译方面,它也支持 IAR 、 Keil 和 MPLAB 等多种编译器。其功能特点如 下:
(1)原理布图
(2) PCB 自动或人工布线
(3) SPICE 电路仿真
Keil uVision3是美国 Keil Software公司出品的 51系列兼容单片机 C 语言软 件开发系统,使用接近于传统 c 语言的语法来开发,与汇编相比, C 语言在功能 上、结构性、可读性、可维护性上有明显的优势,因而易学易用 , 而且大大的提 高了工作效率和项目开发周期 , 他还能嵌入汇编,您可以在关键的位置嵌入,使
程序达到接近于汇编的工作效率。 KEILC51标准 C 编译器为 8051微控制器的软 件开发提供了 C 语言环境 , 同时保留了汇编代码高效 , 快速的特点。 C51编译器的 功能不断增强, 使你可以更加贴近 CPU 本身,及其它的衍生产品。 C51已被完 全集成到 uVision2的集成开发环境中, 这个集成开发环境包含:编译器, 汇编器, 实时操作系统,项目管理器,调试器。
系统功能:
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面, 使您能在很短的时间内就能学会使用 keil c51来开发您的单片机 应用程序 。
另外重要的一点, 只要看一下编译后生成的汇编代码, 就能体会到 Keil C51生成的目标代码效率非常之高, 多数语句生成的汇编代码很紧凑, 容易理解。 在 开发大型软件时更能体现高级语言的优势。
4.2 电路仿真图
图 11 仿真电路图
4.3 仿真结果
在 Proteus 中将硬件电路全部接好以后,将 Keil 中生成的 .hex 文件导入到单 片机中,点击开始仿真按钮,电路开始仿真。
(1)上电以后,可以观察到数码管显示 “000” ,如图 12所示:
图
(2)分别依次按下按键 “12” 、 “10” 和 “*” ,可以看到数码管显示 “120” ;如图 12
所示:
图 13 乘法实现结果 (3)按下 .... 键实现加法
图
(4)减法
图
(5)开方
图
(6)除
图
(7)三角函数
图
(8)十进制、十六进制转换
图
结束语
这次设计进一步端了我的学习态度, 学会了实事求是, 严谨的作风, 对自己 要严格要求,不能够一知半解,要力求明明白白。急于求成是不好的,我有所感 受。如果省略了那些必要的步骤,急于求成,不仅会浪费时间,还会适得其反。 我觉得动手之前,头脑里必须清楚该怎么做,这一点是很重要的。就目前来说, 我的动手能力虽然差一点,但我想,通过我的不懈努力,在这方面,我总会得到 提高。这一点,我坚信。
在此次的课程设计中我最大的体会就是进一步认识到了理论联系实践的重 要性。一份耕耘,一份收获。通过这段时间的设计,让我明白科学的思维方法和 学习方法是多么重要, 只有这样才能够有很高的效率, 才能够让自己的工作更完 美。 总而言之, 此次课程设计让我学到了好多平时在课堂上学不到的东西, 增加 了我的知识运用能力, 增强我的实际操作能力。 谢谢老师给我们提供这么好的机 会,为我们之后走向社会奠定了一个好的基础。
本次课程设计让我学到了很多, 也学会到了要怎么样去面对困难, 不要对知 识一知半截, 要有的求实的能力, 通过老师的帮助我学到了很多在平时的没有注 意到的动东西及知识, 更美没有深入的的去理解, 通过这次我要更加的明确自己。 更要注重自己在各方面的锻炼能力,把握机会。
致 谢
经过这段时间的努力, 基本上是完成了本次的课程设计。 刚开始, 我头绪不 是很清楚, 不知道从哪里入手, 但通过凌云老师的耐心指导, 和平时老师严格要 求, 使我积累了且学到很多有用的东西。 当然还有同学平时提供的帮助和本次实 验时提供的建议,我由衷的感谢你们。
总而言之,此次课程设计的完成,我的道了好多帮助,再次感谢你们。
参考文献
[1] 李朝青 . 单片机原理及接口技术 [M]. 北京:北京航空航天大学出版社, 1998. 15~17
Li chaoqing.SCM principles and interface technology [M]. Beijing: Beijing Univ- ersity of Aeronautics and Astronautics Press,1998. 15~17
[2] 李勋 . 单片机实用教程 [M]. 北京:北京航空航天大学出版社, 2000.20~27 Li xun. SCM Pratical Guide[M]. BeijiNg:Beijing University of Aeronautics and Astronautics Press,2000.20~27
[3] 王幸之 . 单片机应用系统抗干扰技术 [M]. 北京:北京航空航天大学出版社, 1999.34~38
Wang xingzhi.SCM application system jamming technology[M]. Beijing: Beijing University of Aeronautics and Astronautics Press,1999.34~38
[4] 李全利 . 单片机原理及接口技术 [M]. 第二版 . 北京:高等教育出版社, 2009. 20~29
Li quanli. SCM principles and interface technology [M]. Second Edition. Beijing: Higher Education Press,2009.20~29
[5] 张毅刚 . 单片机原理及应用 [M].第二版 . 北京:高等教育出版社, 2010.145~150 Zhang yigang.SCM Priciples and Applications[M].Second Edition.Beijing: Higher Education Press,2010.145~150
[6] 邹大挺 . 频率计的设计 [J]. 电子产品世界学报, 2006, 193(3):4~7. Zou dating. The design of frequency meter[J].Electronic Engineering & Product World Journal,2006, 193(3):4~7
[7] 雷玉堂 . 光电检测技术 [M]. 杭州:中国计量出版社, 1995.45~49
Lei yutang. Photoelectric detection technology[M]. Hang zhou: China Metrology Publishing House, 1995.45~49
[8] 季建华 . 智能仪表原理 [M]. 山东:山东教育出版社, 2004.201~205
Ji jinhua. Smart Meter principle[M]. Shandong: Shandong Education Press,2004. 201~205
[9] 王永生 . 电子测量学 [M]. 西安:西北工业大学出版社 . 2003.179~182
Wang yongsheng. Electronic surveying[M]. Xi?an: Northwestern University Press, 2003.179~182
[10] 赫建国 . 单片机在电子电路设计中的应用 [M].北京:清华大学出版社, 2005. 30~35
Hao jianguo. SCM application in electronic circuit design[M]. Beijing:Tsinghua University Press,2005.30~35
[11] 刘竹琴 , 白泽生 . 一种基于单片机的数字频率计设计 [ J] . 现代电子技术 , 2010, 20(1):90~96
Liu zhuqin, Bai zesheng. A meter design based on SCM digital frequency [J] modern electronic technology,2010,20(1):90~96
[12] 朱雪枝 , 王学伟 . 自动分频法宽量程频率测量技术及实现 [ J] .北京化工大 大学学报, 2004, 31(1):91~93
Zhu xuezhi,Wang xuewei.Wide range automatic crossover frequency measure- ment technology law and implementation[J].Beijing Chemical large University, 2004, 31(1): 91~93
[13] 梁文海 , 麦文 , 张健 . 一种高精度频率测量的研究与实现 [ J] . 四川师范大 学学报 (自然科学版), 2008,31(3):376~378.
Liang wenhai, Mai wen, Zhangjian. Research and realization of high-precision Frequency measurement[J]. Sichuan Normal Large Science University(Natural Science), 2008,31(3):376~378
[14] A. G. Rinzler, J. H. Hafner, P. Nikolaev, P. Nordlander, D.T. Colbert, R. E.Smally L . Lou, S. G. Kim, and D.Tomá nek. Unraveling nanotubes: field emission from anatomic wire[ J] .Science, 1995, 269: 1550-1553.
[15] J. Kong, N. R. Franklin, C. W. Zhou, M . G . Chapline, S.Peng, K. J. Cho , H. J. Dai. Nanotube Molecular Wires as Chemical Sensors[ J] . Science, 2000, 287: 622~625
附 录
附 录 A :程序
/*项目名称 :计算器 */
/*设 计 者 :段灵福
/*时 间 :2015年 1月 */
/*项目功能 : 设计一个具有特定功能的计算器。该计算器上电或按键复位后能自 动显示系统提示符 “ 0” ,进入准备工作状态。能实现:
基本的加、减、乘、除、平方、。 */
YJ EQU 50H ; 结果存放
YJ1 EQU 51H ; 中间结果存放
GONG EQU 52H ; 功能键存放
ORG 0100H
START: MOV R3,#0 ; 初始化显示为空
MOV GONG,#0
MOV 32H,#00H
MOV 33H,#00H
MOV 34H,#00H
MLOOP: CALL DISP ; 调显示子程序
WAIT: CALL TESTKEY ; 判断有无按键
JZ WAIT
CALL GETKEY ; 读键
INC R3 ; 按键个数
CJNE A,#0,NEXT1 ; 判断是否数字键
LJMP E1 ; 转数字键处理
NEXT1: CJNE A,#1,NEXT2
LJMP E1
NEXT2: CJNE A,#2,NEXT3
LJMP E1
NEXT3: CJNE A,#3,NEXT4
LJMP E1
NEXT4: CJNE A,#4,NEXT5
LJMP E1
NEXT5: CJNE A,#5,NEXT6
LJMP E1
NEXT6: CJNE A,#6,NEXT7
LJMP E1
NEXT7: CJNE A,#7,NEXT8
LJMP E1
NEXT8: CJNE A,#8,NEXT9
LJMP E1
NEXT9: CJNE A,#9,NEXT10
LJMP E1
NEXT10: CJNE A,#10,NEXT11 ; 判断是否功能键 LJMP E2 ; 转功能键处理 NEXT11: CJNE A,#11,NEXT12
LJMP E2
NEXT12: CJNE A,#12, NEXT13
LJMP E2
NEXT13: CJNE A,#13,NEXT14
LJMP E2
NEXT14: CJNE A,#14,NEXT15
LJMP E2
NEXT15: LJMP E3 ; 判断是否清除键 E1: CJNE R3,#1,N1 ; 判断第几次按键 LJMP E11 ; 为第一个数字 N1: CJNE R3,#2,N2
LJMP E12 ; 为第二个数字 N2: CJNE R3,#3,N3
LJMP E13 ; 为第三个数字 N3: LJMP E3 ; 第四个数字转溢出 E11: MOV R4,A ; 输入值暂存 R4 MOV 34H,A ; 输入值送显示缓存 MOV 33H,#00H
MOV 32H,#00H
LJMP M LOOP ; 等待再次输入 E12: MOV R7,A ; 个位数暂存 R7 MOV B,#10
MOV A,R4
MUL AB ; 十位数
ADD A,R7
MOV R4,A ; 输入值存 R4 MOV 32H,#00H ; 输入值送显示缓存 MOV 33H,34H
MOV 34H,R7
LJMP MLOOP
E13: MOV R7,A
MOV B,#10
MOV A,R4
MUL AB
JB OV,E3 ; 输入溢出
ADD A,R7
JB CY,E3 ; 输入溢出
MOV R4,A
MOV 32H,33H ; 输入值送显示缓存 MOV 33H,34H
MOV 34H,R7
LJMP MLOOP
E3: MOV R3,#0 ; 按键次数清零 MOV R4,#0 ; 输入值清零 MOV YJ,#0 ; 计算结果清零 MOV GONG,#0 ; 功能键设为零 MOV 32H,#00H ; 显示清空
MOV 33H,#00H
MOV 34H,#00H
LJMP MLOOP
E2: MOV 34H,#00H
MOV 33H,#00H
MOV 32H,#00H
MOV R0,GONG ; 与上次功能键交换 MOV GONG,A
MOV A,R0
CJNE A,#10,N21 ; 判断功能键
LJMP JIA ;
N21: CJNE A,#11,N22
LJMP JIAN ;
N22: CJNE A,#12,N23
LJMP C HENG ;
N23: CJNE A,#13,N24
LJMP CHU ;
N24: CJNE A,#0,N25
LJMP FIRST ; 首次按功能键 N25: LJMP DEN ;
N4: LJMP E3
FIRST: MOV YJ,R4 ; 输入值送结果 MOV R3,#0 ; 按键次数清零 LJMP DISP1 ; 结果处理
JIA: MOV A,YJ ; 上次结果送累加器 ADD A,R4 ; 上次结果加输入值 JB CY,N4 ; 溢出
MOV YJ,A ; 存本次结果
MOV R3,#0 ; 按键次数清零 LJMP DISP1
JIAN: MOV A,YJ
SUBB A,R4 ; 上次结果减输入值 JB CY,N4 ; 负数溢出
MOV YJ,A
MOV R3,#0
LJMP DISP1
CHENG: MOV A,YJ
MOV B,A
MOV A,R4
MUL AB ; 上次结果乘输入值 JB OV,N4 ; 溢出
MOV YJ,A
LJMP DISP1
CHU: MOV A,R4
MOV B,A
MOV A,YJ
DIV AB ; 上次结果除输入值 MOV YJ,A
MOV R3,#0
LJMP DISP1
DEN: MOV R3,#0
LJMP DISP1
DISP1: MOV B,#10
MOV A,YJ ; 结果送累加器 DIV AB ; 结果除 10
MOV YJ1,A ; 暂存
MOV A,B ; 取个位数
MOV 34H,A ; 个位数送显示缓存 MOV A,YJ1
JZ DISP11 ; 结果是否为一位数 MOV B,#10
MOV A,YJ1
DIV AB
MOV YJ1,A
MOV A,B
MOV 33H,A ; 十位送显示缓存 MOV A,YJ1
JZ DISP11 ; 结果是否为二位数 MOV 32H,A ; 百位数送显示缓存 DISP11: LJMP MLOOP
DISP: CLR P2.3
MOV R0,#34H
DIR1: MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
CJNE R0,#34H,DIR2
SETB P2.0
CALL D1MS
CLR P2.0
DEC R0
SJMP DIR1
DIR2: CJNE R0,#33H,DIR3
SETB P2.1
CALL D1MS
CLR P2.1
DEC R0
SJMP DIR1
DIR3: SETB P2.2
CALL D1MS
CLR P2.2
RET
D1MS: MOV R7,#02H
DMS: MOV R6,#0F0H
DJNZ R6,$
DJNZ R7,DMS
RET
SEGTAB:
DB 0C0H, 0F9H, 0A4H, 0B0H
DB 99H, 92H, 82H, 0F8H
DB 80H, 90H, 88H, 83H
DB 0C6H, 0A1H, 86H, 8EH
TESTKEY:ACALL DISP
MOV P1,#0FH ; 读入键状态 MOV A,P1
CPL A
ANL A,#0FH ; 高四位不用 RET
KEYTABLE:
DB 0EEH,0EDH,0DDH,0BDH ; 键码定义 DB 0EBH,0DBH,0BBH,0E7H
DB 0D7H,0B7H,0DEH,0BEH
DB 07EH,07DH,07BH,077H
GETKEY: MOV R6,#10 ; 读键子程序 ACALL DELAY
MOV P1,#0FH
MOV A,P1
CJNE A,0FH,K12
LJMP MLOOP
K12: MOV B,A
MOV P1,#0EFH
MOV A,P1
CJNE A,#0EFH,K13
MOV P1,#0DFH
MOV A,P1
CJNE A,#0DFH,K13
MOV P1,#0BFH
MOV A,P1
CJNE A,#0BFH,K13
MOV P1,#07FH
MOV A,P1
CJNE A,#07FH,K13
LJMP MLOOP
K13: ANL A,#0F0H
ORL A,B
MOV B,A
MOV R1,#16
MOV R2,#0
MOV DPTR,#KEYTABLE
K14: MOV A,R2
MOVC A,@A+DPTR
CJNE A,B,K16
MOV P1,#0FH
K15: MOV A,P1
CJNE A,#0FH,K15
MOV R6,#10
ACALL DELAY
MOV A,R2
RET
K16: INC R2
DJNZ R1,K14
AJMP MLOOP
DELAY: MOV R7,#10 ;10ms 延时子程序 TS1: MOV R6,#0FFH
TS2: NOP
NOP
DJNZ R6,TS2
DJNZ R7,TS1
RET
END
附 录 B:原理图
附 录 C:PCB版图
附 录 D :元器件清单
元器件名称 规 格 数 目 AT89S52单片机 40P 1 AT89S52单片机芯片锁紧座 40P 1 四位一体共阳数码管 2 四位一体共阳数码管插座 40P 1 74HC573 20P 1 74HC573芯片插座 20P 1 晶振 12MHz 1 发光二极管 9 单排插针 40P 3 三极管 9012 1 蜂鸣器 1 小按键 10 下载口座子 1 六脚按键电源开关 1 USB 电源线 1 USB 电源线插座 1 电阻 200 1 电阻 470 8 电阻 1K 4 电解电容 22uf 2 瓷片电容 33pf 2 排阻 10k 4 排阻 470 1 短路冒 3 杜邦线 8P 1 PCB 板子 1 固定螺钉螺帽 3mm 4 USB 下载线 无需安装驱动程序 1
附 录 E :实物图
简易计算器
齐鲁理工学院
课程设计说明书
题 目 简易计算器设计
课 程 名 称 单片机原理及应用 二 级 学 院 机电工程学院 专 业 电气工程及其自动化 班 级 2014级 学 生 姓 名 王军可 学 号 201410530042 指 导 教 师 王艳玲
设计起止时间:2014 年12月5日至 2014年12月16日
目 录
摘要 .................................................................... 3 1 设计思路 ............................................................. 4 2 原件功能 ............................................................. 4
2.1 运算模块AT89C51 ................................................ 4 2.2 AT89S51的引脚功能 .............................................. 5 2.3 AT89C51的基本操作 .............................................. 6 3 键盘输入 ............................................................. 7 4 液晶模块简介 ......................................................... 8
4.1 LCD1602简介及引脚功能 ........................................... 8 5 程序流程图与总原理图 ................................................. 9
5.1 流程图 ......................................................... 9 5.2 仿真原理图 .................................................... 10 6 结论 ................................................................ 11 参考文献: ............................................................. 11 致谢 ................................................................... 12 附录A 程序编写 ........................................................ 13 附录B 仿真图与原件清单 ................................................ 20
简易计算器设计
摘要:近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。
本设计采用AT89C51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LCD 显示。实例所设计的计算器是用LCD1602显示的,当然也可以用其他的器件显示,如LED 显示屏,这样就可以显示出更多的字符。科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,但在市场还是需要简易计算器,因为其价格低廉,设计简单,使用方便被广泛的运用于我们的日常生活之中。 关键词:AT89C51 LCD1602 单片机 LED
1 设计思路
本次课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于寄存器所存的数据较少,很难实现多位数的四则运算,C 语言确有着解决汇编语言的优点,所以选用C 语言完成该程序的制作,首先运用单片机AT89C51扫描4*4矩阵键盘,从而实现按键的输入功能,键盘的输入是按照每行的电平扫描,并判断按下数字键之后是否有符号键,如果没有则在原数之后添加数字,如果按下符号接收符号后数据,并判断是否有等号键按下,如果按下,则调用运算函数和输出结果。
2 原件功能
2.1 运算模块AT89C51
AT89C51单片机是在一块芯片中集成了CPU 、RAM 、ROM 、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU )、数据存储器(RAM )、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR )。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能,如图所示:
2.2 AT89S51的引脚功能 VCC :供电电压 GND :接地
P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可
吸收8TTL 门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH 编程时,P0口作为原码输入口,当FLASH 进行校验时,P0输出原码,此时P0外部电位必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH 编程和校验时接收高八位地址信号和控制信号
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流,当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0,P3.1串行输出口, P3.2、P3.3 外部中断,P3.4记时器0外部输入,P3.5记时器1外部输入,P3.6外部数据存储器写选通,P3.7外部数据存储器读选通,P3口同时为闪烁编程和编程校验接收一些控制信号。
RST :复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。 PSEN 29 :该引是外部程序存储器的选通信号输出端。当AT89C51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲即两次有效。但访问外部数据存储器时,将不会有脉冲输出。
EA/Vpp 31 :外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使AT89S51只访问外部程序存储器(地址为0000H-FFFFH ), 这时该引脚必须保持低电平。对Flash 存储器编程时,用于施加Vpp 编程电压。 2.3 AT89C51的基本操作
AT89C51复位引脚RST/VP通过片内一个施密特触发器(抑制噪声作用) 与片内复位电路相连,施密特触发器的输出在每一个机器周期由复位电路采样一次。当振荡电路工作,并且在RST 引脚上加一个至少保持2个机器周期的高电平时,就能使AT89C51完成一次复位。
复位不影响RAM 的内容。复位后,PC 指向0000H 单元,使单片机从起始地址0000H 单元开始重新执行程序。所以,当单片机运行出错或进入死循环时,可按复位键重新启动。
3 键盘输入
当无按键闭合时,P10~P13 与P14~P17 之间开路;当有键闭合时,与闭合键相连的两条I/O 口线之间短路。判断有无按键按下的方法是:第一步,置列线P14~P17 为输入状态,从行线P10~P13 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P14~P17 读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率,如图所示:
每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU 通信。键盘的一端(列线)通过电阻接VCC ,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并
行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
4 液晶模块简介
4.1 LCD1602简介及引脚功能
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD ,目前常用16*1,16*2,20*2和40*2行等的模块。
主要技术参数:显示容量:16×2个字符芯片,工作电压:4.5—5.5V ,工作电流:2.0mA(5.0V),模块最佳工作电压:5.0V,字符尺寸:2.95×4.35(W×H)mm 第1脚:VSS 为地电源。 第2脚:VDD 接5V 正电源。
第3脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K 的电位器调整对比度。 第4脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS 和R/W共同为低电平时可以写入指令或者显示地址,当RS 为低电平R/W为高电平时可以读忙信号,当RS 为高电平R/W为低电平时可以写入数据。
第6脚:E 端为使能端,当E 端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。
5.2 仿真原理图
6 结论
经过近两个周的努力,我终于顺利完成了简易计算器的制作。刚开始,我们头绪不是很清楚,不知道从哪里入手,但通过老师前两天的4*4键盘和液晶显示屏使用的讲解,渐渐的有了一些头绪,上网查资料、确定基本设计方案、对AT89C51芯片功能进行查找、调试、仿真等,经历了一次次的困难,却积累了很多宝贵的经验。在整个设计的过程中遇到的问题主要有以下三点,第一:基础知识掌握的不牢固,主要表现在一些常用的电路的形式和功能不清楚,对书本上的内容理解不够透彻。第二:对一些常用的应用软件缺少应用,体现在画电路图和系统的仿真的时候,对这些软件的操作不熟练,浪费了很多时间。第三:相关知识掌握的不够全面,缺少系统设计的经验, 不论的程序图片还是程序都出错了很多次,走了许多弯路。
这次的实训让我学到了很多,也学会到了要怎么样去面对困难,不要对知识一知半截,要有的求实的能力,在现在信息爆炸的时代,只要你愿意去探索,去寻找有什么是理解不了的呢,用心才是最主要的,通过这次我要更加的明确自己。更要注重自己在各方面的锻炼能力,把握机会。这次的课程设计非常感谢对我严厉的辅导老师,是她让我成长,也感谢帮助我走出困惑的同学,在日后的学习中,我会勤思考,打好扎实的理论知识。
参考文献:
[1] 郑燕. 陈小艳. 朱成彪.C 语言程序设计[J]. 东北大学出版社,2014,7(1) [2] 张毅刚. 单片机原理及应用[J] . 高等教育出版社,2015,9(5)
致谢:
这次课程设计中我最大的体会就是进一步认识到了理论联系实践的重要性,一份耕耘,一份收获。通过短短两周时间的设计,让我明白科学的思维方法和学习方法是多么重要,只有这样才能够有很高的效率,才能够让自己的工作更完美,设计图中经历了许多困难,感谢老师与小组同学的帮助,使得这次设计得以进行并完成,再次十分感谢老师与小组同学。
附录A 程序编写
#include void shortdelay(uchar i)//短延时 { for(;i>0;i--); } //长延时 void longdelay(uint i) { uint j; for(;i>0;i--) {for(j=100;j>0;j--);} } //延时程序 void delay(int i) {int j; for(;i>0;i--) for(j=0;j<100;j++);>100;j++);> //初试状态 void io_init() {P1=0xff; } //--------------------------键盘扫描部分-----------------------------// unsigned char key_scan() { unsigned char key; unsigned char temp; uint flag; io_init(); P1=0xf0; flag=0; loop: temp=P1^0xf0; while(temp) { P1=0xfe; delay(1); if((P1&0xfe)!=0xfe) switch(P1) { case 0xee: key=0x11;flag=1;break; case 0xde: key=0x12;flag=1;break; case 0xbe: key=0x13;flag=1;break; case 0x7e: key=0x14;flag=1;break; } if(flag) goto exit; else P1=0xfd; delay(1); if((P1&0xfd)!=0xfd) switch(P1) { case 0xed: key=0x21;flag=1;break; case 0xdd: key=0x22;flag=1;break; case 0xbd: key=0x23;flag=1;break; case 0x7d: key=0x24;flag=1;break; } if(flag) goto exit; else P1=0xfb; delay(1); if((P1&0xfb)!=0xfb) switch(P1) { case 0xeb: key=0x31;flag=1;break; case 0xdb: key=0x32;flag=1;break; case 0xbb: key=0x33;flag=1;break; case 0x7b: key=0x34;flag=1;break; } if(flag) goto exit; else P1=0xf7; delay(1); if((P1&0xf7)!=0xf7) switch(P1) { case 0xe7: key=0x41;flag=1;break; case 0xd7: key=0x42;flag=1;break; case 0xb7: key=0x43;flag=1;break; case 0x77: key=0x44;flag=1;break; } exit: return key; } if(temp==0) goto loop; } //---------------------------------键盘扫描完--------------------------------------------// //---------------------------------显示初始化----------------------------------------// //P0口初始化 void initpindata(bit i) { if(i==1) pindata=0xff; else pindata=0X00; } //寄存器选择信号 void setRS(bit i) { if(i==1) pinRS=1; else pinRS=0; } //读写操作控制 void setRW(bit i) { if(i==1) pinRW=1; else pinRW=0; } //使能信号 void setE(bit i) { if(i==1) pinE=1; else pinE=0; } //读BF 以及AC 的值 uint read_BF_AC() { uint temp; initpindata(1); setRS(0); setRW(1); setE(1); shortdelay(1); temp=pindata; shortdelay(10); setE(0); return(temp); } //判忙 bit statuscheck() { return((bit)(read_BF_AC()&0x80)); } //写指令函数 void writeinstruc(uint instruc) { while(statuscheck()); initpindata(0); setRS(0); setRW(0); setE(0); pindata=instruc; //short delay(1); setE(1); shortdelay(10); setE(0); } //写数据到RAM void writedata(uint data1) { initpindata(0); setRS(1); setRW(0); setE(0); pindata=data1; setE(1); shortdelay(10); setE(0); } //从RAM 中读数据函数 uint readdata(void) { uint temp; initpindata(1); setRS(1); setRW(1); setE(1); shortdelay(1); temp=pindata; shortdelay(10); setE(0); return(temp); } //显示程序 X 为行号,Y 为列号,date 为要显示的数据 void dispcharacter(int x,uint y,uint data1) { uint temp; while(statuscheck()); temp=y&0x0f; x&=0x01; if(x) temp|=0x40; setDDRAM_Add(temp); writedata(data1); // writedata(data1); } //LCD复位函数 void LCDreset() { clearscreen(); cursorreturn(); } //LCD初始化 void initLCD() { LCDreset(); inputmode(0x06);//增量方式,不移位 dispcontrol(0x0c);//显示开,光标关,闪烁关 functionset(0x38);//8位,2行,5*7 } //-----------------------------------准备工作完成-----------------------------------// //-----------------------------------计算器-----------------------------------------// compute(char key1,i) { signed char m,n,c,act; long int num1,num2,result; signed char str[4][4]={{'7','8','9','/'}, {'4','5','6','*'}, {'1','2','3','-'}, {'c','0','=','+'}}; signed char str1[11],string1[2]; m=(key1&0xf0); m=m/16; m=m-1; n=key1&0x0f; n=n-1; c=str[m][n]; sprintf(string1,"%c",c); strcat(str1,string1); if((c=='+')||(c=='-')||(c=='*')||(c=='/')) { act=c; num1=atoi(str1); memset(str1,0,11); memset(string1,0,2); } if(c=='=') { num2=atoi(str1); switch(act) { case'+':result=num1+num2;break; case'-':result=num1-num2;break; case'*':result=num1*num2;break; case'/':result=num1/num2;break; } } if(c=='c') { act=0; num1=str1[0]; num1=str1[8]; memset(str1,0,11); memset(string1,0,2); num1=str1[0]; num1=str1[8]; } longdelay(350); switch(key1) {case 0x11: dispcharacter(0,i,'7');i++;break; case 0x12: dispcharacter(0,i,'8');i++; break; case 0x13: dispcharacter(0,i,'9');i++; break; case 0x14: dispcharacter(0,i,'/');i++;break; case 0x21: dispcharacter(0,i,'4');i++;break; case 0x22: dispcharacter(0,i,'5');i++;break; case 0x23: dispcharacter(0,i,'6');i++;break; case 0x24: dispcharacter(0,i,'*');i++;break; case 0x31: dispcharacter(0,i,'1');i++;break; case 0x32: dispcharacter(0,i,'2');i++;break; case 0x33: dispcharacter(0,i,'3');i++;break; case 0x34: dispcharacter(0,i,'-');i++;break; case 0x41: clearscreen(); break; case 0x42: dispcharacter(0,i,'0');i++;break; case 0x43: dispcharacter(0,i,'=');i++; m=result/10000; result=result%10000; if(m!=0||result==0) { n=0; m=m+'0'; dispcharacter(0,i,m);i++; } m=result/1000; result=result%1000; if(m!=0||n==0) { m=m+'0'; n=0; dispcharacter(0,i,m);i++; } m=result/100; result=result%100; if(m!=0||n==0) { m=m+'0'; n=0; dispcharacter(0,i,m);i++; } m=result/10; result=result%10; if(m!=0||n==0) { m=m+'0'; n=0; dispcharacter(0,i,m);i++; } m=result; if(m!=0||n==0) m=m+'0'; dispcharacter(0,i,m);i++;break; case 0x44: dispcharacter(0,i,'+');i++;break; } return(i); } //---------------------------------------------------------------------------------// //-------------------------------------主函数---------------------------------------// void main() { char key1,i; start:initpindata(0); P2=0X00; initLCD(); i=0; scan:key1=key_scan(); i=compute(key1,i); if(key1==0x41) goto start; else goto scan; } 附录B 仿真图与原件清单 仿真结果图: 元件清单: 手指计算器 张小虎背诵九九乘法表,“9”的口诀记不牢。老师说:“那你就用计算器吧。”小虎诧异地问:“计算器在哪儿呢,”老师笑着回答:“你的手就是一个最简单的计算器啊~” 手怎么能代替计算器呢,你看,小虎正在试着运算呢~你会吗, 老师请小虎将两手伸出来,十个手指从左到右为1、2、3、……10。如果要算某个一位数×9,只要弯曲起相应的手指,此手指左边的手指数目就是积的十位数,右面的手指数目为个位数。 例如6×9弯起第六个手指,此时左面5个手指代表50,右面的4个手指代表4,所以6×9的积是54。小虎试了试,很快就把“9”的口诀记住了。 小虎后来又问:“要是16×9呢,”老师说:“那就复杂一些了。如果计算16×9,还是弯起第六个手指, 不过这时左边第一个手指代表百位数100,算十位数字时它不再计入,余下的四个手指是积的十位数,右边的手指仍表示积的个位数字, 即16×9,144。 如果是26×9前两位手指代表百位数,要是36×9,前三个手指代表百位数,方法同上并依此类推,实际上,9乘以某一个两位数,只要这个两位数的十位数比个位数小,都可以用手指帮助计算,但如果这个两位数的个位正好比十位数上的数字多一,如9×34,306。 那末这弯曲的手指应该是十位数,应读做零,左边三个手指为百位数。”听完老师的讲解,同学们你们会用手指计算了吗,手指计算器