3.数码管动态扫描 随意显示9999以内的数(使用定时器)
来源:互联网 发布:ubuntu怎样安装软件 编辑:程序博客网 时间:2024/05/18 13:46
- /*
- ***********************************************************************************************
- * Cool51
- * 51开发板例程
- *
- *
- * 文件名称:“main.c”
- * 摘 要:数码管扫描显示程序,随意显示一个9999以内数据大小
- * 作 者:Rays_ele
- *
- * 当前版本:1.0
- * 完成日期:2011/04/27
- * 版权所有:Rays - Copyright (C) 2011
- *
- ***********************************************************************************************
- */
- /*包含必要的头文件*/
- #include<reg52.h>//开发51单片机必须包含51单片机的头文件,该文件定义了51单片机内部寄存器的地址
- /*常用宏定义*/
- #define uchar unsigned char
- #define uint unsigned int
- /*程序接口定义*/
- //数码管的段码在原理图上已经和P0口相接,即P0.0对应数码管的a段,P0.1对于b段,依此类推,简单表示如下
- #define LED P1
- //LED_a-------P0.0
- //LED_b-------P0.1
- //LED_c-------P0.2
- //LED_d-------P0.3
- //LED_e-------P0.4
- //LED_f-------P0.5
- //LED_g-------P0.6
- //LED_s-------P0.7
- //下面是数码管的位定义,也就是数码管的公共端,具体电路讲解见Cool51原理图,该引脚为低电平即选通该位数码管
- sbit LED_1=P2^0;//LED_1-------P2.0
- sbit LED_2=P2^1;//LED_2-------P2.1
- sbit LED_3=P2^2;//LED_3-------P2.2
- sbit LED_4=P2^3;//LED_4-------P2.3
- /*全局变量定义部分*/
- unsigned char code LED_Code[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};//共阳码
- // 0 1 2 3 4 5 6 7 8 9 灭 -
- unsigned int number=0; //全局数据,此数据是多少,数码管自动显示多少,显示程序由中断调用,
- /*
- +---------------------------------------------------------------------------------------+
- |函数名称: Delay_ms |
- |---------------------------------------------------------------------------------------|
- |函数原型: void Delay_ms(uint ms) |
- |函数功能: 普通延时函数 |
- |入口参数: 延时时间,单位毫秒 |
- +---------------------------------------------------------------------------------------+
- */
- void Delay_ms(uint ms)
- {
- uchar t;
- while(ms--)
- {
- t=120;
- while(t--);
- }
- }
- /*
- +---------------------------------------------------------------------------------------+
- |函数名称: ShuMaGuan |
- |---------------------------------------------------------------------------------------|
- |函数原型: void ShuMaGuan(uint dat) |
- |函数功能: 数码管扫描显示程序,随意显示一个9999以内数据大小 |
- |入口参数: 要显示的0000-9999之间的数据,数据是多少,就显示多少 |
- +---------------------------------------------------------------------------------------+
- */
- void ShuMaGuan(uint dat)
- {
- LED=LED_Code[dat/1000];//将dat的千位取出来,用千位数来索引LED_Code的对应段码,再将段码送到对应段码口上
- LED_1=0; //段码送出去后,再选通千位数码管的公共端,此时对应千位数码管会显示
- Delay_ms(3); //将显示延时一段时间,视觉暂留
- LED_1=1;
- LED=LED_Code[dat%1000/100];
- LED_2=0;
- Delay_ms(3);
- LED_2=1;
- LED=LED_Code[dat%100/10];
- LED_3=0;
- Delay_ms(3);
- LED_3=1;
- LED=LED_Code[dat%10];
- LED_4=0;
- Delay_ms(3);
- LED_4=1;
- }
- /*
- +---------------------------------------------------------------------------------------+
- |函数名称: main |
- |---------------------------------------------------------------------------------------|
- |函数原型: void main(void) |
- |函数功能: 数码管扫描显示程序,随意显示一个9999以内数据大小 |
- |入口参数: 无 |
- +---------------------------------------------------------------------------------------+
- */
- void main(void)
- {
- EA = 1; //允许CPU中断
- ET0 = 1; //定时器0中断打开
- TMOD = 0x1; //设定时器0为模式1,16位模式
- TH0=0xE1;
- TL0=0xDF; //设定时值
- TR0 = 1; //启动定时器
- number=0;
- while(1)
- {
- number++;
- Delay_ms(50);
- }
- }
- //定时器0中断外理中调用数码管显示程序
- void Timer0_int(void) interrupt 1
- {
- TH0=0xE1;
- TL0=0xDF;
- TR0=0;
- ShuMaGuan(number); //在这里调用,实时显示number的值
- TR0=1;
- }
0
上一篇:2.数码管动态扫描 随意显示9999以内的数
下一篇:51单片机波特率计算器(可以计算stc啊!)
相关热门文章
- android学习--适配器和AsyncTa...
- 黛莱美面膜怎么样?黛莱美官网...
- 解读打车APP外包政府监管新规...
- Redis的Append only file-续
- gdb基本命令
- shell中字符串操作
- shell中的特殊字符
- linux设备驱动归纳总结...
- stagefright与opencore对比
- linux守护进程的几个关键地方...
- 现在的博客积分不会更新了吗?...
- shell怎么读取网页内容...
- ssh等待连接的超时问题...
- curl: (56) Recv failure: Con...
- CACTI 不能安装WINE,怎么办?...
给主人留下些什么吧!~~
评论热议
0 0
- 3.数码管动态扫描 随意显示9999以内的数(使用定时器)
- 2.数码管动态扫描 随意显示9999以内的数
- 4.999计数器 数码管动态扫描(使用定时器)
- 定时器控制数码管扫描显示
- 51单片机使用定时器进行数码管动态扫描程序
- 5.简易电子钟 数码管动态扫描(使用定时器) 按键切换
- 6.简易电子钟数码管动态扫描(使用定时器)有调时功能
- 数码管动态扫描扩展显示
- 数码管动态扫描显示01234567
- lesson4~数码管的动态扫描
- 8位数码管动态扫描显示
- 【程序】STM32F103单片机使用定时器DMA进行全自动8位数码管动态扫描
- PIC单片机-利用Timer2定时器的溢出中断实现动态扫描数码管
- 51_定时器扫描矩阵键盘_数码管显示
- FPGA的俩位数码管动态扫描
- 6.4 数码管的动态显示
- 数码管动态扫描
- 关于6位数码管动态扫描显示程序的一些问题
- FAT32 资料收集(1)
- RealView MDK 2440快速开发快速入门
- Cool51开发板原理图
- 1.简单数码管显示程序
- 2.数码管动态扫描 随意显示9999以内的数
- 3.数码管动态扫描 随意显示9999以内的数(使用定时器)
- 51单片机波特率计算器(可以计算stc啊!)
- 4.999计数器 数码管动态扫描(使用定时器)
- 5.简易电子钟 数码管动态扫描(使用定时器) 按键切换
- 6.简易电子钟数码管动态扫描(使用定时器)有调时功能
- 7.矩阵键盘读取键值 数码管显示
- 8.最简易密码锁 不显示
- 9.全功能密码锁 数码管显示
- 用CXA20106制作2CM-400CM的超声波(已出实物)
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
雪花啤酒罐装多少钱一瓶
罐装啤酒多少毫升
青岛啤酒罐装价格
罐装啤酒图片
啤酒罐装图片
罐装零食厂家
罐装零食价格表
听装啤酒
罐车
罐车图片
油罐车图片
二手油罐车
油罐车爆炸
混凝土罐车
大罐车
大罐车图片
解放油罐车
罐车报价
压裂砂罐车
蓝牌油罐车
粉煤灰罐车
天然气罐车
罐罐车
罐车侧翻
罐车出租
12吨油罐车
槽罐车价格
泥罐车
五吨油罐车
30吨油罐车
油罐车厂家
压力罐车
罐车司机
粉罐车价格
砂浆罐车
罐车高度
奶罐车
油罐车清洗
玩具油罐车
油罐车着火
油罐车出租