个人所得税计算器Word格式文档下载.docx
《个人所得税计算器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《个人所得税计算器Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
2.3键盘控制电路设计4
2.4数码管显示电路设计4
3系统程序设计5
3.1主程序设计5
3.2LED显示程序设计7
4调试及性能分析9
4.1硬件调试9
4.2软件调试9
4.3性能分析9
5详细仪器清单10
6总结与思考11
7致谢12
参考文献13
附录一:
个人所得税计算器的PCB板14
附录二:
程序15
设计要求
利用单片机作为控制核心,设计出个人所得税计算器,具有以下功能:
(1)具有计算个人所得税功能;
(2)从键盘输入数值并显示数值,数值范围在0~99999;
(3)当按下等号键时输出并显示结果;
(4)当按下复位按钮数码管清零。
1方案论证与对比
数码管显示是本设计主要的部分。
根据需要,可采用两种方案实现,即静态显示法和动态显示法。
1.1数码管显示方案一
方案一如图1所示:
静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
图1数码管静态显示框图
1.2数码管显示方案二
方案二如图2所示:
动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也与点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O口,降低了能耗。
由于静态现实法需要数据锁存器等硬件,接口复杂一些,又考虑到时钟显示只有5位,且系统没有其他的处理任务;
并且从节省I/O口和降低能耗出发,所以决定采用动态扫描法实现LED的显示,即采用方案二。
图2数码管动态显示框图
2单元电路设计与计算
2.1电源部分的设计
电源电路包括变压器、桥式整流器、电容和稳压器。
通过变压器变压,使得220V电压变为5V,在通过桥式整流,电容的滤波作用,稳压器的稳压作用,可输出5V的稳定电压。
如图3所示,从外部引入5V的直流电,为单片机和复位电路提供电源。
图3+5v电源模块电路图
2.2复位电路的设计
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
单片机的复位是靠外电路来实现的,复位操作有两种情况,即上电复位和手动(开关)复位。
本系统采用上电复位方式。
上电复位:
上电复位电路时一种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够才的时间。
上电自动复位是通过外部复位电路的电容充电来实现的。
只要VCC的上升时间不超过1ms,就可以实现自动上电复位。
如图4所示:
图4复位电路
2.3键盘控制电路设计
该设计需要显示按键输入和结果输出,当按下数值马上显示,按下等号输出计算结果,当按下复位按钮计算器清零。
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能到达稳定,这一过程是出于高、低电平的一种不稳定状态,称为抖动。
抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。
很容易想到,抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms,而抖动问题不解决就会引起对闭合键的识别。
用软件方法可以很容易地解决抖动问题,通过延迟10ms。
单片机系统中键盘中按钮数量较多时,为了减少I/O口的占用,常常将按钮排列成矩阵形式,这样可以更合理的利用硬件资源。
矩阵式键盘是指由若干个按键组成的开关矩阵。
4行4列矩阵式键盘连接图如图5所示。
这种键盘适合采取动态扫描的方式进行识别,也就是说,如果采用低电平扫描,回送线必须被拉上高电平,反之亦然。
图5键盘控制电路
2.4数码管显示电路设计
数码管显示器成本低,配置灵活,与单片机接口简单,在单片机应用系统中广泛应用。
数码管工作原理:
数码管是由8个发光二极管构成的显示器件。
在数码管中,若将二极管的阳极连在一起,称为共阳极数码管,若将二极管的阴极连在一起,称为共阴极数码管。
我们单片机板上的6个数码管均是共阳极的,当发光二极管导通时,它就会发光。
每个二极管就是一个笔划,若干个二极管发光时,就构成了一个显示字符。
将单片机的I/O口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由I/O口输出不同的代码,就可以控制数码管显示不同的字符。
本文的5个数码管均采用动态显示方式,显示当前的数值。
数码管显示电路如图6所示:
图6数码管显示电路
3系统程序设计
3.1主程序设计
主程序首先进行初始化,设定一些变量及其意义,扫描键盘,当输入有0~99999数字时,通过键盘的扫描程序,将数值赋给MONEY并在显示器上来,当按下等号时,跳到运算部分,通过判断MONEY的值,进行不同的运算,应纳个人所得税税额=(应纳税所得额-扣除标准)*适用税率-速算扣除数。
不超过500元的,税率5%,速算扣除数为0;
超过500元至2000元的部分,税率10%,速算扣除数为25;
超过2000元至5000元的部分,税率15%,速算扣除数为125;
超过5000元至20000元的部分,税率20%,速算扣除数为375;
超过20000元至40000元的部分,税率25%,速算扣除数为1375;
超过40000元至60000元的部分,税率30%,速算扣除数为3375;
超过60000元至80000元的部分,税率35%,速算扣除数为6375;
超过80000元至99999元的部分,税率40%,速算扣除数为10375。
输出并显示结果到数码管上,其主程序流程图如图7所示。
图7主程序流程图
3.2LED显示程序设计
LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED显示器,器排列形状如图8所示:
图8七段LED显示器
为了显示数字或符号,要为LED显示器提供代码,即字形代码。
七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。
简易计算器用到的数字0~9的共阴极字形代码如下表:
表1八段数码管共阴极字形代码
显示字型
g
c
dp
d
e
b
f
a
段码
1
a0h
bbh
2
62h
3
2ah
4
39h
5
2ch
6
24h
7
bah
8
20h
9
28h
6位LED显示的程序流程图如图9所示:
图9LED显示流程图
4调试及性能分析
4.1硬件调试
硬件调试时可以检查印制板及焊接的质量情况,在检查无误的后可通点检查LED显示器的点亮状况。
若亮度不理想,可以调整P0口的电阻大小,一般情况下取200Ω
电阻即可获得满意的亮度效果。
实验室制作时,可结合示波器测试晶振及P0、P2端口的波形情况进行综合硬件测试分析。
4.2软件调试
根据上述需求分析得出的思路,进行C语言程序的编写。
C语言程序一共分为三个部分:
第一部分是STC89C52芯片的初始化;
第二部分是8255可编程计数芯片的初始化;
第三部分是模块的编写。
个人所得税计算器的设计过程中一共有三个模块:
1运算模块、2数码管显示模块、3键盘扫描模块。
软件调试在KeilC51编译器下进行,源程序编译及仿真调试应分段或以子程序为单元逐个进行,最后可结合硬件实时调试。
4.3性能分析
设计之初的思路是选择个人所得税区间分化分放在一个内存中,通过查表的方法去的各区间的运算方式,这样在计算个人所得税计算器的设计上将变得简单。
由键盘输入可以实现0~99999的个人所得税的计算,按等号可以显示输出结果,输入时符合输入习惯,键盘排布如图10所示,没有再发现漏洞。
发现的问题如何知道之前键入的字符,以便处理当前键入字符,加入标记就能通过查看标记值得知之前键入字符。
长按会连续送数,加一条命令while((P3&
0xf0)!
=0xf0)可等待按键放开后才继续。
=
图10键盘排布
5详细仪器清单
表2器件清单
仪器名称
数量
STC89C52
1个
LED数码管
5个
8255并口
按键SW-SPST
16个
三极管9015
电容104
4个
DS1302芯片
电池
30PF电容
4个
晶振XTAL
电源USB接口
发光二极管
12M晶振
电阻1k
50个
6总结与思考
通过此次课程设计不仅加深了对单片机的理论知识的理解,更为主要的是加强了动手实践能力。
单片机是一门理论和实践都非常强的学科,仅仅看书学理论知识并不能真正的理论,更不能提高实践能力,只要将理论和实践相结合才能真正的掌握知识。
我们在这次个人所得税计算器的课程设计中受益匪浅。
通过对自己这一学期来所学知识的回顾,并充分发挥对所学知识的理解和对课程设计的思考及书面表达能力,最终完成了。
这对自己今后进一步深化学习,积累了一定宝贵的经验。
撰写论文的过程也是专业知识的学习过程,同时强化了自己的动手能力,对PCB软件,作图软件,仿真等软件更加熟练。
对程序和硬件电路的调试也有了很大的提高。
它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。
让我们知道了理论和实际的距离,也知道了理论和实际相结合的重要性。
由于接触单片机课程的时间尚短,专业知识还不扎实,在编写程序时难免受阻,要常翻阅课本查阅资