单片机课程设计报告
单片机课程设计数字钟实验报告

单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。
2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。
3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。
4、能够实现按键启动与停止功能。
5、能够实现整点报时功能。
6、能够实现秒表功能。
二、设计思路1、芯片介绍VCC:电源。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,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 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
单片机课程报告设计--交通信号灯模拟控制系统设计

单片机课程报告设计题目:交通信号灯模拟控制系统设计专业:电子信息科学与技术班级:学号:姓名:指导老师:年月日※※※※※※前言※※※※※※本课程设计的目的和意义本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。
该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。
*******目录*******一、设计要求二、设计内容三、交通信号灯模拟控制系统设计程序流程图四、交通信号灯模拟控制系统原理图五、交通信号灯模拟控制系统主程序六、运行步骤七、检测与调试八、课程设计体会九、参考文献十、说明一、设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。
用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
二、设计内容:因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西红灯,南北绿灯通车,。
过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。
最后循环至状态1。
注意:.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
三、交通信号灯模拟控制系统设计程序流程图四、交通信号灯模拟控制系统主程序ORG 0000HSJMP A3ORG 0030HA3: MOV SP,#60H ;设栈指针初值MOV A, #24HMOV P1, ASETB P3.2CLR P3.3CLR P3.4SETB P3.5 ;全部红灯亮MOV R4,#00H ;显示0秒MOV R7,#00H ;显示0秒MOV R2,#03HLCALL XI ;调用子程序A2 : MOV A,#0CHMOV P1,ASETB P3.2SETB P3.3CLR P3.4CLR P3.5 ;东西红灯,南北绿灯MOV R4,#14H ; 显示20秒LOOP2 : MOV R2,#03HLCALL XIDJNZ R4,LOOP2 ;判断20秒显示时间到否MOV R2,#03HLCALL XILOOP8: MOV R2,#03H ;南北黄灯闪3次LCALL XIMOV R4,#05H ;设南北黄灯亮长显示5秒SETB P3.2CLR P3.3A1: MOV A,#14HMOV P1 ,ASETB P3.4CLR P3.5 ;东西红灯,南北黄灯MOV R2,#01H ;定时LCALL DELAY ;调用延时子程序MOV A ,#04HMOV P1 ,ACLR P3.4CLR P3.5 ;东西红灯,南北不亮即意思要南北黄灯闪烁MOV R2 ,#01H ;定时LCALL DELAYDJNZ R4,LOOP8 ;判断南北黄灯闪烁,显示5秒到否?MOV A, #61HMOV P1,ACLR P3.2CLR P3.3CLR P3.4SETB P3.5 ;东西绿灯,南北红灯MOV R4,#14H ;显示20秒LOOP3:MOV R2,#03HLCALL XIDJNZ R4,LOOP3 ;判断20秒显示时间到否MOV R7,#05H ;设东西黄灯亮长显示5秒SETB P3.5A0: MOV A,#0A2HMOV P1,ACLR P3.2CLR P3.3CLR P3.4 ;东西黄灯,南北红灯MOV R2,#01H ;定时LCALL DELAYMOV A,#20H ;MOV P1,ACLR P3.2CLR P3.3CLR P3.4 ;南北红灯,东西不亮即意思要东西黄灯闪烁MOV R2,#01H ;定时LCALL DELAYDJNZ R7,A0 ;判断东西黄灯闪烁,显示5秒到否?LJMP A2 ;循环回状态1,即东西红灯,南北黄灯DELAY: PUSH 2PUSH 1PUSH 0 ;进栈DELAY1: MOV 1,#00HDELAY2:MOV 0,#0B2HDJNZ 0,$ ;判断是否运行完0B2HDJNZ 1,DELAY2DJNZ 2,DELAY1POP 0POP 1POP 2 ;出栈DJNZ R2 ,DELAY ;判断R2是否运行完RET ;返回主程序XI: MOV A,R4MOV B,#10DIV ABMOV R6,AMOV DPTR,#TABMOV A,BMOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S: DJNZ R7,H55SMOV A,R6MOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S1: DJNZ R7,H55S1LCALL DELAYRETTAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0hDB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8ehEND五、交通信号灯模拟控制系统原理图设计的连线图提示:(1) 完整的DVCC实验箱面板(2)硬件电路连接说明六、运行步骤:①8051 P1.0—P1.7、P3.2—P3.5依次接发光二极管L1—L12。
单片机课程设计 报告

