导航:首页 > 操作系统 > 0到99单片机计数器

0到99单片机计数器

发布时间:2022-10-04 16:29:40

⑴ 跪求单片机at89c51 0到99秒计数器程序

看不见你接线图,先来一个C语言的,汇编确实没C语言方便

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a , b=0;
sbit wei1=P1.0;
sbit wei2=P1.1;
//共阴数码管七段码
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};
void Delay1ms(uint i) //1ms延时程序
{
uint j;
for(;i>0;i--)
{
for(j=0;j<164;j++)
{;}
}
}
void display( uchar a)) //显示程序
{
P0= table[a/10];//十位
wei1=1;
Delay1ms(2) ;
wei1=0;
P0= table[a%10];//个位
wei2=1;
Delay1ms(2) ;
wei2=0;
}
void main(void )//主程序
{
TMOD=0x01;// 定时器0工作方式一
ET0=1;
EA=1;
TH0=(65536-50000)/256;//定时50ms
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
display(b);
}
}
//中断子程序
void Timer0(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20)//20次是1 秒
{ a=0;b++;}
if(b==100)
{ b=0;}
}

⑵ 求单片机课程设计 用汇编语言设计计数器(要求从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

⑶ 麻烦大神用单片机c51,编0-99共阳极计数器程序,谢谢!

#include<reg51.h>
#defineucharunsignedchar;
uchardistab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//0到f
ucharnumber,dat,time;
voidt0isr()interrupt1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
number++;
if(number>1)number=0;
switch(number)
{
case0:P2=0x02;P0=distab[dat/10];
break;
case1:P2=0x01;P0=distab[dat%10];
break;
default:break;
}
}
voidt1isr()interrupt3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time++;
if(time>=20)
{
time=0;
dat++;
dat%=100;
}
}
main()
{
TMOD=0x11;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
ET1=1;
TR0=1;
ET0=1;
EA=1;
while(1);
}

⑷ 0到99可增减计数器的单片机系统。。求汇编语言程序。在线等。

ORG 0000H
LJMP START
ORG 0030H
P2.0 EQU ADD
P2.1 EQU DEC
START: MOV A,#00H
MOV B,10
MOV DPTR,#LED_Table
MAIN: PUSH ACC
DIV AB //A除以B,得数存A余数存B(好像是这样,记不太清了)
MOVC A,@A+DPTR //查表,得到十位上的数字对应的LED管码

/*这里加入把管码通过单片机引脚*/
/*写到LED管的程序,具体看你的电路了*/

MOV A,B
MOVC A,@A+DPTR //查表,得到各位商的LED管码

/*这里加入把管码通过单片机引脚*/
/*写到LED管的程序,具体看你的电路了*/
POP ACC
JNB ADD,Countadd
JNB DEC Countdec
JMP MAIN
Countadd: CJNE A,99,add
MOV A,0
SJMP BACK
add: INC ACC
BACK1: RET

Countdec: CJNE A,0,dec
MOV A,99
SJMP BACK2
dec: DEC ACC
BACK2: RET

LED_Table: DB .......................................................
DB ....................................................... //LED 1,,2,3......到9对应的管码,按顺序
END

改进了一下,没有测试过,。。。。

⑸ 设计十进制0-99的计数器,采用按键计数,数码管显示,采用单片机内部的定时计数器完成计数功能

呵呵,此软件10分钟完成不了即可认为51单片机没学好。

⑹ 设计十进制0-99的计数器,采用按键计数,数码管显示,采用单片机内部的定时计数器完成计数功能

看这个,跟你要求的差不多,你自己稍稍改下就OK啦~(≧▽≦)/~

#include<reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharDSY_CODE[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};

ucharcount=0;

voidmain()

{

P0=0X00;

P2=0X00;

TMOD=0X06;//TMOD=00000110B,C/T=1,工作于计数方式

TH0=TL0=256-1;

ET0=1;//允许T0中断

EX0=1;//允许INT0中断

EA=1;

IP=0X02;//定时器0中断优先

IT0=1;//INT0中断触发为下降沿触发

TR0=1;//启动T0

while(1)

{

P0=DSY_CODE[count/10];

P2=DSY_CODE[count%10];

}

}

