2011_11_3单片机(四)
来源:互联网 发布:淘宝能申请信用卡吗 编辑:程序博客网 时间:2024/05/20 05:25
动态数码管显示
目的:同时显示多个不同字符串
原理:延时时间设为5ms(利用人眼反映时间差)
注意事项:
1.proteus调试,需设置系统-》设置动画选项
将原来默认的25 50m 50m 20 设置为50 5m 10u 12M 4[没单位的默认设置为1s]
2.实际应用时段选位选都需加锁存器,否则容易跳乱码。
duan=1;
P0=table_d[i];
duan=0;
wei=1;
P1=table_w[j];
wei=0;
3.设计如下代码时,注意将数限定在一定范围内,否则容易发生溢出。
j=(j+1)%3;
if(3==j)
{
j=0;
}
动态数码管显示字符串的代码如下:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned long
void init();
void delay(uint a);
void display(uint num);
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳
uchar code table_w[]={0x01,0x02,0x04};
uint num=998;
uchar j=0;
sbit LE=P3^5;
uchar tt=0;
void main()
{
init();
while(1)
{
display(num);
delay(5);//5ms
}
}
void delay(uint a)
{
uint i,j;
for(i=a;i>0;i--)
for(j=20;j>0;j--);
}
void display(uint num)
{
uchar i=0;
uchar bai,shi,ge;
P2=table_w[j]; //段选开关,负责给当前led灯加高电平(共阳极)
//i=(i+1)%8;
switch(j)
{
case 0:bai=num/100;i=bai;break;
case 1:shi=num%100/10;i=shi;break;
case 2:ge=num%10;i=ge;break;
default:break;
}
LE=1; //段选加锁存器
P0=table[i];//位选开关,负责给led灯显示数字
LE=0;
j=(j+1)%3;
if(3==j)
{
j=0;
}
}
void init()
{
//设置定时器50ms中断一次,中断后,需将TH0、TL0置0
TH0=(65536-50000)/256; //高8位50ms产生溢出
TL0=(65536-50000)%256; //低8位50ms产生溢出
//设置中断工作方式为模式1(16位自加器)
TMOD=0x01;
EA=1; //开总中断控制开关
ET0=1; //开定时器控制中断开关
TR0=1; //设置定时器0开启
}
void timer0()interrupt 1
{
if(20==tt)
{
tt=0;
num++;
if(1000==num)
{
num=0;
}
}
tt++;
//将TH0、TH1置0
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
//备注:实际应用时段选位选都需加锁存器,否则容易跳乱码
/*
duan=1;
P0=table_d[i];
duan=0;
wei=1;
P1=table_w[j];
wei=0;
*/
- 2011_11_3单片机(四)
- 单片机系列(四)
- 机器人的大脑-单片机(四)
- 51单片机学习笔记(四)
- 单片机关键技术基础详解(四)
- 51单片机(四)——中断
- 单片机(四)__矩阵按键
- 51单片机的中断系统(四)
- EMC单片机学习四
- 单片机实验四
- 单片机小白学步系列(四) 模拟电路、传统数字电路与单片机
- 单片机以太网控制芯片W7100A数据手册(四)
- 单片机(AT89X52)四位数码管显示0123
- 我与单片机的日子——(四)
- C51单片机学习(四):ADC和DAC
- 读卡器项目总结(四)— 单片机低功耗处理
- 蓝桥杯单片机设计与开发笔记(四)
- 单片机学习笔记(四)——中断
- 找出字符串的最长不重复子串
- left join 和 right join ,inner join的区别
- 学习软件设计——C#练习(8)
- Big Endian 和 Little Endian
- TCP/IP学习笔记:UDP
- 2011_11_3单片机(四)
- 文明生活十忌
- select poll模式简单分析
- javamail常用类
- Oracle SQL Developer 使用简要说明
- oracle实例内存(SGA和PGA)调整
- 普通程序员、文艺程序员和2B程序员的区别
- autoit3 ie.au3 函数之——_IEAttach
- 4G TF卡精简安装Ubuntu