Proteus入门单片机(3)例程分析

发布者:中和子最新更新时间:2022-12-07 来源: zhihu关键字:单片机  例程分析 手机看文章 扫描二维码
随时随地手机看文章

74HC573详解:

/*

调试环境:Proteus 7.8  AT89S52单片机  8位共阴数码管

功能为:实现数码管1秒~99秒倒计时,    12M晶振

*/


#include

#define uchar unsigned char

sbit LED1=P1^1;                           //连的是LED1

#define MAX_NUM     13                //最大倒计时数1~99可设

#define SEGPORT         P0           //定义数码管连接端口

sbit LE_DUAN         = P2^0;           //定义573锁存使能端口 段锁存

sbit LE_WEI         = P2^1;           //定义573锁存使能端口 位锁存


unsigned char code Seg_Duan[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管显示段码值 0~9

unsigned char code Seg_Wei[]  = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};                 //数码管的位码,低电平有效。


static uchar second=MAX_NUM,count;    //99只是一个数,可以任意改,因为这里只学习怎样实现倒计时


uchar shiwei;

uchar gewei;


void delay(unsigned int cnt)

{

        while(--cnt);

}


void main()

{

        TMOD|=0x01;       //定时器设置 16位

        TH0=(65536-50000)/256;  //定时时间   50ms

        TL0=(65536-50000)%256;

        EA=1;

        ET0=1;

        TR0=1;

        SEGPORT = 0;//P0等于0,段码位码均为零

        LE_DUAN = 0;//74HC573锁

        LE_WEI = 0;//74HC573锁

        while(1)

        {

                shiwei=second/10;  //数码管10位

                gewei=second%10;   //数码管个位

                       //下面四句送段码,

                SEGPORT=0;    //清空数据,防止有交替重影

                LE_DUAN=1;      //段锁存

                LE_DUAN=0;

                delay(30);


                SEGPORT = Seg_Wei[1];     //先送位码值

                LE_WEI = 1;           //573高电平锁存

                LE_WEI = 0;

                SEGPORT = Seg_Duan[shiwei];    //再送段码值,这里为 2~9

                LE_DUAN = 1;                //573高电平锁存

                LE_DUAN = 0;

                delay(300);



                SEGPORT = Seg_Wei[0];           //先送位码值

                LE_WEI = 1;           //573高电平锁存

                LE_WEI = 0;

                SEGPORT = Seg_Duan[gewei]; //再送段码值,这里为 2~9

                LE_DUAN = 1;                //573高电平锁存

                LE_DUAN = 0;

                delay(300);

        }

}


void tim(void) interrupt 1    //定时器0中断    

{

        TH0=(65536-50000)/256;     //定时时间   50ms

        TL0=(65536-50000)%256;

        count++;

    if(count==20)     //50毫秒定时,50*20=1000(毫秒)=1秒

    {

       count=0;

       second--;

       if(second==0xff)/*无符号char型数值,-1为:0xff,0之后,显示最大倒计数。*/

       {

         LED1=~LED1;      //这里让LED1反转一下,表现倒计时一周。

         second=MAX_NUM;   //回到最大倒计数值,再次倒计,当然,可以加入其他的控制

       }

         

    }

}


分析:在死循环里,一直重复着以下三个操作

第一:分离second的十位和个位,消隐

第二:十位送到十位

第三:个位送到个位


什么导致second的变化?

答:通过定时器与中断,在定时时间到在中断子程序中改变计数值。


实验有什么问题?

首先硬件连接了8颗LED,这里只用了一颗,动态数码管也没有发挥他的功能,然后在进中断时程序的位置无法确定,不能做到精准倒计时。


如何改进?

使用38译码器可以进一步节省代码,将led改为静态数码管可以记录倒计时次数。


学到了什么?

74HC573可以用来控制动态数码管,38译码器可以节省引脚。


关键字:单片机  例程分析 引用地址:Proteus入门单片机(3)例程分析

上一篇:Proteus入门单片机(4)例程分析
下一篇:单片机扩展技术

推荐阅读最新更新时间:2024-11-05 11:11

定时的应用方法与技巧
在单片机89C51中的使用过程中,最为重要的也无非就是定时器、中断、串口通信的使用,而这三者的使用又是有固定的公式的,所以使用起来都是非常方便的,比如定时器的使用: 1、初始化 EA=1;全局中断的控制由EA决定,只有在EA=1的情况下其他的中断才有作用,所以必不可少 ET0=1;定时器0开启, TMOD=0x01; TR0=1; TH0=0xec; TL0=0x78;定时的长短由TH0和TL0共同决定 2、定时的响应函数 void ETX0()interrupt 1 { } 一下程序就是定时器使用的完整过程的展示,请注意使用步骤的总结: 、、、、、、、、、、、、、、、、、、、、、、、、、、
[单片机]
PIC单片机驱动LCD模块的设计
偏置电压是通过使用外部梯形电阻网络(电路见下图)而产生。因为梯形电阻网络连接在VDD和Vss之间,所以会有电流通过梯形电阻网络,电流大小与电阻成反比。也就是说,电阻越大,通过梯形电阻网络的电流就越小。如果使用10kΩ电阻,且VDD=5V,则梯形电阻网络将不断消耗166μA的电流。这对于一些使用电池供电的应用来说是很大的电流。 如何最大程度增大电阻,而又不会对显示质量产生负面影响?一些基本的电路分析可以帮助确定梯形网络中电阻增大的程度。 LCD模块实际上就是一个模拟多路开关,它交替地将LCD电压连接到各个段和公共引脚(段电极和公共电极交叉于每一个LCD像素点)。LCD像素可用电容进行模拟。梯形电阻网络中的每个分接点可以用戴维
[单片机]
PIC<font color='red'>单片机</font>驱动LCD模块的设计
MCU各领域应用趋势及市场份额
     消费电子仍是最大应用领域。三表及汽车电子等正在兴起 中国是消费电子产业大国,彩色电视机、电冰箱、洗衣机、空调以及其他各类小家电产品产量位居世界前列,对MCU形成巨大的需求。从应用结构市场来看,消费电子是MCU最大的细分应用市场。2005年中国MCU在消费电子市场销量为29.6亿块,所占比例为57.0%;销售额为127.5亿元,市场份额为43.1%。 随着全球IT制造业持续向中国转移,中国IT制造业规模持续壮大,显示器、鼠标、键盘、摄像头、USB外接设备等计算机周边产品产业发展迅速,带动对MCU的需求持续增长。2005年中国计算机领域中,MCU销量达到11.9亿块,所占比例为22.9%;销售额为68.3亿元,市场份额达到