voidclear_counter()interrupt0

{

count=0;

}

voidkey_counter()interrupt1

{

count=(count+1)%100;

}

⑺ 单片机计数器0到999的编程怎么写

估计你说的是汇编语言。我以51为标准假设晶振为6Mhz.
计算计数初值是0CEH。计数器工作方式2。
程序:mov ie, #00h 关中断
mov tmod,#02h 置计数器工作方式2
mov th0,#0ceh 保存计数初值
mov tl0,#0ceh 值计数初值
mov r0,#0ah 置循环次数
setb tr 启动计数器
loop:jbc tf0,loop1 判断溢出标志位
ajmp loop
loop1:cjnz r0,loop xunhuan
reti 返回主程序

⑻ 00-99计数器设计。 利用单片机来制作一个手动计数器,还有仿真图,谢谢

ORG 0000H

JMP BEGIN

ORG 0030H

TABLE: ; 共阴极数码管显示代码表

DB 3FH,06H,5BH,4FH,66H ;01234

DB 6DH,7DH,07H,7FH,6fh ;56789

;---------------------------------------

BEGIN: MOV P0,#0 ;数码管初始化,不显示

MOV P1,#0 ;数码管初始化,不显示

MOV 30H,#0 ;数据初始化为0

LOOP:

JB P3.2,LOOP1 ;加1键如果未按下转LOOP1

JNB P3.2,$ ;键被按下,等待键抬起

INC 30H ;数据加1

LCALL DIS ;显示

SJMP LOOP ;会循环起点

LOOP1:

JB P3.6,LOOP ;清零键如果未按转循环起点

JNB P3.6,$ ;键被按下等待按键抬起

MOV 30H,#0 ;数据清零

LCALL DIS ;显示

SJMP LOOP ;会循环起点

DIS:

MOV A,30H ;数据送A

CJNE A,#100,DIS1

CLR A

MOV 30H,A

DIS1:

MOV B,#10 ;除数送B

DIV AB ;除法运算

MOV 32H,A ;十位数送32H

MOV 33H,B ;个位数送33H

MOV DPTR,#TABLE;段码首地址送数据指针

MOV A,33H ;个位数送A

MOVC A,@A+DPTR ;查表

MOV P1,A ;结果送P1

MOV A,32H ;十位数送A

MOVC A,@A+DPTR ;查表

MOV P0,A ;结果送P0

RET ;子程序返回

END ;程序结束

⑼ 单片机用汇编写两个数码管显示0到99循环的程序

1、新建项目,做好准备。

⑽ 利用AT89S51单片机来制作一个手动00-99计数器。

teble里的值就是共阴8段(含小数点)数码管的段码。

8段从上面一横开始顺时针依次为a、b、c、d、e、f、g(中间的横)和h(小数点),分别接在IO口的0~7

例如要显示0,则段码为00111111即0x3f。

其它,你可自行推出。

阅读全文

与0到99单片机计数器相关的资料

热点内容
网盘忘记解压码怎么办 浏览:852
文件加密看不到里面的内容 浏览:651
程序员脑子里都想什么 浏览:430
oppp手机信任app在哪里设置 浏览:185
java地址重定向 浏览:268
一年级下册摘苹果的算法是怎样的 浏览:448
程序员出轨电视剧 浏览:88
服务器系统地址怎么查 浏览:54
解压游戏发行官 浏览:601
国外小伙解压实验 浏览:336
顶级大学开设加密货币 浏览:437
java重载与多态 浏览:528
腾讯应届程序员 浏览:942
一键编译程序 浏览:129
语音加密包哪个好 浏览:339
有什么学习高中语文的app 浏览:282
安卓手机的表格里怎么打勾 浏览:409
阿里云服务器有网络安全服务吗 浏览:969
超解压兔子视频 浏览:24
单片机怎么测负脉冲 浏览:174