单片机产品设计课件

上传人:嘀****l 文档编号:253039191 上传时间:2024-11-27 格式:PPT 页数:49 大小:917KB
返回 下载 相关 举报
单片机产品设计课件_第1页
第1页 / 共49页
单片机产品设计课件_第2页
第2页 / 共49页
单片机产品设计课件_第3页
第3页 / 共49页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,设计要求,总体方案,硬件设计,软件设计,系统调试与运行,第,10,章,单片机的应用系统设计与开发,本章内容,Single Chip Microcomputer,一、,设计要求,设计并制作出具有如下功能的电脑钟:,(1),自动计时,由,6,位,LED,显示器显示时、分、秒。,(2),具备校准功能,可以直接由,0,9,数字键设置当前时间。,(3),具备定时起闹功能。,(4),一天时差不超过,1,秒钟。,二、,总体方案,1.,计时方案,方案一:采用实时时钟芯片。,方案二:软件控制。,2.,键盘,/,显示方案,方案一:串口扩展,,LED,静态显示。,方案二:,8155,扩展,,LED,动态显示。,显示方式框图,(a),静态显示框图;,(b),动态显示框图,三、,硬件设计,1.,电路原理图,2.,系统工作流程,本电脑钟具备以下功能:,(1),时钟显示:,6,位,LED,从左到右依次显示时、分、秒,采用,24,小时计时。,(2),键盘功能:采用,43,键盘,包括:,0,9,数字键,键号为,00H,09HC/R,键 时间设定,/,启动计时键,键号为,0AH,ALM,键 闹钟设置,/,启闹,/,停闹键,键号为,0BH,(1),时间显示:上电后,系统自动进入时钟显示,从,00,:,00,:,00,开始计时,此时可以设定当前时间。,(2),时间调整:按下,C/R,键,系统停止计时,进入时间设定状态,系统保持原有显示,等待键入当前时间。按下,0,9,数字键可以顺序设置时、分、秒,并在相应,LED,管上显示设置值,直至,6,位设置完毕。系统将自动由设定后的时间开始计时显示。,(3),闹钟设置,/,启闹,/,停闹:按下,ALM,键,系统继续计时,显示,00,:,00,:,00,,进入闹钟设置状态,等待键入启闹时间。按下,0,9,数字键可以顺序进行相应的时间设置,并在相应,LED,管上显示设置值,直至,6,位设置完毕。这将启动定时启闹功能,并恢复时间显示。定时时间到,蜂鸣器鸣叫,直至重新按下,ALM,键停闹,并取消闹钟设置。,四、软件设计,1.,系统资源分配,地 址,功 能,名 称,初始化值,30H35H,显示缓冲区,小时、分、秒(高位在前),DISP0DISP5,00H,3CH3FH,计时缓冲区,时、分、秒、,100 ms,HOUR,,,MIN,,,SEC,,,MSEC,00H,40H42H,闹钟值寄存区,时、分、秒,AHOUR,,,AMIN,,,ASEC,FFH,50H7FH,堆栈区,PSW.5,计时显示允许位(,1,:禁止,,0,:允许),F0,0,PSW.1,闹钟标志位(,1,:正在闹响,,0,:未闹响),F1,0,电子钟控制软件片内,RAM,及标志位分配表,2.,软件流程,图,9.3,主程序流程图,图,9.4,计时程序流程图,图,9.5,时间设置,/,闹钟定时流程图,图,9.6,键盘设置子程序流程图,图,9.7,键盘扫描流程图,(4),键盘扫描程序模块,KEYSCAN,:流程图如图,9.7,所示。,图,9.8,显示流程图,图,9.9,定时比较流程图,ORG0000H,AJMPMAIN,ORG 000BH,AJMPCLOCK,ORG 0030H,PORT EQU 8000H,PORTA EQU 8001H,PORTB EQU 8002H,;*主程序,MAIN*,PORTCEQU 8003H,DISP0 EQU 30H,DISP1 EQU 31H,DISP2 EQU 32H,DISP3 EQU 33H,DISP4 EQU 34H,DISP5 EQU 35H,HOUR EQU 3CH,MIN EQU 3DH,SEC EQU 3EH,MSEC EQU 3FH,AHOUR EQU 40H,AMINEQU 41H,ASEC EQU 42H,F1 BIT PSW.1,MAIN,:,MOV SP,,,#50H,;设置堆栈区,MOVX DPTR,,,#PORT,MOVA,,,#03H,MOVX DPTR,,,A,;,8155,初始化,CLR F1,;清零闹钟标志位,CLRF0,;允许计时显示,MOV AHOUR,#0FFH,MOV AMIN,#0FFH,MOV ASEC,#0FFH,MOV R7,#10H,MOV R0,#DISP0,CLR A,LOOP:MOV R0,A,INCR0,DJNZ R7,LOOP,;设置初值,MOV TMOD,,,#01H,MOV TL0,,,#0B0H,MOV TH0,,,#3CH,;定时器,0,初始化,定时,时间,100 ms,SETB TR0,;启动定时器,SETB EA,SETB ET0,;开中断,BEGIN,:,ACALLALARM,;调用定时比较,ACALLKEYSCAN,;调用键盘扫描,CJNEA,,,#0AH,,,NEXT1,;是,CLR/RST,键否?,CLR TR0,;是则暂时停止计时,MOV R1,,,#HOUR,;地址指针指向计时缓冲区首地址,AJMPMOD,NEXT1,:,CJNE A,,,#0BH,,,BEGIN,;是,ALARM,键否?,JBF1,,,NEXT2,;闹钟正在闹响否?,MOVR1,,,#AHOUR,;地址指针指向闹钟值寄存区首地址,MOD,:,SETBF0,;置位时间设置,/,闹钟定时标志,禁止显示计时时间,ACALLMODIFY,;调用时间设置,/,闹钟定时程序,SETBTR0,;重新开始计时,CLRF0,;清零时间设置,/,闹钟定时标志,恢复显示计时时间,AJMPBEGIN,NEXT2,:,SETBP1.0,;闹钟正在闹响,停闹,CLRF1,;清零闹钟标志,AJMPBEGIN,;*时间设,置,/,闹钟定时模块,MODIFY*,MODIFY,:,ACALLKEYIN,;调用键盘设置子程序,ACALL COMB,;调用合字子程序,RET,键盘设置子程序,KEYIN,:,KEYIN,:,PUSHPSW,PUSHACC,SETBRS1,;保护现场,MOVR0,,,#DISP0,;,R0,指向显示缓冲区首地址,MOVR7,,,#06H,;设置键盘输入次数,L1,:,CLRRS1,ACALLKEYSCAN,;调用键盘扫描程序取按下键,的键号,SETB RS1,CJNEA,,,#0AH,,,L2,;键入数合法性检测(是否大,于,9,),L2,:,JNCL1,;大于,9,,重新键入,MOVR0,,,A,;键号送显示缓冲区,INCR0,DJNZR7,,,L1,;,6,位时间输入完否?未,完继续,否则返回,POPACC,POPPSW,CLRRS1,;恢复现场,RET,;*键盘扫描子程序,KEYSCAN*,KEYSCAN:ACALLTEST,;调判按键是否按下子程序,TEST,JNZ REMOV,;有键按下调消抖延时,ACALLDISPLAY,ACALLALARM,AJMP KEYSCAN,;无键按下继续判是否按键,REMOV:ACALL DISPLAY,;调用显示子程序延时消抖,ACALLTEST,;再判是否有键按下,JNZLIST,;有键按下转逐列扫描,ACALLDISPLAY,ACALL ALARM,AJMPKEYSCAN,;无键按下继续判是否按键,LIST:MOVR2,,,#0FEH,;首列扫描字送,R2,MOVR3,,,#00H,;首列键号送,R3,LINE0:MOVDPTR,,,#PORTA,;,DPTR,指针指向,8155,的,A,口,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,;求键号,NEXT:INC R3,;扫描下一列,MOV A,,,R2,;列扫描字送,A,JNBACC.3,,,EXIT,;,4,列扫描完,重新进行 下一轮扫描,RL A,;,4,列未扫描完,扫描字左移扫描下一列,MOV R2,,,A,;扫描字送,A,AJMP LINE0,;转向扫描下一列,EXIT:AJMP KEYSCAN,;等待下一次按键,TRYK:ADD A,,,R3,;按公式计算键码,求得键号,PUSH ACC,;键号入栈保护,LETK:ACALL TEST,;等待按键释放,JNZLETK,;按键未释放,继续等待,POPACC,;按键释放,键号出栈,RET,;键盘扫描结束,返回,TEST:MOVDPTR,,,#PORTA,;,DPTR,指针指向,8155,的,A,口,MOV A,,,#00H,MOVX DPTR,,,A,;全扫描字,00H,送,8155,的,A,口,MOVDPTR,,,#PORTC,;,DPTR,指针指向,8155,的,C,口,MOVX A,,,DPTR,;读入,C,口行状态,CPLA,;,A,取反,以高电平表示有,键按下,ANLA,,,#07H,;屏蔽高,5,位,RET,;*显示子程序,DISPLAY*,DISPLAY:JB F0,,,DISP,;允许时间显示标志,F0=1,转,DISP,ACALL SEPA,;否则调用,SEPA,刷新显示缓冲区,DISP:push psw,;动态扫描显示子程序,Pushacc,setb rs0,MOV dptr,,,#PORTA,MOV A,,,#0FFH,MOVX DPTR,,,A,;关显示,mov r0,,,#disp0,mov r7,,,#00h,mov r6,,,#06h,mov r5,,,#0feh,dis1:mov dptr,,,#tab,mov a,,,r0,movc a,,,a+dptr,mov dptr,,,#portb,movxdptr,,,a,mov dptr,,,#porta,mov a,,,r5,movx dptr,,,a,here:djnz r7,,,here,inc r0,mov a,,,r5,rl a,mov r5,,,a,djnz r6,,,dis1,clr rs0,pop acc,pop psw,ret,tab:db 3fh,,,06h,,,5bh,,,4fh,,,66h,,,6dh,,,7dh,,,07h,db 7fh,,,6fh,,,77h,,,7ch,,,39h,,,5eh,,,79h,,,71h,;共阴极字型码表,;*合字子程序,COMB*,COMB,:,MOV R0,,,#DISP1,;,R0,指向显示缓冲区小时,低位,ACALL COMB1,;合字,CJNE A,,,#24H,,,CHK,;小时大于,24,否?,CHK,:,JNCEXIT1,;大于,24,则取消本次设,置,退出,MOVR1,,,A,;否则小时送计时缓冲区,/,闹钟值寄存区小时单元,INCR1,MOVR0,,,#DISP3,;,R0,指向显示缓冲区分低位,ACALLCOMB1,CJNEA,,,#60H,,,CHK1,CHK1,:,JNC EXIT1,MOV R1,,,A,INCR1,MOV R0,,,#DISP5,;,R0,指向显示缓冲区秒低位,ACALL COMB1,CJNEA,,,#60H,,,CHK2,CHK2,:,JNCEXIT1,MOVR1,,,A,RET,EXIT1,:,AJMPMAIN,;输入不合法退出,重新清,零计时,COMB1,:,MOV A,,,R0,ANL A,,,#0FH,;取出低位,MOV43H,,,A,;暂存于,43H,单元,DECR0,;指
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!