[焦点新闻]
以高速缓存和片上闪存实现微控制器近似的确定性
为了控制执行机构,实时控制系统要从传感器接收输入信号,经控制运算后向执行机构输出指令信号。这些输出必须在接收到输入后的规定时间内被触发——即系统需具有实时性;同时,对相同控制状态下的相同输入,输出也应当始终相同——即系统需具有确定性。 电子行业中众多领域的发展正在使这些基本的实时控制系统变得越来越复杂。一方面,控制算法越来越精细,达到了人工智能的决策水平。另一方面,这些控制系统越来越多地连网,即与以太网或无线局域网 (LAN) 进行局域连接,以及与互连网连接实现远距离通信。此外,用户界面也变得越来越复杂,对安全性的要求也越来越高,使得数据加密和外部控制源的合法性验证成为系统不可缺少的功能。 这些发展趋势使得处理器必须具备更强大
[单片机]
以高速缓存和片上闪存实现<font color='red'>微控制器</font>近似的确定性
基于ARM的可定制MCU可承担FPGA的工作
  如今的产品生命周期可能短至六个月,因此在这种情况下要想取得定制ASIC的低成本、低功耗和高性能优势几乎是不可能的。定制ASIC的设计周期通常要一年左右,这通常要比终端产品的生命周期还要长。另外,标准单元ASIC还具有NRE费用(非重复工程成本),对于基本的0.13微米设计,该成本约为30万美元,而对于具有复杂IP内容的90nm设计将超过100万美元。因而当每年的批量小于10万片时,从经济角度看就不具有可行性。   为此人们研发出了平台化或结构化ASIC,它们具有预设计的IP块和可编程的ASIC门,可显著降低成本并缩短设计周期。这种方案将设计周期从一年甚至更长的时间缩短到几个月,还将NRE成本降低到大约15万美元,不过与门阵列
[单片机]
基于ARM的可定制<font color='red'>MCU</font>可承担FPGA的工作
单片机C环境下位操作的实现方法
  C语言既有高级语言的各种特点,又可对硬件进行操作,并对进行结构化程序设计,用C语言编写的程序较容易移植,它们可生成简洁可靠的目标代码,在代码效率和代码执行速度上完全可以和汇编媲美。采用C语言进行单片机编程是嵌入式程序设计的发展趋势。但是,在嵌入式控制等领域,经常需要控制某一个二进制位,然而除了Keil C51等C环境外,很多单片机C环境都没有扩充对位变量定义的关键字,甚至单片机本身的硬件上也没有对单个位操作的汇编指令,这使得已习惯MCS-51内核单片机Keil C51编程的用户都为其C环境不能对位变量进行位操作而烦恼。 1 用“读-修改-写”方法实现对单个位的位操作 ANSIC中,一般采用“读-修改-写”的方法实现单个
[应用]
C8051F040单片机在语音识别系统中的应用
语音识别是人机交互的一种重要技术手段。根据实际需要和应用场合的不同,语音识别可以分为孤立词识别和连续语音识别、特定人识别和非特定人识别。语音识别追求的主要指标为高识别率、实时性和大词汇量;而对于一个语音识别系统,还应考虑软硬件设计简单、价格低廉、外围控制灵活、人机交互便捷等特点。性能良好且成本低廉的语音识别系统在智能家电接口、智能玩具、智能仪器等领域提供便捷的人机交互服务,将具有广阔的应用前景。 语音识别系统构成 语音识别系统主要包括识别单元选取、预处理、特征提取、模式匹配、参考模式库等几个部分。根据模式识别的原理,对未知的语音的模板与已知语音的参考模板逐一进行比较,得到的最佳匹配的参考模板就是识别的最终结果。语音识别的系统
[单片机]
C8051F040<font color='red'>单片机</font>在语音识别系统中的应用
【GD32 MCU 入门教程】GD32 MCU 常见外设介绍 (6) ADC 模块介绍
6.1.ADC 基础知识 12 位逐次逼近式模数转换器模块(ADC),可以采样来自于外部输入通道、内部输入通道的模拟信号,采样转换后,转换结果可以按照最低有效位对齐或最高有效位对齐的方式保存在相应的数据寄存器中。 6.2.GD32 ADC 外设原理 GD32 ADC 主要特性 ◼ 高性能: – ADC采样分辨率: 12位、 10位、 8位、或者6位分辨率; – 前置校准功能; – 可编程采样时间; – 数据存储模式:最高有效位对齐和最低有效位对齐; – 支持规则数据转换的DMA请求。 ◼ 模拟输入通道: – 16个外部模拟输入通道; – 1个内部温度传感器输入通道(VSENSE); – 1个内部参考电压输入通道(VREFINT
[单片机]
【GD32 <font color='red'>MCU</font> <font color='red'>入门</font>教程】GD32 <font color='red'>MCU</font> 常见外设介绍 (6) ADC 模块介绍
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved