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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机.docx

1、单片机微型计算机技术专业方向课程设计报告题目名称:多功能数字钟专业: 自动化 班级:07级2班姓名: 李东 学号:200728335学校:青岛理工大学自动化学院指导教师:史贺男 丁新平 2010年1月3日至10日课程设计任务书课程名称:微型计算机技术设计题目:多功能数字钟系统硬件要求:1 配置单片机的外部程序ROM空间,容量为16K(使用27128芯片)。2 使用8031内部时钟信号为系统提供计时信号。3 配置6位LED数码管显示时间,设置6位操作按键。系统功能要求:1 在6位LED数码显示器上显示:时、分、秒(各2位)2 按键功能自定义,实现按键调整时间功能。3 具有闹钟功能(选做)4 具有

2、秒表功能(选做)其他要求:1 每位同学独立完成本设计2 依据题目内容要求,提出系统设计方案3 设计系统电路原理图4 调试系统硬件电路、功能程序5 编制课程设计报告书并装订成册,报告书内容包括(按顺序):1 报告书封面2 课程设计报告书3 评语页(空白)4 系统设计方案的提出、分析5 系统中典型电路的分析6 系统软件结构框图7 系统电路原理图8 源程序成绩评语1系统硬件设计1.1 51单片机与外部存储器的连接几个重要概念及地址译码方式分清地址线:片内地址线、片选地址线;片内地址线的接法:直接与系统的地址线相连。片选地址线的接法:可用全译码方式、部分译码方式、线选法方式连接。用地址译码电路产生芯片

3、的选通信号。通常这种选通信号采用集成译码电路产生。1.2 8031通过8155对LED的接口(包括按键)8031对8155的连接(图)8155含有: 256字节的RAM;一个14位定时/计数器 三个并行I/O口: A、B、C口。其中A、B口为8位,C口为6位。A、B口可作为基本I/O口,也可作为选通I/O口;C口除可作为基本I/O口外,还可用作A口、B口的应答控制联络信号线;一个控制寄存器组,用来存放控制命令字;8155引脚说明: AD0AD7:地址/数据复用线。可与P0口直接相连。 CE:片选,输入,低电平有效。 IO/M:RAM和I/O口选择线。 当IO/M =1时,选中I/O口; 当IO

4、/M =0时,选中RAM。 ALE:地址锁存信号。 RD:读选通,输入,低电平有效。 WR:写选通,输入,低电平有效。 TIMERIN:定时器输入,是片内定时器的脉冲信号输入端。 TIMEROUT:定时器输出,计时结束时可以输出矩形波或脉冲波。 PA0PA7、PB0PB7:A/B口通用的输入/输出线。由编程来决定是输入还是输出。 PC0PC5:C口的输入/输出或控制信号线。 8155对LED的连接(图)显示要点 要对8155初始化: A口、C口均设为输出要设置一个显示缓冲区:DISBUF存放要显示的数,利用内部RAM(70H73H) 在程序中建立一个段码(字形码)表:TAB利用查表指令:MOV

5、C A,A+DPTR 取出段码轮流扫描显示(位码左移,指向下一位LED)数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极.通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理.基本的半导体数码管是由7个条状的发光二极管(LED)按图1所示排列而成的,可实现数字09及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成,我们分别把这些发光二极管命名为 a,b,c,d,e,f,g,dp,数码管的分类:数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种。共阴数码管是指将所有发光二极管的阴极接到一起形成

6、公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。共阴数码管内部连接。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阳数码管内部连接。 8031通过8155对LED(图)2系统软件2.1按键功能S1键 :秒设置键S2键 :时设置键S4键 :时间/闹钟/秒表键S5键 :分设置键2.2软件流程图2.

7、3软件分析2.3.1中断服务程序时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0 打开后, 进入计时,满100 毫秒后,重装定时。中断一次,满一秒后秒进位,满60 秒后即为1 分钟, 分钟单元进位,60 分到了后,时单元进位,24 小时满后,天单元进位。这样然后根据进率, 得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED 中显示出来, 实现时钟计时功能。累加是用指令INC 来实现的。 进入中断服务程序以后,执行PUSH PSW 和PUSH A 将程序状态寄存器PSW 的内容和累加器A 中的数据保存起来,这便是所谓的. 保护现场. . 以保护现场和恢

8、复现场时存取关键数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内RAM 中的任一区间设定,而堆栈的数据存取与一般的RAM 存取又有区别,对它的操作,要遵循. 后进先出. 的原则。2.3.2定时器/计数器在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。 不管是定时还是计数工作方式,定时器T0或T1在对内部时钟或对外部事件计数时,不占用CPU事件,除非定时器/计数器溢出,才可能中断CPU的当前操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出 经12分频后得到的。 当它用作对

9、外部事件计数时,接相应的外部输入引脚T0(P3.4) 或T1(P3.5)。51对内部定时/计数器的控制在51中,与定时/计数器T0、T1工作方式有关的寄存器为TMOD和TCON。其中:TMOD控制定时/计数器T0、T1的工作方式,而TCON控制定时/计数器的启动方式和禁止/允许定时中断。定时器共有两个控制字,由软件写入TMOD和TCON两个8位寄存器,用来设置T0或T1的操作模式和控制功能。3设计体会数字时钟是采用数字电路实现对时、分、秒进行数字显示的计时装置,广泛用于个人家庭、车站办公室等公共场所,成为人们日常生活中不可缺少的必需品。通过这次的实习,了解了电子时钟的电路结构图,更好的熟悉了电

10、子时钟的工作过程和原理。再设计的过程中,在硬件的选型方面,即选电容、电阻等时遇到了一些问题,经过查书和上网查资料最终解决了问题。Protel软件是上学期实习时学习如何使用的,经过了一学期的时间,对于软件的部分功能忘记了,在经过了熟悉之后,终于成功的设计出来了。最困难的当属程序的设计了,从书本上和网上查找了大量资料,总算将程序写了出来。经过实习之后,发现自己在单片机的各个方面还有许多不足,同时也学习了大量知识和收获了宝贵的经验。;*led显示单片机定时闹铃程序*; 变量地址分配;*Hour EQU 3AH; 小时计数器的地址Minute EQU 3BH; 分钟计数器的地址Second EQU 3

11、CH; 秒计数器的地址P1Val EQU 3DH; 数码管位驱动值的地址ClockMode BIT 20H.0; 模式(正常走时/闹时)设置寄存器地址,值为0时正常走时,为1时闹时设定AlarmOnOff BIT 20H.1; 闹钟开启/关闭标志,为0关闭,为1开启AlarmTimeOn BIT 20H.2; 此位为1时表示闹时时间到DispHour EQU 21H; 小时显示寄存器的地址DispMinute EQU 22H; 分钟显示寄存器的地址DispSecond EQU 23H; 秒显示寄存器的地址AlarmHour EQU 2EH; 闹时小时计数器的地址AlarmMinute EQU

12、2FH; 闹时分钟计数器的地址S4 BIT P3.2; 闹钟设置键S2 BIT P3.3; 小时设置键S5 BIT P3.5; 分钟设置键 ;*; 程序开始;*ORG 0000HAJMP MainORG 0BHAJMP TimeIntORG 0020HMain:MOV SP,#70HMOV 39H,#14HMOV Hour,#12MOV Minute,#00MOV Second,#00MOV AlarmHour,#06MOV AlarmMinute,#00CLR ClockModeCLR AlarmTimeOnSETB p1.7MOV TMOD,#00000001BMOV TH0,#03CHM

13、OV TL0,#0B0HMOV IE, #82HSETB TR0L1:JB K1,CheckMinuteKeyLCALL DelayJB K1,CheckMinuteKeySETB ClockModeLCALL AlarmSetCheckMinuteKey:JB K3,CheckHourKeyMOV A,MinuteADD A,#1MOV Minute,A;CJNE A,#60,NotOver1MOV Minute,#0NotOver1:JNB K3,$CheckHourKey:JB K2,CheckAlarmMOV A,HourADD A,#1MOV Hour,ACJNE A,#24,Not