《单片机应用设计报告》系别电子信息与电气工程系专业自动化班级 09 级 (1) 班姓名王杰王典老师储忠完成时间 2012年5月18日单片机原理及接口技术课程设计报告摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
MCS-51单片机是使用极为广泛的一款8位单片机,在此次实训中所用的单片机是美国Atmel公司生产的以8031为内核的AT89S52单片机。
实训分别以构建单片机最小系统版、74HC138流水灯、8255交通灯、8253方波、6N137光耦控制继电器等几个实验关键词:AT89S52 74HC138 8255A 8253 6N137 交通灯目录单片机原理及接口技术课程设计报告 (1)实验一构建单片机最小系统和实验环境熟悉 (3)1.1单片机的工作原理 (3)1.1.1单片机最小系统图 (3)1.1.2运算器简介 (4)1.1.3控制器简介 (5)1.1.4实验解析与总结 (7)实验二跑马灯实验及74HC138译码器 (7)2.1实验内容 (7)2.1.1实验原理 (8)2.1.2实验原理图 (8)2.1.3实验程序流程图 (9)2.1.4实验程序代码 (9)2.1.5完成后的效果图 (10)2.2实验总结 (10)实验三8255控制交通灯实验 (11)3.1实验内容 (11)3.1.3实验原理 (11)3.1.2实验原理电路图 (12)3.1.3程序流程图 (13)3.1.4实验程序代码 (13)3.1.5系统实现图 (15)3.2 8255A寻址原理 (15)3.3实验总结 (16)实验四8253方波实验 (17)4.1实验内容 (17)4.1.1实验原理图 (17)4.1.2实验原理电路图 (17)4.1.3程序流程图 (18)4.1.4程序流程代码 (19)4.1.4系统仿真 (20)4.2实验总结 (21)实训总结 (21)附录 (22)1 实验源程序 (22)2仿真系统电路原理图 (27)3硬件实物照片 (27)实验一构建单片机最小系统和实验环境熟悉1.1单片机的工作原理1.1.1单片机最小系统图单片机最小系统主要有外部晶振电路,系统复位电路以及供电电源组成。
单片机课程设计报告

JIUJIANG VOCATIONAL AND TECHNICAL COLLEGE 电气工程学院课程设计报告课程名称:单片机技术与应用设计题目:双边拉幕灯控制班级:航电1901姓名:许江勇学号: 192026266指导教师:徐云龙完成时间: 2021.1.6二〇二一年一月双边拉幕灯控制1.1设计目的1)掌握单片机开关与led接口电路设计,软件延时程序;2)学会程序的调试过程与仿真方法,i/o口应用程序分析。
1.2设计任务本设计为一个89c51单片机控制8个led发光管进行“双边拉幕灯控制”运行,led1~led4为模拟的左边幕,led5~led8为模拟的右边幕。
该课程设计的具体功能为:当系统上电运行时,模拟左右两边幕的led灯同时由两边向中间逐一点亮,当全部亮后,再同步由中间向两边逐一熄灭。
以此往复循环运行,形成“双边拉幕灯”效果。
开关s2用于系统的运行和停止控制,当其闭合时,系统工作;当其断开时,系统暂停处于当前状态。
1)keil和proteus联合调试,完成仿真并实现设计任务;2)完成设计报告,内容包括proteus电路、流程图、c程序。
1.4硬件系统与控制流程分析。
双边拉幕灯控制系统进行软硬件设计。
1.4.1硬件分析对双边拉幕灯控制系统各部分硬件进行分析,列写元器件清单。
1.4.2控制流程分析对双边拉幕灯控制系统运行过程及效果进行分析。
当系统上电运行时,判断s2是否合上,如果闭合:左右两边幕的led灯同时由两边向中间逐一点亮,当全部亮后,再同步由中间向两边逐一熄灭。
如果断开:系统暂停运行。
以此往复循环运行,形成“双边拉幕灯”效果。
开关s2用于系统的运行和停止控制,当其闭合时,系统工作;当其断开时,系统暂停处于当前状态。
1.5 c语言程序分析与设计对双边拉幕灯控制系统软件部分进行分析与设计。
1.5.1程序流程图分析画出双边拉幕灯控制系统程序流程图。
1.5.2c程序设计编写双边拉幕灯控制系统c语言程序。
单片机课程设计报告(简易计算器).

