ID: 20088459

实例21 LED显示秒表 课件(6份打包) 《单片机基础与应用》(C语言版) 同步教学

日期:2025-10-06 科目: 类型:课件 查看:20次 大小:6215385B 来源:二一课件通
预览图 0
同步,语言,单片机基础与应用,实例,打包,6份
    (课件网) 实例21 LED显示秒表 《单片机基础与应用(C语言版)》 高等教育-出卷网- 一、任务导入 01 任务要求 用单片机控制8个LEDLED,要求8个LED按照BCD(Binary Coded Decimal)码格式循环显示00~59,时间间隔为1s 8个LED实现的BCD显示秒表示意图(BCD码是用二进制形式表示十进制数,例如十进制数45,其BCD码形式为45H。BCD码只是一种表示形式,与其数值没有关系。) 二、任务分析 02 秒表设计的核心是精确的1s定时时间,可以采用定时器/计数器的中断方式实现。BCD码用4位二进制码表示一位十进制数,这4位二进制数的权值为8421,所以BCD码又称为8421码。十进制数码0~9所对应的二进制码见表 十进制数码 0 1 2 3 4 5 6 7 8 9 二进制码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 十进制数码与BCD码对应表 三、硬件电路 03 单片机控制8个LED的硬件电路 四、程序设计 04 程序演示 //程序:ex23.c //功能:采用BCD码格式显示的0~59简易秒表程序 #include //包含头文件REGX51.H,定义了51单片机的所有SFR //全局变量定义 unsigned char count=0; //对50ms定时时间进行计数 unsigned char miao=0; //秒计数器 void main() { unsigned char t; TMOD=0x10; //置T1为工作方式1 TH1=(65536-50000)/256; //设置T1计数初值高8位,定时时间50ms TL1=(65536-50000)%256; //设置T1计数初值低8位 ET1=1; //定时器T1中断允许 EA=1; //总中断允许 TR1=1; //启动T1 while(1) { t=(((miao/10)<<4)|(miao%10));// 将i转换为BCD码 P1=~t; // 计数值取反后送P1口显示 } } 程序演示 //函数名:time50ms //函数功能:在T0工作方式1下定时50ms,采用查询方式实现 //形式参数:无符号整型变量i,控制定时时间,i*50ms //返回值:无 void time50ms(unsigned char i) { unsigned char k; for(k=0;k课件网) 实例22 LED静态显示2位秒表 《单片机基础与应用(C语言版)》 高等教育-出卷网- 实例要求 单片机有4个并行I/O口P0~P3,每个I/O口包括8条I/O口线。采用P1口、P2口来控制2个共阳极LED的段码,公共端com接在+5V上。P1口控制的LED显示十位数,P2口控制的LED显示个位数,从0开始显示,显示到59后,重新从0开始显示。 设计一个00~59的2位秒表,用单片机控制2个LED静态显示。 实例分析 硬件电路 采用P1、P2口来控制2个共阳极LED的段码,com端都接在+5V上 控制程序设计 //程序:ex24.c //功能:静态LED显示2位秒表 #include //包含头文件REGX51.H,定义了51单片机的所有SFR //函数名:time50ms //函数功能:在T0工作方式1下定时50ms,采用查询方式实现 //形式参数:无符号整型变量i,控制定时时间,i*50ms //返回值:无 void time50ms(unsigned cha ... ...

    ~~ 您好,已阅读到文档的结尾了 ~~