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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(个人所得税.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

个人所得税.docx

1、个人所得税课程设计报告课程名称:单片机原理及应用课程设计设计项目 个人所得税计算器 院系 信息学院 专业 电子信息工程 班级 电信二班 学生姓名 学号 起止日期 指导老师 成绩评定项目权重成绩1设计过程中出勤,学习态度0.22课程设计质量与答辩0.53设计报告书写与图纸规范0.3总成绩指导教师评语: 指导老师签名: 年 月 日目录1 摘要.42 系统设计.42.1 设计要求.4.2.2 主控芯片的简介.43 单元电路设计与计算.53.1 主控电路硬件的设计.53.5 按键电路设计.53.6 各电路图样.54 软件设计.54.1 软件设计思路.54.2 软件设计原理图.55程序设计.65.1 程

2、序调试需要用到的工具.65.2 调试过程.65 设计总结.6参考文献.6附录.6 一 摘要单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,他已广泛的应用到我们生活中的各个领域,电子、科技、通信、汽车、工业等。我们这次设计的个人所得税计算器也是利用单片机制作而成的。该计算器设计师采用C语言编写,实现了个人所得税的运算,比较实用和方便。该设计电路是采用STC89C52单片机为主要控制电路,然后使用驱动电路驱动六位LED数码管现实数据,利用44矩阵键盘完成电路的实际操作,电路比较简单,但是很使用方便。关键词:单片机;个人所得税计算器;STC89C52单片机;串行通信;数码

3、管显示;键盘扫描二 系统设计2.1设计要求 1、通过键盘输入个人收入情况; 2、按确定键后,通过串口将个人所得税的值显示到电脑上; 3、最大收入值为99999元; 2.2 主控芯片简介 AT89C52是一个低电压,高性CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。 3单元电路设计与计算 3.1主控电路硬件的设计主控电路在整

4、个的系统中充当着最重要的角色,它在整个系统中起到了系统宏观调节的作用,首先主控电路要通过通信接收来自取号机的数据,将客户的取号存入系统之中,同时主控电路还要实时接收来自服务窗口的数据。对于来自窗口的请求数据,主控芯片接收后立即处理,判断之后将对应的客户号码发送到服务窗口和大厅的显示屏及语音系统。强大的通信及数据处理就要求主控电路要有强大的处理能力,才能时刻保持整个系统的运行畅通,不会出现数据丢失或发生错误等现象。完成本次课程设计所需主控芯片有多种多样。说明如下:(1)STC89C52RC:该芯片是采用8051核的ISP在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反

5、复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C52RC系列单片机是单时钟/机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/精简指令集结构,内部集成MAX810 专用复位电路。(2)STC12C5410AD:宏晶公司出款的STC12C5410AD单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,兼容传

6、统的8051数据指令代码,但提高了8-10倍的速度。内部使用了MAX810专用复位电路。程序存储空间10K,片上集成512字节RAM。包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时计数器、UART串口、I/O接口、高速AD转换、SPI接口、PCA、看门狗及片内R/C震荡器和外部晶振体振荡电路等模块。STC89C52系列单片机具有完整的功能模块,对89C52系列单片机有学习基础,理解使用方便,且能够完成基本的实验操作,STC89C52系列内含三个定时器中断,两个外部中断,一个串口中断,比STC89C51多一个定时器2,定时器数量更能满足要求,所以本系统中主控电路

7、采用的是STC公司出款的STC89C52RC单片机。根据设计要求STC89C52RC单片机最小系统如图 6所示: 图 6单片机最小系统 3.3 按键电路设计图 11单片机独立按键电路如图 11所示:我们的按键电路采用的是独立式键盘,此设计方便设计,K1,K2,K3,K4,一边端口右接GND,另外一边分别连接单片机的I/O端口。独立键盘判键速度快,便于顾客叫号时等待时间短,硬软件结构简单,利于我们设计者设计。当一个按键按下时,对应I/O的口就得到了一个低电平。四 软件设计4.1 软件设计思路初始化串口 设置显示数码管按键检测设置数据确认按键是否按下输出数据到串口4.2 软件设计原理图 图、LED

8、显示及驱动电路 图、单片机电路 图、矩阵按键电路 五 程序设计 5.1 程序调试需要用到的工具 元件名称类型或量程数量芯片Rst89C521片5.2 调试过程 将用keil编译产生的HEX文件下载到单片机开发板中,通过外围电路接入一个已知的被测电阻,看数码管上的显示数值是否接近已知的电阻值,若不对,则反复调试程序,直到正确为止。AD的分辨率只有八位,分辨率小,所以测量小电阻的时候误差小,随测量电阻的变大误差变大。六 设计总结这次单片机课程设计意义非同一般,把我们从单深入的理论编程到硬件软件综合实现一个使用的电路。通过这学期的单片机的学习,知道了单片机在实际应用中占据很重要的作用,也了解单片机本

9、身的功能,用编程控制;也了解了单片机的一些扩展功能。通过这次设计,我们更深入地了解到单片机的使用原理和功能。为期两周的设计中,我们看到很多同学都很努力,很认真,我们也不敢懈怠。虽说时间有点仓促,但老师和同学们夜以继日在解决问题,我们做电阻测量的设计中也遇到些许问题,但通过他人的指点,并查阅很多有价值的书籍,我们从中认识了不少。也增强了我们自己发现问题解决问题的能力。还有在编程的时候要仔细,要实现一个完整的功能就要考虑全面,在测试程序的时候要善于发现错误,而且可能是一些小问题,比如说把立即数和地址混用,这是很常见的。两周的设计完满结束了,经过我们自己的努力和同学的帮忙终于有了成果,特别离不开指导

10、老师的悉心教导,我受益匪浅,相信他的工作作风和知识筑成都是我们学习榜样,给我很大的启迪。感谢这些老师不畏辛劳,热心精心的指导。在这里向他们说声谢谢,你们辛苦了。参考文献1 谢四连.单片微机原理与应用.附录#include #define uchar unsigned char#define uint unsigned int char ledcode=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E; sbit ADDR0=P10;sbit ADDR1=P11;sbit ADDR2=

11、P12;sbit ADDR3=P13;sbit ENLED=P14;sbit hang1=P23;sbit hang2=P22;sbit hang3=P21;sbit hang4=P20;sbit lie1=P24;sbit lie2=P25;sbit lie3=P26;sbit lie4=P27;unsigned long sui;uchar xianshi5;void delay_ms(unsigned int cnt);uchar keyscan() /键盘检测 uchar num=0xff; hang1=0; if(lie1=0) delay_ms(10); if(lie1=0) nu

12、m=1; if(lie2=0) delay_ms(10); if(lie2=0) num=2; if(lie3=0) delay_ms(10); if(lie3=0) num=3; hang1=1; hang2=0; if(lie1=0) delay_ms(10); if(lie1=0) num=4; if(lie2=0) delay_ms(10); if(lie2=0) num=5; if(lie3=0) delay_ms(10); if(lie3=0) num=6; hang2=1; hang3=0; if(lie1=0) delay_ms(10); if(lie1=0) num=7; i

13、f(lie2=0) delay_ms(10); if(lie2=0) num=8; if(lie3=0) delay_ms(10); if(lie3=0) num=9; hang3=1; hang4=0; if(lie1=0) delay_ms(10); if(lie1=0) num=0; if(lie2=0) delay_ms(10); if(lie2=0) num=10; if(lie3=0) delay_ms(10); if(lie3=0) num=11; hang4=1; return num; void shumaguan() /在数码管上显示 ADDR0=0; ADDR1=0; A

14、DDR2=0; P0=xianshi0;delay_ms(2); P0=0xff; ADDR0=1; ADDR1=0; ADDR2=0; P0=xianshi1; delay_ms(2); P0=0xff; ADDR0=0; ADDR1=1; ADDR2=0; P0=xianshi2;delay_ms(2); P0=0xff; ADDR0=1; ADDR1=1; ADDR2=0; P0=xianshi3; delay_ms(2); P0=0xff; ADDR0=0; ADDR1=0; ADDR2=1; P0=xianshi4;delay_ms(2); P0=0xff; unsigned lon

15、g sheding;unsigned long shuju10; void fasong(unsigned char x)/发送到串口 SBUF = x; while(!TI); TI = 0; void main() uchar key_temp; ADDR3=1; ENLED=0; SCON=0x50; /串口初始化 PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd; TI=0;RI=0; TR1=1; while(1) xianshi4=ledcodesheding/10000; xianshi3=ledcodesheding/1000%10; xians

16、hi2=ledcodesheding/100%10; xianshi1=ledcodesheding/10%10; xianshi0=ledcodesheding%10; key_temp=keyscan(); if(key_temp!=0xff) if(key_temp=11) sheding=0; shuju0=0; shuju1=0; shuju2=0; shuju3=0; shuju4=0; if(key_temp=9) shuju0=shuju1; shuju1=shuju2; shuju2=shuju3; shuju3=shuju4; shuju4=key_temp; shedin

17、g=shuju0*10000+shuju1*1000+shuju2*100+shuju3*10+shuju4; if(key_temp=10) if(sheding0) sui=sheding*0.03+0; else sui=0; else if(sheding1500)&(sheding4500)&(sheding9000)&(sheding35000)&(sheding55000)&(sheding80000) sui=sheding*0.45-13505; fasong(sui/10000+0x30); fasong(sui/1000%10+0x30); fasong(sui/100%10+0x30); fasong(sui/10%10+0x30); fasong(sui%10+0x30); fasong(32); while(keyscan()!=0xff); shumaguan() ; void delay_ms(unsigned int cnt) / 延时 unsigned char i; while(cnt-) for(i=0; i=110; i+);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1