14、Over2MOV Hour,#0NotOver2:JNB K2,$CheckAlarm: ;JNB AlarmTimeOn,ToReturnLCALL LOOPToReturn:AJMP L1;*; 定时器Timer0中断服务程序;*TimeInt:MOV TH0,#03CHMOV TL0,#0B0HPUSH ACCPUSH PSWSETB RS0CLR RS1DJNZ 39H,NotoneSecondMOV 39H,#14HLCALL ClockLCALL ConvertoBufferNotoneSecond:LCALL ScanDisplayPOP PSWPOP ACCRETIScanDi

15、splay:MOV R1,#30HMOV R4,#11111110BMOV A,R4PLAY:MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P0,ALCALL DelayINC R1MOV A,R4RL AJNB ACC.6,LD1MOV R4,AAJMP PLAYLD1: RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFHClock:MOV A,SecondADD A,#1MOV Second,ACJNE A,#3CH,NotOverFlowMOV Second,#0MOV A

16、,MinuteADD A,#1MOV Minute,ACJNE A,#3CH,NotOverFlowMOV Minute,#0MOV A,HourADD A,#1MOV Hour,ACJNE A,#18H,NotOverFlowMOV Hour,#0NotOverFlow:JNB AlarmOnOff,NotAlarmMOV A,MinuteCJNE A,AlarmMinute,NotAlarmMOV A,HourCJNE A,AlarmHour,NotAlarmSETB AlarmTimeOnNotAlarm:RETConvertoBuffer:MOV R1,#30HJB ClockMode

17、,DispAlarmSetMOV A,Second;MOV DispSecond,A;MOV A,Minute;MOV Dispminute,A;MOV A,Hour;MOV DispHour,AAJMP ConvertDispAlarmSet:JB AlarmOnOff,AlarmOnMOV DispSecond,#00HAJMP NextAlarmOn:MOV DispSecond,#11Next:MOV A,AlarmMinuteMOV Dispminute,AMOV A,AlarmHourMOV DispHour,AConvert:MOV A,DispSecondMOV B,#10DI

18、V ABMOV R1,BINC R1MOV R1,AINC R1MOV A,DispMinuteMOV B,#10DIV ABMOV R1,BINC R1MOV R1,AINC R1MOV A,DispHourMOV B,#10DIV ABMOV R1,BINC R1MOV R1,ARET;*; 闹时设置子程序;*AlarmSet:JNB K1,$LCALL DelayCheckArmMinuteKey:JB K3,CheckArmHourKeyCL1: SETB AlarmOnOffMOV A,AlarmMinuteADD A,#1MOV AlarmMinute,ACJNE A,#60,Ar

19、mNotOver1MOV AlarmMinute,#0ArmNotOver1:JNB K3,$CheckArmHourKey:JB K2,AlarmSetEndSETB AlarmOnOffMOV A,AlarmHourADD A,#1MOV AlarmHour,ACJNE A,#24,ArmNotOver2MOV AlarmHour,#0ArmNotOver2:JNB K2,$JB K3,AlarmSetEndACALL CL1AlarmSetEnd:JB K1,AlarmSetJNB K1,$CLR ClockModeRET;*; 闹时服务子程序;*LOOP:CLR P1.7ACALL D

20、elay1SETB P1.7JB K1,LOOPJNB K1,$CLR AlarmOnOffCLR AlarmTimeOnAlarmReturn: RET;*; 延时子程序;*DELAY1: MOV R3,#15LOOP1: MOV R5,#90NOPLOOP2: DJNZ R5,LOOP2DJNZ R3,LOOP1RETDelay:MOV R6,#05HDel:MOV R7,#08FhDJNZ R7,$DJNZ R6,DelRETEND这个程序到这里就完毕了,再来一个简单一点的单片机定时闹铃程序,不过不带led显示,定时1秒,要其他时间自己修改R0和R1的就可以了。 ORG 0000H ;LJMP MAIN ;ORG 0030H ;MAIN:MOV SP,#60H MOV TMOD,#02H MOV TL0,#06H MOV TH0,#06H MOV R0,#100 MOV R1,#20 SETB TR0 WAIT:JNB TF0,$ CLR TF0 DJNZ R1,WAIT MOV R1,#20 DJNZ R0,WAIT MOV R0,#100 CPL P1.0 AJMP WAIT END

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

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