求单片机课程设计 用汇编语言设计计数器(要求从0~9999,在数码管上显示)!!!!!!!!!!!!!

如题所述

单片机课程设计报告

题 目 计时器设计
班 级 电 信 093   
学 号 090301334
姓 名 周
时 间 2010.12.20
成 绩
指导教师 石巧云

目录
一、 前言………………………………………………………………1
单片机的应用介绍…………………………………………………1
二、 课程设计的目的和要求…………………………………………2
(一)课程设计的目的…………………………………………… 2
(二)课程设计的基本要求……………………………………… 3
三、 总体设计…………………………………………………………3
(一)工作原理…………………………………………………… 3
(二)硬件总体设计……………………………………………… 4
(三)软件总体设计……………………………………………… 5
四、综合调试………………………………………………………… 7
(一)keil调试 …………………………………………………… 8
(二)Proteus调试………………………………………………… 9
五、结束语…………………………………………………………… 9
六、参考文献 …………………………………………………………10

前言
单片机的应用介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用单片机的应用介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应
智能化控制的科学家、工程师。
与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
(1.在智能仪器仪表上的应用
(2.在工业控制中的应用
(3.在家用电器中的应用
(4.在计算机网络和通信领域中的应用
(5.单片机在医用设备领域中的应用
(6.在各种大型电器中的模块化应用
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。

二、 课程设计的目的和要求
(一)课程设计的目的
1. 进一步熟悉和掌握8051单片机的结构及工作原理。
2. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法
3. 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
4. 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5. 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。

(二)课程设计的基本要求
用AT89C51 单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,但一秒产生时,秒计数加1,秒计数加到60时,自动从0开始。单片机晶振频率为12MHz。

二、 总体设计
(一) 工作原理
LED显示器的结构与原理
1、结构种类
七段LED显示器(数码管)系发光器件的一种。常用的LED发光器件有两类:数码管和点阵。数码管内部有七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组成字符。常见数码管有10根管脚。管脚排列如下图(a)所示。其中COM为公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种。如下图(b)(c)所示,使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。发光二极管需5~10mA的驱动电流才能正常发光,一般需加限流电阻控制电流的大小。

2、显示原理
LED数码管的a~g七个发光二极管。加正电压的发光加零电压的不能发光,不同亮暗的组合能形成不同的字符,这种组合称为字型码。共阳极和共阴极的字型码是不同的,如下图所示。

LED字符显示代码表

显示 段符号 十六进制代码
dp g f e d c b a 共阴极 共阳极
0 0 0 1 1 1 1 1 1 3FH C0H
1 0 0 0 0 0 1 1 0 06H F9H
2 0 1 0 1 1 0 1 1 5BH A4H
3 0 1 0 0 1 1 1 1 4FH B0H
4 0 1 1 0 0 1 1 0 66H 99H
5 0 1 1 0 1 1 0 1 6DH 92H
6 0 1 1 1 1 1 0 1 7DH 82H
7 0 0 0 0 0 1 1 1 07H F8H
8 0 1 1 1 1 1 1 1 7FH 80H
9 0 1 1 0 1 1 1 1 6FH 90H

(二) 硬件总体设计
1、主要元器件选择
主要元器件选用型号和数量如下:
1个AT89C51(单片机) 1个CRYSTAL(晶振) 2个CAP(电容)
3个RES(电阻) 2个7SEG-COM-CATHOD(共阴极数码管)
1个CAP-ELEC(电解电容)
2、系统板上硬件连线
(1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
(2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。
3、计时器电原理图

(三)软件总体设计
1、程序设计内容
(1.在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,从新秒计数。
(2.对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余。

(3.在数码上显示,仍通过查表的方式完成。
(4.一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒。

2、延时1秒子程序
DELY1S: MOV R5,#100
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
3、程序流程图

4、汇编源程序设计
Second EQU 30H
ORG 0
START: MOV Second,#00H ;设置显示初值为00
NEXT: MOV A,Second
MOV B,#10
DIV AB ;十位数存于A中,个位数存于B中
MOV DPTR,#TABLE ;字型码地址送DPTR
MOVC A,@A+DPTR ;查十位字型码
MOV P1,A ;送P1口显示
MOV A,B
MOVC A,@A+DPTR ;查个位字型码
MOV P2,A ;送P2口显示
LCALL DELY1S ;调用延时1秒子程序DELY1S
INC Second ;显示值加1
MOV A,Second
CJNE A,#90,NEXT ;显示值不为90转到NEXT执行
LJMP START ;返回到主程序
DELY1S: MOV R5,#100 ;1S延时子程序
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴数码管字型码
END
四、综合调试
(一)Keil调试
程序调试完成图

(二)Proteus调试

五、结束语
完成情况:经过两个星期的努力,我们一组成员终于完成了秒表控制方案的设计,主要是用AT89C51单片机实现0-99秒计时器控制方案。本设计还包含数码管显示部分,可直接显示时间可方便观察。通过这次课程设计,使我得到了一次用专业知识和专业技能去分析问题、解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及用汇编语言设计程序的思路技巧等方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。

六、参考文献
[1]. 江力主编,单片机原理与应用技术,清华大学出版社,2008年4月第6次印刷
[2].蔡骏主编,单片机实验指导教程,安徽大学出版社,2008年7月第一次印刷
[3]. http://www.51c51.com/51test/cc411.htm
温馨提示:内容为网友见解,仅供参考
第1个回答  2022-10-02

求单片机课程设计 用汇编语言设计计数器(要求从0~9999,在数码管上显示)!

计数器,是对外来脉冲计数。

那么,下图电路,就应该可以满足条件了。

用按键,当做脉冲输入设备。

电路确定后,再把程序,稍稍改动即可。

第2个回答  2011-06-16
ORG 0000H

MOV A,#3FH
MOV DPTR,#0EFFFH
MOVX @DPTR,A
MOV DPTR,#0F7FFH
MOVX @DPTR,A
MOV DPTR,#0DFFFH
MOVX @DPTR,A
MOV DPTR,#0FEFFH
MOVX @DPTR,A
LOOP1:JB P3.3, $
CALL DELAY
JB P3.3,LOOP1
MOV R5,00H

START1:
MOV R0,#00H
START:

MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
INC R0
CALL DELAY

CJNE R0,#10,START
LOOP2:MOV A,R0
ONE:MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0F7FFH
MOVX @DPTR,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
MOVX @DPTR,A
INC R0
CALL DELAY
TWO:CJNE R0,#100,LOOP2
MOV A,#3FH
MOV DPTR,#0F7FFH
MOVX @DPTR,A
INC R5
MOV A,R5
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0DFFFH
MOVX @DPTR,A
CALL DELAY
CJNE R5,#10,START1

LOOP3:
MOV A,R5
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0FEFFH
MOVX @DPTR,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0DFFFH
MOVX @DPTR,A
CALL DELAY
CJNE R5,#100,START1
DELAY:MOV R3,#0FFH
DEL2:MOV R4, #0FFH
DEL1:NOP
DJNZ R1,DEL1
DJNZ R2,DEL2
RET
TABLE:DB 3FH,06H,5BH
DB 4FH,66H,6DH,7DH
DB 07H,0FFH,6FH
END
第3个回答  2011-06-08
SO EASY,C语言是非常简单。
汇编的话,可以定义4个储存单元分别存放4个十进制数,然后很多单片机书都有讲的,多位的加法,自己找找看。

单片机,使用汇编语言使led数码管每隔1秒轮流显示数字0000-9999,这个怎么...
这是四位数的秒计数器,用四位一体共阴数码管显示,P0口输出段码,P2口输出位码。用定时器定时器50ms,采用中断方式,中断20次为1秒,显示数字加1。

单片机用汇编写两个数码管显示0到99循环的程序
1、新建项目,做好准备。2、数码管段选表。3、延时函数。4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。5、while(1) \/\/死循环效果{} 。6、dk = 1;\/\/打开段选,P0 = leddata[i];,dk = 0;\/\/关闭段选,delay(100);\/\/延时效...

计数器计数,七段数码管从0到9循环显示(用汇编语言)
新建项目,做好准备。数码管段选表。延时函数。uchari;变量i;wk=1;打开位选,P0=0xf7;11110111第4位数码管显示,wk=0;关闭位选。while(1)\/\/死循环效果{}。用两个计数器实现,一个计数器作为个位计数,另一个为十位计数,两个计数器联合从0-99计数,这个应该没什么问题吧。

计数器计数,七段数码管从0到9循环显示(用汇编语言)
计数器计数,七段数码管从0到9循环显示(用汇编语言)改一下,就可以对按键按下的次数,进行计数。

单片机汇编语言数码管显示0到9
先设计电路,在编写程序。下图电路,供你参考。

单片机高手们谁会用汇编语言实现0~99间的计数、暂停、清零程序。对初学...
;http:\/\/zhidao.baidu.com\/question\/485975186.html ;0.0 ~ 9.9 ;P0, P2静态显示 ;设系统晶振为12MHz。;按键连接在P3.5,;按一下,计时,再按一下,停止,再按一下,清零。;--- ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ;--- ORG 0100H INIT: ;初始化 MOV ...

...数码管从0显示到9999,然后再从0到9999计数,并且在显示完一次后,以...
6、装好簧片、弹簧和键杆,将按键插入原位置,使焊角插入焊孔并露出尖端部分,用电烙铁将其与焊孔焊牢,装上键帽即可。2012-7-19 16:48:03vdeatguamkj2805860736k楔ǒ力k楔ǒ力iㄎst‘擐uo洄z榨lm绰数码管显示 4位数码管从0显示到9999,然后再从0到9999计数,并且在显示完一次后,以-**-...

用51单片机汇编语言十进制0-9计数器
ORG 0000H JMP BEGIN ORG 000BH LJMP T0ISR ORG 0030H TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789 BEGIN:MOV TMOD,#06H MOV TH0,#0FFH MOV TL0,#0FFH SETB TR0 SETB ET0 SETB EA CLR A SJMP T0ISR:MOV...

AT89S52单片机 汇编语言 通过计时器编写0-9的循环显示
LJMP T0ISR ORG 0030H TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789 ;--- BEGIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-50000)MOV TL0,#LOW(65536-50000)SETB TR0 SETB ET0 SETB EA MOV R2,#0 SJMP T0ISR:CLR T...

51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ uint16 i=1000;while(i--);} void main(){ uchar n ;P2=0xfe;P1=0xff;while(1){ if(k1==0){ if(n>=9) n=0;else n++;P0=shuzu[n];while(!k1);delay();while(!

相似回答