简易计算器摘要:计算器是人们的日常生活中是最常见的电子产品之一,它应用极广、发展迅猛,并且不断出现着拥有更加强大功能的计算器。
为了解和研究计算器,本次课设设计制作了一个简易计算器,能够在十四位的计算范围内进行“+”、“-”、“*”、“/”的基本运算,能进行负数以及小数点后两位的精确结果显示。
该计算器以AT89C51单片机芯片作为核心。
采用LCD1602工业字符液晶进行显示。
完成的计算器经过检验能够完整的实现预设功能,各种细节完善,具有很高的使用价值。
关键词:单片机;简易计算器;AT89C51;LCD1602Simple CalculatorAbstract:Calculator is People's Daily life is one of the most common electronic products, used very wide, developing rapidly, and constantly appear more powerful function with have calculators. In order to understand and study calculator, this class set design made a simple calculator, can the calculation in within 14 "+" and "-" and "*", "/" the basic computing, can carry out negative and two decimal places accurate results are shown. This calculator with AT89C51 chips as the core. Using liquid LCD1602 industrial characters displayed. Complete calculator after inspection can complete realization, various details preset functions to perfect, have high use value.Keywords:MCU; Simple calculator;AT89C51;LCD1602目录中文摘要............................................................1英文摘要............................................................2单片机课程设计......................................................4 1 课程设计任务.....................................................41.1 主要功能设计................................................41.2 任务目的....................................................42 整体设计方案......................................................42.1 方案论证....................................................42.2 系统框图....................................................53 硬件电路的设计...................................................63.1 计算机Protel总图............................................63.2 显示电路设计方案............................................93.3 键盘设计方案................................................93.4 复位电路设计...............................................103.5 晶振电路设计...............................................104 控制软件设计....................................................114.1 程序时序总图...............................................114.2 液晶显示软件设计...........................................124.3 键盘输入软件设计...........................................134.4 计算函数设置...............................................155 系统调试........................................................185.1 硬件调试...................................................185.2 软件调试...................................................18 参考文献...........................................................20 个人小结...........................................................21 附录...............................................................24 附录1..........................................................24 附录2..........................................................251课程设计任务1.1 主要功能设计以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602工业字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
51单片机课程设计报告

