单片机开发板STC89C52..想要在四个数码管显示自己的学号

作者&投稿:除狠 (若有异议请与网页底部的电邮联系)
Stc89c52单片机开发板:把时间显示在数码管上,要求使用定时器中断。掉电存储时间,开机继续计时~

该STC单片机内置有flash!写之前要扇区先擦除,之后才能写! 主程序中!先从指定flash单元中读取上次存入的时间!然后进入循环。每计时一次,往flash中写时间!

#include
#define uchar unsigned char
#define uint unsigned int
sbit wr=P1^0;
sbit cs1=P1^1;
sbit cs2=P1^2;
uchar q,w,a[8];
uchar code zm[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
}
void wx(uchar xx)
{
wr=0;
cs2=0;
P0=xx;
wr=1;
cs2=1;
}
void wx(uchar xx)
{
wr=0;
cs1=0;
P0=xx;
wr=1;
cs1=1;
}
void T0_time() interrupt 1
{
TH0=(65536-1835)/256;
TL0=(65536-1835)%256;
wx(0xff);
if(q==1)
{
dx(zm[a[q]]);
}
else
{
dx(zm[a[q]]&0x7f);//小数点;
}
wx(w);
w=w<<1|0x01;
if(++q==8)
{
q=0;
w=0xfe;
}
}
void main()
{
TH0=(65536-1835)/256;
TL0=(65536-1835)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
a[0]=8;
a[1]=7;
a[2]=6;
a[3]=5;
}
}

不熟悉你所说的单片机 我告诉你理论吧
我先虚拟你所使用的数码显示位最高4位 且单片机位数是8位
AHH=10 AH=90 AL=62 ALL=31
首先注意表格制作
0-9 对应的数据 不显示的数据为00H应该 那么放在 0A位上
0--1 -- 2 -- 3---4---5---6---7--8---9---A.....L--------H-----P----E---F
0AFH,06H,...........................................00H..........................................
这样的表格
主程序
loop1:
clr temp
loop:
mov a,1h
add a,temp
mov temp,a 这个记数 =8的时候跳出这个循环
call gdydwqd
clr c
rlc AHH
rlc ah
rlc al 所有寄存器带标志位左移
rlc all 移动一次寄存器 AHH =09 AH=09 AL=23 ALL=10
”“”这里在做个子程序 难得写子程序 你自己看懂了就好
从低位寄存器开始 由于的数值低位=1所以子程序做成
低位开始ALL 低位=0 那么写入0A进入 显示子程序将不会显示0A的值
ALL 高位=0 继续写A进去依次内推 不=0就跳出子程序 ““”
mov a,8h 这个数据你自己算 具体是循环几次
xor a,temp
sz z
jmp loop1 =8清除TEMP 重新赋值的想显示的数字 继续显示
jmp loop 没完成循环次数继续循环

gdydwqd: 这个是取单1的“”“”位“”“”出来进行显示因为表格0-9后面还有其他显示的数据
mov a,AHH
MOV A,0FH
MOV DATA1,A 取低位 AHH
CALL 显示子程序
mov a,AHH
MOV A,0F0H
MOV DATA2,A 取高位AHH
SWAP DATA2 高低互换位置
CALL 显示子程序
mov a,AH
MOV A,0FH
MOV DATA3,A
CALL 显示子程序
mov a,AH
MOV A,0F0H
MOV DATA4,A
SWAP DATA4
CALL 显示子程序
ret


stc15w4k56s4单片机有什么特点,有多少个引脚,程序存储器和数据存储器...
数据存储器大小:4KB(4096);程序存储器大小:56KB;内置EEPROM大小:3KB;次单片机特点:1. 增强型 8051 CPU,1T,单时钟\/机器周期,速度比普通8051快8-12倍 2. 工作电压:2.5V - 5.5V 3. 56K字节片�Flash程序存储器,擦写次数10万次以上 4. 片内大容量4096字节 的SRAM,包括常规...

巴马瑶族自治县13568231109: 利用stc89c52的单片机 产生一个1.536Mhz频率的时钟信号输出,我用的晶振是25Mhz的,请问如何实现啊? -
锺狗过氧: 52单片机并不是固定的晶振频率为11.0592MHZ,这个晶振频率是你外部给的,并不是单片机自带的.实际上,单片机的晶振可以选择很多频率,从1MHZ到32MHZ的各种频率晶振都有,你到电子市场一看就知道了,呵呵.为什么很多单片机要...

巴马瑶族自治县13568231109: STC89C52的介绍 -
锺狗过氧: STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器.STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能.在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案.

巴马瑶族自治县13568231109: stc89c52单片机的片内集成哪些功能部件 -
锺狗过氧: 1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.[2] 2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机) 3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工知作 频率...

巴马瑶族自治县13568231109: 我买了一个stc89c52的单片机学习板,写了程序不知道怎么把它下载到单片机上.请大侠们指教!是用keil写的 -
锺狗过氧: 首先在KEIL窗口中找到一个小榔头一样的图标叫做Options of Target,点击它,跳出一个窗口.在这个窗口中写入你的单片机所使用晶振的频率,然后在OUTPut那个选项页中将“Creat Hex”打钩选中.这样你再编译程序(编译按键就在小榔头...

巴马瑶族自治县13568231109: 51单片机STC89C52怎样扩展io -
锺狗过氧: STC89C52 是插脚的吗?其实,STC89C52 比传统的51单片机多了3个I/O脚了,P4.4,P4.5,P4.6,共有35个I/O脚了.这还不够吗? 扩展I/O是可以的,但不如直接用片机的I/O方便,节省扩展的芯片. 换成LQFP44贴片封装的,就多出7个I/O脚,...

巴马瑶族自治县13568231109: 单片机开发板STC89C52..想要在四个数码管显示自己的学号 -
锺狗过氧: 不熟悉你所说的单片机 我告诉你理论吧 我先虚拟你所使用的数码显示位最高4位 且单片机位数是8位 AHH=10 AH=90 AL=62 ALL=31 首先注意表格制作0-9 对应的数据 不显示的数据为00H应该 那么放在 0A位上0--1 -- 2 -- 3---4---5---6---7--8---9---...

巴马瑶族自治县13568231109: 单片机 I/O 扩展STC89C52 -
锺狗过氧: 强烈建议你用74HC595,可以用三个IO口扩展至少8个,如果是多片串联,可以扩展8xN个,不过建议你最多串联3片,另外,595只能做为输出口来用,如果你是要扩展输入口,可以用74165,不过还是建议你,即使你是缺少输入口,把你所有的输出口集成到74HC595上,省下来的IO用做输入口,74HC595便宜,且货源充足.

巴马瑶族自治县13568231109: 你好,我现在大一.我使用的单片机是stc89c52,想写一个有源蜂鸣器的程序,看了一些测试代码,不是太会写 -
锺狗过氧: #include<reg51.h>#define uchar unsigned char#define uint unsigned int sbit SPK=P1^0; sbit K1=P1^7;//发声函数 void Alarm(uchar t) { uchari,j; for(i=0;i<200;i++) { SPK=~SPK; for(j=0;j<t;j++); //由参数t行成不同的频率 } } voidmain() { SPK=0; while(1) { if(K1==1) { Alarm(90); Alarm(120); } } }

巴马瑶族自治县13568231109: 我现在想用STC89C52的单片机控制端口输出3V的电压,具体该怎么做 -
锺狗过氧: 如果现在工作电压是5V:看具体情况,可以采用开关电路,比如继电器,或者三极管,或者光耦.如果功率合适,也可以使用电阻分压.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网