最新单片机应用系统的设计与开发PPT课件.ppt
《最新单片机应用系统的设计与开发PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新单片机应用系统的设计与开发PPT课件.ppt(194页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机应用系统的设计与开单片机应用系统的设计与开发发第9章 单片机系统的应用与开发第第9章章 单片机应用系统的设计与开发单片机应用系统的设计与开发 9.1 课程设计课程设计电脑钟的设计与制作电脑钟的设计与制作 9.1.1 设计要求设计要求 设计并制作出具有如下功能的电脑钟: (1) 自动计时,由6位LED显示器显示时、分、秒。 (2) 具备校准功能,可以直接由09数字键设置当前时间。 (3) 具备定时起闹功能。 (4) 一天时差不超过1秒钟。第9章 单片机系统的应用与开发第9章 单片机系统的应用与开发第9章 单片机系统的应用与开发第9章 单片机系统的应用与开发第9章 单片机系统的应用与开发第9
2、章 单片机系统的应用与开发第9章 单片机系统的应用与开发图9.2 电脑钟硬件原理图AD0PA0AD1PA1AD2PA2AD3PA3AD4PA4AD5PA5AD6PA6AD7PA7PB0CEPB1RDPB2WRPB3IO/MPB4ALEPB5PB6PB7TMROUT6PC0PC1TMRIN3PC2PC3PC4RESET4PC58155EA/VP31X119X218RESET9RD17WR16INT012INT113T014T11512345678PSENALE/PTXDRXD89C51dpgfed cbaLED0 LED1LED2 LED3 LED4LED50123456789C/RALMPA0
3、PA5PC0PC1PC2PB0PB7+5 V+5 V蜂 鸣 器+5 V+5 V74LS0739383736353433322122232425262728293011101213141516171819891071121222324252627282930313233343536373839125P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.720 pF20 pF6 MHz1 k5.1 k3R200 822 F1第9章 单片机系统的应用与开发 控制寄存
4、器:4400H A口:4401H B口:4402H C口:4403H 并通过引出的P1口外接一个蜂鸣器电路,或是用P1口上的发光二极管模拟闹钟功能。需要指出的是,实验板使用的是8031芯片,使用外扩程序存储器EPROM2764,因此其脚必须接地。第9章 单片机系统的应用与开发 2. 系统工作流程系统工作流程 本电脑钟具备以下功能: (1) 时钟显示:6位LED从左到右依次显示时、分、秒,采用24小时计时。 (2) 键盘功能:采用43键盘,包括:09 数字键,键号为00H09HC/R键 时间设定/启动计时键,键号为0AH ALM键 闹钟设置/启闹/停闹键,键号为0BH (1) 时间显示:上电后,
5、系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间。第9章 单片机系统的应用与开发 (2) 时间调整:按下C/R键,系统停止计时,进入时间设定状态,系统保持原有显示,等待键入当前时间。按下09数字键可以顺序设置时、分、秒,并在相应LED管上显示设置值,直至6位设置完毕。系统将自动由设定后的时间开始计时显示。 (3) 闹钟设置/启闹/停闹:按下ALM键,系统继续计时,显示00:00:00,进入闹钟设置状态,等待键入启闹时间。按下09数字键可以顺序进行相应的时间设置,并在相应LED管上显示设置值,直至6位设置完毕。这将启动定时启闹功能,并恢复时间显示。定时时间到,蜂鸣器鸣叫,直
6、至重新按下ALM键停闹,并取消闹钟设置。第9章 单片机系统的应用与开发 9.1.4 软件设计软件设计 1. 系统资源分配系统资源分配 为方便阅读程序,先对系统的资源分配加以说明。 (1) 定时器:定时器0用作时钟定时,按方式1工作,每隔100 ms溢出中断一次。 (2) 片内RAM及标志位的分配与定义见表9.1。第9章 单片机系统的应用与开发地地 址址功功 能能名名 称称初始化值初始化值30H35H显示缓冲区,小时、分、秒(高位显示缓冲区,小时、分、秒(高位在前)在前)DISP0DISP500H3CH3FH计时缓冲区,时、分、秒、计时缓冲区,时、分、秒、100 msHOUR,MIN,SEC,M
7、SEC00H40H42H闹钟值寄存区,时、分、秒闹钟值寄存区,时、分、秒AHOUR,AMIN,ASECFFH50H7FH堆栈区堆栈区 PSW.5计时显示允许位(计时显示允许位(1:禁止,:禁止,0:允:允许)许)F00PSW.1闹钟标志位(闹钟标志位(1:正在闹响,:正在闹响,0:未:未闹响)闹响)F10表表9.1 电子钟控制软件片内电子钟控制软件片内RAM及标志位分配表及标志位分配表第9章 单片机系统的应用与开发 2. 软件流程软件流程 根据上述工作流程,软件设计可分为以下几个功能模块: (1) 主程序:初始化与键盘监控。 (2) 计时:为定时器0中断服务子程序,完成刷新计时缓冲区的功能。
8、(3) 时间设置与闹钟设置:由键盘输入设置当前时间与定时启闹时间。 (4) 显示:完成6位动态显示。第9章 单片机系统的应用与开发 (5) 键盘扫描:判断是否有键按下,并求取键号。 (6) 定时比较:判断启闹时间到否?如时间到,则启动蜂鸣器鸣叫。 (7) 其它辅助功能子程序,如键盘设置、拆字、合字、时间合法性检测等。 下面分模块进行软件设计: (1) 主程序模块MAIN:流程图如图9.3所示。 (2) 计时程序模块CLOCK:流程图如图9.4所示。 第9章 单片机系统的应用与开发图9.3 主程序流程图开 始定 义 堆 栈 区8155、 定 时 器 0、数 据 缓 冲 区 、闹 钟 标 志 位
9、初 始 化调 用 定 时比 较 程 序调 用 键 扫 描子 程 序是 C/R键是 ALM键闹 钟 标 志 位 1停 闹清 零 闹 钟 标 志地 址 指 针 指 向计 时 缓 冲 区调 用 时 间 设 置 /闹 钟 定 时 程 序地 址 指 针 指 向闹 钟 值 寄 存 区YNNYYN第9章 单片机系统的应用与开发图9.4 计时程序流程图保 护 现 场时 间 校 正重 装 定 时 器 0初 值循 环 次 数 减 1秒 单 元 清 零分 单 元 加 160分 到分 单 元 清 零小 时 单 元 加 124小 时 到小 时 单 元 清 零恢 复 现 场返 回满 10次秒 单 元 加 160 s到NY
10、YYYNNN第9章 单片机系统的应用与开发 如前所述,系统定时采用定时器与软件循环相结合的方法。定时器0每隔100 ms溢出中断一次,则循环中断10次延时时间为1 s,上述过程重复60次为1分,分计时60次为1小时,小时计时24次则时间重新回到00:00:00。 设系统使用6 MHz的晶振,定时器0工作在方式1,则100 ms定时对应的定时器初值可由下式计算得到: 定时时间=(216-定时器0初值)(12/fosc)因此,定时器0初值=3CB0H,即TH0=3CH,TL0=0B0H 第9章 单片机系统的应用与开发 当系统使用其它频率的晶振时,可以由上式计算相应的定时器0初值,也可以改变定时时间
11、。例如当系统晶振为12 MHz时,同样的初值对应的定时时间为50 ms,则循环中断次数为20次时,延时时间为1 s。 第一,定时器溢出产生中断请求,CPU并不一定立即响应中断,而可能需要延迟一个中断响应时间之后才能响应中断,中断响应时间大约为38个机器周期。显然,这将在定时时间中加入额外的延时时间,导致计时误差。第9章 单片机系统的应用与开发 为了保证计时精度,必须采取措施进行补偿。我们采用增大重装的定时器0初值的方法来减少定时器0定时时间。具体应调整为多大,一般需要通过调试来确定。经测试,定时器0重装初值设为3CB7H3CBFH可以满足精度要求。 第二,时间是按十进制递增,而MCS-51单片
12、机只有二进制加法指令,因此用加法指令计时必须进行二十进制转换。 (3) 时间设置程序和闹钟定时程序模块MODIFY:流程图如图9.5所示。第9章 单片机系统的应用与开发图9.5 时间设置/闹钟定时流程图 保 护 现 场调 用 键 盘 设 置 子 程 序ACALL KEYIN调 用 合 字 程 序ACALL COMB恢 复 现 场返 回第9章 单片机系统的应用与开发 将键盘输入的6位时间值合并为3位压缩BCD码(时、分、秒)送入计时缓冲区和闹钟值寄存区,作为当前计时起始时间或闹钟定时时间。该模块的入口为计时缓冲区或闹钟值寄存区的首地址,置入R1中。程序调用一个键盘设置子程序KEYIN(如图9.6
13、所示)来将键入的6位时间值送入键盘设置缓冲区,然后用合字子程序COMB将键盘设置缓冲区中的6位BCD码合并为3位压缩BCD码,送入计时缓冲区或闹钟值寄存区。该程序同时作为时间值合法性检测程序,若键盘输入的小时值大于23,分和秒值大于59,则不合法,将取消本次设置,清零重新开始计时。第9章 单片机系统的应用与开发图9.6 键盘设置子程序流程图保护现场显示缓冲区首地址送R0键盘输入次数送R7调用键盘扫描程序ACALL KEYSCAN键号送R0显示缓冲区地址加1INC R0循环次数减1循环次数到恢复现场返回Yc第9章 单片机系统的应用与开发图9.7 键盘扫描流程图 (4) 键盘扫描程序模块KEYSC
14、AN:流程图如图9.7所示。 扫 描 键 盘有 键 按 下调 用 显 示 程 序有 键 按 下求 取 键 号返 回调 用 显 示 程 序调 用 定 时 比 较 程 序调 用 显 示 程 序调 用 定 时 比 较 程 序YNNY第9章 单片机系统的应用与开发 判断是否有键按下,无键按下则循环等待;有键按下则求取键号并将键号送A累加器返回。程序中的去抖延时和循环等待延时都用DISPLAY子程序来代替,从而保证随时刷新显示。键盘扫描程序在第7章中有详细的叙述,在此不再赘述。 (5) 显示程序模块DISPLAY:流程图如图9.8所示。 将显示缓冲区中的6位BCD码用动态扫描方式显示。为此,必须首先将3
15、 字节计时缓冲区中的时、分、秒压缩BCD码拆分为6字节(百位、十位分别占有1字节)BCD码,这一功能由拆字子程序SEPA来实现。第9章 单片机系统的应用与开发图9.8 显示流程图保 护 现 场动 态 扫 描 显 示调 用 拆 字 程 序返 回YN允许显示计时时间第9章 单片机系统的应用与开发 需要注意的是,当按下时间或闹钟设置键后,在6位设置完成之前,应显示键入的数据,而不显示当前时间。为此,我们设置了一个计时显示允许标志位F0,在时间/闹钟设置期间F0=1,不调用SEPA,即调用SEPA刷新显示缓冲区的前提条件是F0=0。 (6) 定时比较程序模块ALARM:流程图如图9.9所示。 将当前时
16、间(计时缓冲区的值)与预设的启闹时间(闹钟设置寄存区的值)比较,二者完全相同时,启动蜂鸣器鸣叫,并置位闹钟标志位。返回后,待重新按下ALM键停闹,并清零闹钟标志。第9章 单片机系统的应用与开发图9.9 定时比较流程图保护现场闹钟值与计时值秒单元相等启闹闹钟标志置位返回YN闹钟值与计时值分单元相等闹钟值与计时值小时单元相等恢复现场NNYY第9章 单片机系统的应用与开发 (7) 拆字程序SEPA与合字程序COMB:如前所述,拆字程序的功能是将3字节计时缓冲区中的时、分、秒压缩BCD码拆分为6字节(百位、十位、个位分别占有2字节)BCD码并刷新显示缓冲区;合字程序的功能是将键盘设置缓冲区中的6位BC
17、D码合并为3位压缩BCD码,送入计时缓冲区或闹钟值寄存区,同时检测时间值的合法性。下面给出各模块的源程序。;*主程序MAIN*第9章 单片机系统的应用与开发ORG0000HAJMP MAINORG 000BHAJMP CLOCKORG 0030HPORT EQU 8000HPORTA EQU 8001HPORTB EQU 8002H第9章 单片机系统的应用与开发PORTCEQU 8003HDISP0 EQU 30HDISP1 EQU 31HDISP2 EQU 32HDISP3 EQU 33HDISP4 EQU 34HDISP5 EQU 35HHOUR EQU 3CH第9章 单片机系统的应用与开
18、发 MIN EQU 3DH SEC EQU 3EH MSEC EQU 3FH AHOUR EQU 40H AMINEQU 41H ASEC EQU 42H F1 BIT PSW.1MAIN:MOV SP,#50H ;设置堆栈区 MOVX DPTR,#PORT MOVA,#03H第9章 单片机系统的应用与开发 MOVX DPTR,A;8155初始化CLR F1;清零闹钟标志位CLRF0;允许计时显示 MOV AHOUR,#0FFH MOV AMIN,#0FFH MOV ASEC,#0FFH MOV R7,#10H MOV R0,#DISP0 CLR A第9章 单片机系统的应用与开发LOOP: M
19、OV R0,A INC R0 DJNZ R7,LOOP ;设置初值 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH ;定时器0初始化,定时 时间100 ms SETB TR0;启动定时器 SETB EA SETB ET0;开中断 第9章 单片机系统的应用与开发BEGIN: ACALLALARM ;调用定时比较 ACALLKEYSCAN ;调用键盘扫描 CJNEA,#0AH,NEXT1 ;是CLR/RST键否? CLR TR0 ;是则暂时停止计时 MOV R1,#HOUR ;地址指针指向计时缓冲区首地址 AJMPMOD第9章 单片机系统的应用与开发NEXT1:C
20、JNE A,#0BH,BEGIN ;是ALARM键否? JB F1,NEXT2 ;闹钟正在闹响否? MOVR1,#AHOUR ;地址指针指向闹钟值寄存区首地址 MOD: SETBF0 ;置位时间设置/闹钟定时标志,禁止显示计时时间 ACALLMODIFY ;调用时间设置/闹钟定时程序 SETBTR0 ;重新开始计时 CLRF0 ;清零时间设置/闹钟定时标志,恢复显示计时时间第9章 单片机系统的应用与开发 AJMPBEGINNEXT2: SETBP1.0;闹钟正在闹响,停闹 CLRF1;清零闹钟标志 AJMPBEGIN ;*时间设 置/闹钟定时模块MODIFY*MODIFY:ACALL KEYI
21、N;调用键盘设置子程序 ACALL COMB;调用合字子程序RET键盘设置子程序KEYIN:KEYIN:PUSH PSWPUSH ACC第9章 单片机系统的应用与开发 SETBRS1 ;保护现场 MOVR0,#DISP0 ;R0指向显示缓冲区首地址 MOVR7,#06H ;设置键盘输入次数L1:CLRRS1 ACALLKEYSCAN ;调用键盘扫描程序取按下键 的键号 SETB RS1 CJNEA,#0AH,L2 ;键入数合法性检测(是否大 于9)第9章 单片机系统的应用与开发 L2:JNCL1;大于9,重新键入MOV R0,A;键号送显示缓冲区INCR0DJNZ R7,L1;6位时间输入完否
22、?未 完继续,否则返回POPACCPOPPSWCLRRS1;恢复现场RET第9章 单片机系统的应用与开发 ;*键盘扫描子程序KEYSCAN* KEYSCAN:ACALLTEST ;调判按键是否按下子程序TEST JNZ REMOV ;有键按下调消抖延时 ACALLDISPLAY ACALLALARM AJMP KEYSCAN ;无键按下继续判是否按键 REMOV: ACALL DISPLAY;调用显示子程序延时消抖 ACALL TEST ;再判是否有键按下第9章 单片机系统的应用与开发 JNZLIST ;有键按下转逐列扫描 ACALL DISPLAY ACALL ALARM AJMPKEYSC
23、AN ;无键按下继续判是否按键 LIST: MOV R2,#0FEH ;首列扫描字送R2MOV R3,#00H ;首列键号送R3LINE0:MOV DPTR,#PORTA ;DPTR指针指向8155的A口第9章 单片机系统的应用与开发 MOV A,R2 ;首列扫描字送R2 MOVXDPTR,A ;首列扫描字送8155的A口 MOV DPTR,#PORTC ;DPTR指针指向8155的C口 MOVXA,DPTR ;读入C口的行状态 JB ACC.0,LINE1 ;第0行键无键按下转第1行 MOVA,#00H ;第0行有键按下,行首键号送A AJMPTRYK ;求键号第9章 单片机系统的应用与开发
24、 NEXT: INC R3;扫描下一列 MOV A,R2;列扫描字送A JNB ACC.3,EXIT ;4列扫描完,重新进行 下一轮扫描 RL A;4列未扫描完,扫描字左移扫描下一列 MOV R2,A;扫描字送A AJMP LINE0 ;转向扫描下一列第9章 单片机系统的应用与开发 EXIT: AJMP KEYSCAN;等待下一次按键TRYK: ADD A,R3;按公式计算键码,求得键号 PUSH ACC;键号入栈保护LETK:ACALL TEST;等待按键释放 JNZLETK;按键未释放,继续等待 POPACC;按键释放,键号出栈RET;键盘扫描结束,返回第9章 单片机系统的应用与开发TES
25、T: MOV DPTR,#PORTA ;DPTR指针指向8155的A口MOV A,#00HMOVX DPTR, A ;全扫描字00H送8155的A口MOV DPTR,#PORTC ;DPTR指针指向8155的C口MOVX A,DPTR ;读入C口行状态CPLA ;A取反,以高电平表示有 键按下ANLA,#07H ;屏蔽高5位RET 第9章 单片机系统的应用与开发;*显示子程序DISPLAY*DISPLAY:JB F0,DISP ;允许时间显示标志F0=1转DISPACALL SEPA ;否则调用SEPA刷新显示缓冲区 DISP: push psw ;动态扫描显示子程序 Pushacc setb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 应用 系统 设计 开发 PPT 课件
限制150内