51单片机课程设计报告一、课程目标知识目标:1. 理解51单片机的硬件结构、工作原理及其功能特点;2. 学会使用51单片机的指令系统进行程序设计;3. 掌握51单片机与外围电路的接口技术,能实现简单的硬件控制功能;4. 了解51单片机在嵌入式系统中的应用及发展趋势。
技能目标:1. 能够运用C语言编写51单片机的程序,实现基础控制功能;2. 能够运用仿真软件对51单片机程序进行调试,分析并解决简单问题;3. 能够设计简单的51单片机硬件系统,进行电路连接和功能测试;4. 培养学生的动手能力、创新能力和团队协作能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学习热情;2. 培养学生严谨、务实的科学态度,提高自主学习能力;3. 培养学生关注社会发展,了解科技在生活中的应用,增强社会责任感;4. 培养学生团队合作精神,尊重他人意见,善于沟通交流。
课程性质:本课程为实践性较强的电子技术课程,以51单片机为核心,结合硬件和软件,培养学生的实际操作能力和创新能力。
学生特点:学生具备一定的电子技术基础知识,对单片机有一定了解,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力和解决问题的能力。
通过课程学习,使学生能够独立完成简单的51单片机控制系统设计。
二、教学内容根据课程目标,教学内容分为以下几个部分:1. 51单片机硬件结构及原理- 熟悉51单片机的内部结构、引脚功能;- 掌握51单片机的工作原理及性能特点。
2. 51单片机指令系统与编程- 学习51单片机的指令集,理解各指令的功能和使用方法;- 掌握C语言在51单片机编程中的应用。
3. 51单片机外围接口技术- 学习51单片机与常见外围电路(如LED、LCD、键盘等)的接口技术;- 掌握外围设备的控制原理及编程方法。
4. 仿真软件的使用- 学习使用Keil、Proteus等仿真软件进行51单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。
单片机课程设计报告
单片机课程设计报告指导老师:任家富学生:钟文旭学号:200906050415一、目的与意义《单片微机原理及应用》是一门技术性、应用性很强的学科,实验课教学是它的一个极其重要的环节。
不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验课教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节,学习与应用脱节的局面。
任随书本上单片微机技术介绍得多么重要、多么实用、多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会因此对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。
《单片微机课程设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行单片机应用系统的开发设计工作打下一定的基础。
二、硬件电路图1、主板2、四位数码管3、八位LED流水灯4、蜂鸣器5、串口三、程序流程图五、实现的功能及现象1、键盘扫描输入当程序运行时,自动检测是否有按键按下,是哪个按键按下,并且通过返回值,在四位数码管上显示出按下键所对应的数字、字母或执行相应的功能。
2、四位数码管显示通过四位数码管显示相应的按键值、提示语或者执行相关功能。
3、八位流水灯程序运行时,当按下“B”功能键,八位流水灯依次循环点亮熄灭。
4、秒表程序运行时,当按下“C”功能键,数码管清零,从零开始逐秒增加。
5、串口通信程序运行时,当按下“F”功能键,数码管显示“232C”,提示进行串口输入,当从串口助手中输入控制字符时,八位LED灯得到对应的结果。
例如:当输入“00”时,八位灯全亮;当输入“AA”时,八位灯间隔亮。
51单片机电子时钟课程设计实验报告
《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计目录1.题目与主要功能要求 (2)2.整体设计框图及整机概述 (3)3.各硬件单元电路的设计、参数分析及原理说明 (3)4.软件流程图和流程说明 (4)5.总结设计及调试的体会 (10)附录1.图一:系统电路原理图 (11)2.图二:系统电路PCB (12)3.表一:元器件清单 (13)4.时钟程序源码 (14)题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。
培养我们综合运用电子课程中的理论知识解决实际性问题的能力。
让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。
课程设计的基本任务利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。
主要功能要求最基本要求1)使用MCS-51单片机设计一个时钟。
要求具有6位LED显示、3个按键输入。
2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。
3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。
开始计时时为000000,到235959后又变成000000。
4)使用3个键分别作为小时、分、秒的调校键。
每按一次键,对应的显示值便加1。
分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。
在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。
5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。
6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。
51单片机万年历课程设计报告
一、设计任务:1、设计任务:设计并制作一个数字钟。
2、设计要求:●显示年月日时分秒及星期信息●具有可调整日期和时间功能●增加闰年计算功能●显示部分由LCD1602完成二、方案论证:1.显示部分:显示部分是本次设计的重要部分,一般有以下两种方案:方案一:采用LED显示,分静态显示和动态显示。
对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。
而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。
方案二:采用LCD显示。
LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于信息量多的系统,是比较适合的。
鉴于上述原因,我们采用方案二。
2.数字时钟:数字时钟是本设计的核心的部分。
根据需要可采用以下两种方案实现:方案一:方案完全用软件实现数字时钟。
原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。
该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。
而且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
方案二:方案采用Dallas公司的专用时钟芯片DS1302。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,可使系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。
单片机原理及应用课程设计报告
课程设计为学生提供了一个实践平台,学生可以在实践中锻炼动手能力,培养解决实际问题的能力,同时通过创新思 维,设计出具有特色的单片机应用系统。
促进理论与实践相结合
单片机原理及应用课程设计将理论知识与实践操作相结合,使学生能够更好地理解单片机的实际应用场 景,加深对理论知识的理解。
时间安排
共计8周,每周5天, 每天8小时。
04
单片机应用实践
单片机外围电路设计
电源电路
为单片机提供稳定的电源,确 保单片机正常工作。
时钟电路
为单片机提供稳定的时钟信号 ,保证程序正常运行。
复位电路
在单片机出现异常时,能够实 现自动复位或手动复位。
输入输出接口
实现单片机与外部设备的通信 和控制。
单片机程序编写与调试
单片机的编程语言和开发环境
单片机的编程语言主要有汇编语言和C语言。汇编语言是一种低级语言,直接控制硬件操作,但编程 难度较大;C语言是一种高级语言,具有可读性强、易于编程和维护等优点。
单片机的开发环境是指用于编写、编译、调试和烧录程序的软件环境。常用的单片机开发环境有Keil 、IAR、SDCC等。这些开发环境都支持汇编语言和C语言编程,提供了丰富的库函数和调试工具,方 便开发者进行单片机应用开发。
• 解决方案
检查数码管的位选信号和段选信号是否正确连接。
对未来学习和实践的建议与展望
深入学习
进一步研究单片机的内部结构和工作原理,掌握 更多高级功能和应用。
实践应用
将所学知识应用到实际项目中,提高解决实际问 题的能力。
持续学习
关注单片机技术的最新发展动态,保持学习的持 续性。
THANKS
感谢观看
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务书 一. 课程设计题目及任务要求 设计十进制加减乘法计算器,要求能显示三位输入和四位输出。 二. 设计思路 1.操作显示设备 显示设备采用八片七段共阴极LED显示器,共设置16个键,其中数字键0-9共十个,接下来依次是加号键,减号键,乘号键,除号键,清除键,操作设备是4*4的矩阵键盘。 2.程序实现功能 (1)十进制加减乘除计算:输入范围为1-999,改程序输入两个定点数,每个3位,输出四位,A为加,B为减,C为等于,输出为四位计算结果。 (2)计算机复位功能:DEC均为清零重启,任何时候按下DEC中一个将重新开始。 绪论 现时学习或生活中,常会遇到一些数目较大数据,繁杂的数据运算,徒手运算起来很困难,这时候我们就必须用到计算器。人们对计算器的要求不断提高,现在,已经有一些功能较为强大,涵盖面较广的计算软件,而且各种平台的小工具仍不断出现,这些大大方便了我们的生活给我们更多的悬着和实现方式,本程序实现了加,减,乘,除的功能,但是,每次只能运算一个表达式,按DEC清空后再计算下一组式子。 方案论证 方案一:采用计算器专用芯片实现。用计算器专用芯片进行设计并编程实现。这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳方案。但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这个方案不可去。 方案二:用单片机实现。由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。由于单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数。使编写程序变得非常简单。所以该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。性价比也相当高。更重要的是本人经过几年的学习,对单片机已有深刻的理解,并且可以灵活运用。 方案说明 按照系统设计的功能的要求,初步确定设计系统由主控模块、显示模块、错误报警模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示。主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。 键盘电路采用4*4矩阵键盘电路。 显示模块采用2枚四位一体共阴极数码管和74ls273锁存芯片构成等器件构成。 系统硬件设计 1.单片机最小系统
单片机最小系统就是支持主芯片正常工作的最小电路部分,包括 主控芯片、复位电路和晶振电路。 主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。 晶振选取11.0592MHz,晶振旁电容选取30pF。 采用按键复位电路,电阻分别选取100Ω和10K,电容选取10μF。
.2键盘接口电路 计算器所需按键有: 数字键:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’ 功能键:’+’, ’-‘ , ’*’, ’/ ’ , ’ = ’, ’ C( 清零)’ 共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P3.0~P3.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P3口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。 .3数码管显示电路 采用4位数码管对计算数据和结果的显示,这里选取共阳数码管,利用NPN三极管对数码管进行驱动,为了节省I/O资源,采取动态显示的方法来显示计算数据及结果。 利用74273锁存器来实现数码管的动态显示,P0口输出显示值,P2.4为段选口,控制273锁存器的时钟引脚,从而得到对数码管输入 数据的控制。 P2.0~P2.3用来作为位选端,控制哪几位数码管进行显示。 系统软件设计 要进行数据的计算就必须先进行数据的输入,也就必须确定按键输入的数值是什么,这就需要对键盘进行扫描,从而确定究竟是哪个键按下。 以下为键盘扫描子程序的程序清单 void dujian() { uchar i=0,temp; P3=0xf0; if(P3!=0xf0) { delay(10); if(P3!=0xf0) { temp=0xfe; for(i=0;i<4;i++) { P3=temp; switch(P3&0xf0) { case 0xe0: k=0+i*4; break; case 0xd0: k=1+i*4; break; case 0xb0: k=2+i*4; break; case 0x70: k=3+i*4; break; default : break; } temp=temp<<1|0x01; } switch(k) { case 0: num2[flag_wei]=0; break; case 1: num2[flag_wei]=1; break; case 2: num2[flag_wei]=2; break; case 3: num2[flag_wei]=3; break; case 4: num2[flag_wei]=4; break; case 5: num2[flag_wei]=5; break; case 6: num2[flag_wei]=6; break; case 7: num2[flag_wei]=7; break; case 8: num2[flag_wei]=8; break; case 9: num2[flag_wei]=9; break; case 10: flag_fuhao=1; // + switch(flag_wei) { case 1: shu1=num2[0]; break; case 2: shu1=num2[0]*10+num2[1]; break; case 3: shu1=num2[0]*100+num2[1]*10+num2[2]; break; default : break; } for(i=0;i<8;i++) num2[i]=0;
flag_wei=-1; j=0; break; case 11: flag_fuhao=2; // - switch(flag_wei) { case 1: shu1=num2[0]; break; case 2: shu1=num2[0]*10+num2[1]; break; case 3: shu1=num2[0]*100+num2[1]*10+num2[2]; break; default : break; }
for(i=0;i<8;i++) num2[i]=0; flag_wei=-1; j=0; break; case 12: flag_fuhao=3; // * switch(flag_wei) { case 1: shu1=num2[0]; break; case 2: shu1=num2[0]*10+num2[1]; break; case 3: shu1=num2[0]*100+num2[1]*10+num2[2]; break; default : break; }
for(i=0;i<8;i++) num2[i]=0;
flag_wei=-1; j=0; break; case 13: flag_fuhao=4; // / switch(flag_wei) { case 1: shu1=num2[0]; break; case 2: shu1=num2[0]*10+num2[1]; break; case 3: shu1=num2[0]*100+num2[1]*10+num2[2]; break; default : break; }
for(i=0;i<8;i++) num2[i]=0;
flag_wei=-1; j=0; break; case 14: switch(flag_wei) { case 1: shu2=num2[0]; break; case 2: shu2=num2[0]*10+num2[1]; break; case 3: shu2=num2[0]*100+num2[1]*10+num2[2]; break; default : break; } switch(flag_fuhao) { case 1: jieguo= shu1+shu2; break; case 2: jieguo= shu1-shu2; break; case 3: jieguo= (ulong)shu1*shu2; break; case 4: jieguo= (ulong)shu1/shu2; break; default : break; }