/*********************************************************************************
* 【作 者】: 清翔电子:向量
* 【版 本】: V1.0
* 【网 站】: http://www.qxmcu.com/
* 【淘宝店铺】: http://qxmcu.taobao.com/
* 【实验平台】: 清翔 QX-MCS51 单片机开发板
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【编译环境】: Keil μVisio4
* 【程序功能】: 定时器0工作模式1 16位定时模式,数码管动态显示0-10,秒表。
* 【使用说明】:
**********************************************************************************/
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DU = P2^6;//数码管段选
sbit WE = P2^7;//数码管段选
//共阴数码管段选表0-9
uchar code tabel[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};
/*====================================
函数 : delay(uint z)
参数 :z 延时毫秒设定,取值范围0-65535
返回值 :无
描述 :12T/Fosc11.0592M毫秒级延时
====================================*/
void delay(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
/*====================================
函数 :display(uchar i)
参数 :i 显示数值,取值范围0-255
返回值 :无
描述 :三位共阴数码管动态显示
====================================*/
void display(uchar i)
{
uchar bai, shi, ge;
bai = i / 100; //236 / 100 = 2
shi = i % 100 / 10; //236 % 100 / 10 = 3
ge = i % 10;//236 % 10 =6
//第一位数码管
P0 = 0XFF;//清除断码
WE = 1;//打开位选锁存器
P0 = 0XFE; //1111 1110
WE = 0;//锁存位选数据
DU = 1;//打开段选锁存器
P0 = tabel[bai];//
DU = 0;//锁存段选数据
delay(5);
//第二位数码管
P0 = 0XFF;//清除断码
WE = 1;//打开位选锁存器
P0 = 0XFD; //1111 1101
WE = 0;//锁存位选数据
DU = 1;//打开段选锁存器
P0 = tabel[shi];//
DU = 0;//锁存段选数据
delay(5);
//第三位数码管
P0 = 0XFF;//清除断码
WE = 1;//打开位选锁存器
P0 = 0XFB; //1111 1011
WE = 0;//锁存位选数据
DU = 1;//打开段选锁存器
P0 = tabel[ge];//
DU = 0;//锁存段选数据
delay(5);
}
//定时器0初始化
void timer0Init()
{
TR0 = 1; //启动定时器0
TMOD = 0X01; //定时器工作模式1,16位定时器计数模式
TH0 = 0x4b;
TL0 = 0xfd; //定时50ms
}
void main()//main函数自身会循环
{
uchar mSec, Sec;//毫秒和秒储存变量
timer0Init();//定时器0初始化
while(1)
{
if(TF0 == 1)//判断是否溢出
{
TF0 = 0;//软件清零溢出标志位
TH0 = 0x4b;
TL0 = 0xfd; //定时50ms
mSec++;//50ms到
if(mSec == 20)
{
mSec = 0;
Sec++;//1秒时间到
}
}
display(Sec); //数码管显示函数
if(Sec > 10)
Sec = 0;//秒清零
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
16、定时计数器_定时.rar
共14个文件
bak:2个
uvproj:1个
uvopt:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 134 浏览量
2023-07-19
22:08:00
上传
评论
收藏 534KB RAR 举报
温馨提示
16、定时计数器_定时.rar
资源推荐
资源详情
资源评论
收起资源包目录
16、定时计数器_定时.rar (14个子文件)
16、定时计数器_定时
例程
定时器0工作模式1
timer0.lnp 42B
timer0.M51 6KB
main.OBJ 4KB
timer0 4KB
timer0.uvgui.admin 69KB
main.LST 6KB
timer0.uvopt 5KB
timer0.hex 654B
timer0_uvopt.bak 54KB
timer0_uvproj.bak 0B
main.c 3KB
timer0.uvproj 14KB
timer0.plg 401B
定时计数器.ppt 622KB
共 14 条
- 1
资源评论
普通网友
- 粉丝: 9976
- 资源: 1063
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功