单片机初始化8155c语言,单片机80c51设计一个两位计数器,能对外部的脉冲进行计数,能进行复位。...

该博客文章详细介绍了基于8051单片机的一段定时器中断程序,用于每5毫秒更新LCD显示屏上的数字显示。通过中断服务函数`ext0()`和`t0isr()`,实现了数字的自动滚动。程序中使用了`TMOD`寄存器配置定时器,`TH0`和`TL0`设置初始计数值,`TR0`启动定时器,并利用中断处理数字的显示逻辑。同时,文章还展示了如何用`distab`数组存储ASCII码以显示十进制数字。
摘要由CSDN通过智能技术生成

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

camelotwkw

2017.05.04

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:43%    等级:10

已帮助:620人

#include

#define uchar unsigned char;

uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f

uchar number,dat;

void ext0() interrupt 0

{

dat++;

dat%=100;

}

void t0isr() interrupt 1

{

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

number++;

if(number>1)number=0;

switch(number)

{

case 0:P2=0x02;P0=distab[dat/10];

break;

case 1:P2=0x01;P0=distab[dat%10];

break;

default:break;

}

}

main()

{

TMOD=0x01;

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

TR0=1;

ET0=1;

EX0=1;

IT0=1;

PX0=1;

EA=1;

while(1);

}

00分享举报

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值