单片机两位数码管计数设计1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、设计目的 (4)
二、设计要求 (4)
三、设计电路图 (4)
四、设计说明 (5)
1、数码管的显示原理 (5)
2、晶振的作用 (5)
五、参考程序框图: (6)
六、参考代码…………………………………………………7-9
七、设计时使用的主要参考书及手册 (9)
八、设计心得: (9)
两位数码管计数
一、设计目的:
1. 学习外部中断技术的基本使用方法。
2. 学习中断处理程序的编程方法。
3. 学习51单片机内部计数器的使用和编程方法。
4. 学习使用数码管的显示原理以及应用。
二、设计要求:
按开关开始,在按开关停止计秒,计秒从0开始,讲到99,再从0开始计秒。按下复位键开关,数码管就会显示0.
三、设计电路连线:
四、设计说明:
1、数码管的显示原理:
@单片机系统扩展LED数码管时多用共阳LED:
共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码
管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。
@通常每个段笔画要串一个数百欧姆的降压电阻。
字形0123456789黑共阳0C00F90A40B09992820F880900FF 共阴FC60da F266B6BE E0FE F600
计时计算:
fosc= 12MHz 则:
(振荡周期)1Tc=1/12MHz
(机器周期)1Tm=12Tc=12/12MHz=1 S
故选择方式1 工作可以得到:
则初值为:3CB0H
2、晶振的作用
晶振的作用是为系统提供基本的时钟信号。晶振两边的电容叫负载电容,单片机的晶振
工作于并联谐振状态,晶振的频率是在负载电容下测得的,能最大限度的保证频率值的误差。
也能保证温漂等误差。两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易
造成谐振的不平衡,容易造成停振或者干脆不起振.
五、参考程序框图:
主程序流程图
↓
两位数码管显示模块
六、参考代码:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP SER
ORG 000BH
LJMP IT0P
ORG 0100H
MAIN: MOV R6,#00H
MOV DPTR,#TAB
MOV R3,#20
CLR 20H
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
SETB IT0
SETB ET0
SETB EX0
SETB PX0
CLR PT0
SETB EA
LOOP: MOV A,R6
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,#00001110B
MOV P1,A
LCALL DELAY
MOV A,B
MOVC A,@A+DPTR
MOV P0,#00001101B
MOV P1,A
AJMP LOOP
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H SER: PUSH PSW
PUSH ACC
PUSH DPH
PUSH DPL
CPL 20H
POP DPL
POP DPH
POP ACC
POP PSW
RETI
IT0P: PUSH PSW
PUSH ACC
MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ R3,LOOP1
MOV R3,#20
JNB 20H,LOOP1
INC R6
CLR C
MOV A,R6
SUBB A,#100
JC LOOP1
MOV R6,#0
LOOP1: POP ACC
POP PSW
RETI
DELAY: PUSH PSW
PUSH ACC
MOV R5,#4H
DEL4: MOV R4,#19H
DEL5: DJNZ R4,DEL5
DJNZ R5,DEL4
POP ACC
POP PSW
RET
END
七、设计时使用的主要参考书及手册
1、《单片机原理及应用》(“十五”国家级规划教材) 张毅刚主编高教出版社
2、单片机原理与应用实验指导书(自编)
3、《单片微型计算机原理及应用》张坤毅等编西安电子科技大学出版社1997年
4、《单片机原理及接口技术》胡汉才编清华大学出版社
5、依据图书馆现有资料及网络资源。
八、设计心得:
学习单片机技术有一定的难度,不花费一番努力是很难学会的,但是只要不断努力就一定能成功,学习单片机永远记住一句话:实践是检验真理的唯一方法。多动手做,哪怕是从点亮一只指示灯开始,也要动手去做,否则就会永远停留在书本上。
在编写程序的过程中也碰到很多问题,大部分问题我都是在网上找到答案的。尤其是在一些关于单片机的专业网站,他们把我遇到的一些问题解释得非常详细、到位!所以我觉得结合网络来学习单片机,多从别人那学习是一个快速掌握单片机技术的好方法!