⑴ 单片机命名问题:89C51
MCS-51是51单片机核心构架的代号。
80C51是之所有的带ROM的单片机,同样80C31是指片内没有ROM的单片机
80C51中87C51是指单片机ROM是紫外擦除、12V编程的单片机;89C51是Atmel先改进的,使用5V就能擦写编程的单片机,并且89系列命名方法被其他单片机生产厂采用,比如SM89C51,SST89C58等等。
⑵ 单片机有哪几部分组成各个部分的功能是什么
运算器、控制器、主要寄存器。
一、运算器
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。
运算器的基本功能是完成对各种数据的加工处理,例如算术四则运算,与、或、求反等逻辑运算,算术和逻辑移位操作,比较数值,变更符号,计算主存地址等。
二、控制器
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:
1、从内存中取出一条指令,并指出下一条指令在内存中的位置。
2、对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
3、指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
三、主要寄存器
寄存器就是与单片机进行交互的接口,,单片机的每个功能,,都可能有若干对应的控制寄存器/数据寄存器/状态寄存器,,通过这些寄存器可以让单片机实现特定的功能。
(2)58nn单片机生产工艺扩展阅读:
单片机的应用:
单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输;
工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等;
这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
参考资料来源:网络——单片机
⑶ 80c51单片机和c8051单片机有什么区别呢
C8051和80C51相比有如下新功能。高速指令处理能力标准的8051一个机器周期要占用12个系统时钟周期执行一条指令最少要一个机器周期CygnalC8051F系列单片机指令处理采用流水线结构机器周期由标准的12个系统时钟周期降为1个系统时钟周期指令处理能力比MCS51大大提高。CIP-51内核70% 指令的执行是在一个或两个系统时钟周期内完成的,只有四条指令的执行需4个以上时钟周期。CIP-51指令与MCS51指令系统完全兼容,共有111条指令。增加了中断源标准的8051只有7个中断源,而Cygnal C8051F系列单片机扩展了中断处理,这对于实时多任务系统的处理是很重要的。扩展的中断系统向CIP-51提供22个中断源,允许大量的模拟和数字外设中断。一个中断处理需要较少的CPU干预,却有更高的执行效率。增加了复位源标准的8051只有外部引脚复位,Cygnal C8051F系列单片机增加了7种复位源,使系统的可靠性大大提高,每个复位源都可以由用户用软件禁止。它的复位源是:1 片内电源监视2 WDT看门狗定时器3 时钟丢失检测器4比较器0输出电平检测5软件强制复位6 CNVSTRAD转换启动7 外部引脚RST复位可双向复位8 提供内部时钟源标准的8051只有外部时钟,Cygnal C8051F系列单片机有内部独立的时钟源。C8051F300/F302提供的内部时钟误差在2%以内,在系统复位后默认内部时钟。如果需要,可接外部时钟并可在程序运行时实现内外部时钟之间的切换。外部时钟可以是晶体RCC或外部时钟脉冲,以上的功能在低功耗应用系统中非常有用。片内资源增加如下:
8~12位多通道ADC
1~2路12位DAC
1~2路电压比较器
内部或外部电压基准
内置温度传感器±3
16位可编程定时/计数器阵列PCA可用于PWM等
3~5个通用16位定时器
8~64个通用I/O口
带有I2C/SMBusSPI1~2个UART多类型串行总线
8~64K Flash存贮器
256~4K数据存贮器RAM
片内时钟源内置电源监测看门狗定时器[
⑷ 89C52单片机的内存8K不够用了怎么办
1.可不可以用24C0*2系列呢?那程序要怎么写了(有关些读一整个函数的),比如我现在有要把温控程序和时钟程序放到52外部,计算器程序放到内部,同时可以使52正常工作,扫描完内部后继续扫描内部。
答:不行.
2.如果用扩展外部存储芯片,那芯片型号是什么,程序又怎么写?
答:可以扩展.典型的并行存储芯片一般都可.电路非常经典.程序设计上做配合,参考Keil的Band模式.
另外,要不直接扩一个足够大的外部程序芯片算了.
3.如果改用大内存的单片机芯片,那程序又不一样了吧?
答:只要单片机还是51系列的,程序基本不会大变动,甚至不用变动.
价格方面不要贵啊,我只会52的C程序的(我是菜鸟),所以要完全兼容的,不需要太大,再有8K或4K就OK。那又怎么办?跪求,献上我的大部分分,搞定了可以追加。内存确实不够了。。。
答:简单啊,直接扩带16k/32K/64k Flash程序空间的51芯片就行了.
⑸ stc89c58RD各符号含义
STC是在深圳的一家8051单片机设计生产公司。
89C系列,工作频率0~40M相当于普通8051的0~80M,FLASH程序储存4K-64K,RAM数据储存512B-1280B,内部集成EEPROM2K-16K及看门狗和专用复位电路,带A/D功能。
STC系列的单片机现在在中国的51单片机市场上占有较大比例。宏晶科技现已成长为全球最大的8051单片机设计公司,现提供专用MCU设计服务。深圳宏晶科技有限公司是专业单片机供应商,致力于提供处于业内领先地位的。
⑹ 单片机STC89C586RD+是什么意思
这是单片机的型号,我使用的吴鉴鹰单片机开发板就是用的这个芯片
STC是在深圳的一家8051单片机设计生产公司。STC系列的单片机现在在中国的51单片机市场上占有较大比例。宏晶科技现已成长为全球最大的8051单片机设计公司,现提供专用MCU设计服务.深圳宏晶科技有限公司是专业单片机供应商,致力于提供处于业内领先地位的,高性能STC系列MCU和SRAM.其产品已通过国际权威认证机构SGS(瑞士通用公证行)的多项认证:1.EFT测试认证:过4KV快速脉冲干扰2.绿色环保认证:无铅认证 STCMCU性能特点在于:89C系列:工作频率0~40M相当于普通8051的0~80M,FLASH程序储存4K-64K,RAM数据储存512B-1280B,内部集成EEPROM 2K-16K及看门狗和专用复位电路,带A/D功能. 12C系列:单时钟/机器周期。超小封装。2-4路PWM, 8-10位高速A/D转换。 FLASH程序储存512B-60K,RAM数据储存256B-1280B,集成EEPROM及硬件WDT.产品都有为低功耗。有ISP和IAP功能,强抗干扰和降低EMI性能.15F系列有STC最少引脚8引脚的单片机.最显着的特点就是支持ISP在线下载功能。
⑺ 怎样用单片机控制TLC5615生成三角波
单片机开发板
#include <reg52.h> //包含头文件
unsigned char code sanjiao1[40]={ //阶梯状三角波数字输入数组1 三角波数组有三个 对应不同幅值;
// 0x00,0x0f,0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,
// 0x7f,0x8f,0x9f,0xaf,0xbf,0xcf,0xdf,0xef,
// 0xff,0xef,0xdf,0xcf,0xbf,0xaf,0x9f,0x8f,
// 0x7f,0x6f,0x5f,0x4f,0x3f,0x2f,0x1f,0x0f
0x80,0x8c,0x99,0xa6,0xb3,0xc0,0xcc,0xd9,0xe6,0xf2, /
0xff,0xf2,0xe6,0xd9,0xcc,0xc0,0xb3,0xa6,0x99,0x8c,
0x80,0x73,0x66,0x5a,0x4d,0x40,0x33,0x26,0x1a,0x0d,
0x00,0x0d,0x1a,0x26,0x33,0x40,0x4d,0x5a,0x66,0x73,
};
unsigned char code sanjiao2[256]={
0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,
0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,
0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,
0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,
0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,
0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,
0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,
0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,
0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,
0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,
0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,
0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,
0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,
0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,
0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,
0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe,
0xfe,0xfc,0xfa,0xf8,0xf6,0xf4,0xf2,0xf0,
0xee,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,
0xde,0xdc,0xda,0xd8,0xd6,0xd4,0xd2,0xd0,
0xce,0xcc,0xca,0xc8,0xc6,0xc4,0xc2,0xc0,
0xbe,0xbc,0xba,0xb8,0xb6,0xb4,0xb2,0xb0,
0xae,0xac,0xaa,0xa8,0xa6,0xa4,0xa2,0xa0,
0x9e,0x9c,0x9a,0x98,0x96,0x94,0x92,0x90,
0x8e,0x8c,0x8a,0x88,0x86,0x84,0x82,0x80,
0x7e,0x7c,0x7a,0x78,0x76,0x74,0x72,0x70,
0x6e,0x6c,0x6a,0x68,0x66,0x64,0x62,0x60,
0x5e,0x5c,0x5a,0x58,0x56,0x54,0x52,0x50,
0x4e,0x4c,0x4a,0x48,0x46,0x44,0x42,0x40,
0x3e,0x3c,0x3a,0x38,0x36,0x34,0x32,0x30,
0x2e,0x2c,0x2a,0x28,0x26,0x24,0x22,0x20,
0x1e,0x1c,0x1a,0x18,0x16,0x14,0x12,0x10,
0x0e,0x0c,0x0a,0x08,0x06,0x04,0x02,0x00,
} ;
unsigned char code sanjiao3[128]=
{
// 0x00,0x06,0x0f,0x16,0x1f,0x26,0x2f,0x36,
// 0x3f,0x46,0x4f,0x56,0x5f,0x66,0x6f,0x76,
// 0x7f,0x86,0x8f,0x96,0x9f,0xa6,0xaf,0xb6,
// 0xbf,0xc6,0xcf,0xd6,0xdf,0xe6,0xef,0xf6,
// 0xff,0xf6,0xef,0xe6,0xdf,0xd6,0xcf,0xc6,
// 0xbf,0xb6,0xaf,0xa6,0x9f,0x96,0x8f,0x86,
// 0x7f,0x76,0x6f,0x66,0x5f,0x56,0x4f,0x46,
// 0x3f,0x36,0x2f,0x26,0x1f,0x16,0x0f,0x06,
0x04,0x08,0x0c,0x10,0x14,0x18,0x1c,0x20,
0x24,0x28,0x2C,0x30,0x34,0x38,0x3C,0x40,
0x44,0x48,0x4c,0x50,0x54,0x58,0x5c,0x60,
0x64,0x68,0x6c,0x70,0x74,0x78,0x7c,0x80,
0x84,0x88,0x8c,0x90,0x94,0x98,0x9c,0xa0,
0xa4,0xa8,0xac,0xb0,0xb4,0xb8,0xbc,0xc0,
0xc4,0xc8,0xcc,0xd0,0xd4,0xd8,0xdc,0xe0,
0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0x1f0,
0xfc,0xf8,0xf4,0xe0,0xec,0xe8,0xe4,0xe0,
0xdc,0xd8,0xd4,0xd0,0xcc,0xc8,0xc4,0xc0,
0xbc,0xb8,0xb4,0xb0,0xac,0xa8,0xa4,0xa0,
0x9c,0x98,0x94,0x90,0x8c,0x88,0x84,0x80,
0x7c,0x78,0x74,0x70,0x6c,0x68,0x64,0x60,
0x5c,0x58,0x54,0x50,0x4c,0x48,0x44,0x40,
0x3c,0x38,0x34,0x30,0x2c,0x28,0x24,0x20,
0x1c,0x18,0x14,0x10,0x0c,0x08,0x04,0x00,
⑻ 单片机简易电子琴程序
22. 电子琴
1. 实验任务
(1. 由4X4组成16个按钮矩阵,设计成16个音。
(2. 可随意弹奏想要表达的音乐。
2. 电路原理图
图4.22.1
3. 系统板硬件连线
(1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;
(2. 把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;
4. 相关程序内容
(1. 4X4行列式键盘识别;
(2. 音乐产生的方法;
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示
音符 频率(HZ) 简谱码(T值) 音符 频率(HZ) 简谱码(T值)
低1 DO 262 63628 # 4 FA# 740 64860
#1 DO# 277 63731 中 5 SO 784 64898
低2 RE 294 63835 # 5 SO# 831 64934
#2 RE# 311 63928 中 6 LA 880 64968
低 3 M 330 64021 # 6 932 64994
低 4 FA 349 64103 中 7 SI 988 65030
# 4 FA# 370 64185 高 1 DO 1046 65058
低 5 SO 392 64260 # 1 DO# 1109 65085
# 5 SO# 415 64331 高 2 RE 1175 65110
低 6 LA 440 64400 # 2 RE# 1245 65134
# 6 466 64463 高 3 M 1318 65157
低 7 SI 494 64524 高 4 FA 1397 65178
中 1 DO 523 64580 # 4 FA# 1480 65198
# 1 DO# 554 64633 高 5 SO 1568 65217
中 2 RE 587 64684 # 5 SO# 1661 65235
# 2 RE# 622 64732 高 6 LA 1760 65252
中 3 M 659 64777 # 6 1865 65268
中 4 FA 698 64820 高 7 SI 1967 65283
下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据
低音0-19之间,中音在20-39之间,高音在40-59之间
TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0
DW 0,63731,63928,0,64185,64331,64463,0,0,0
DW 0,64580,64684,64777,64820,64898,64968,65030,0,0
DW 0,64633,64732,0,64860,64934,64994,0,0,0
DW 0,65058,65110,65157,65178,65217,65252,65283,0,0
DW 0,65085,65134,0,65198,65235,65268,0,0,0
DW 0
2、音乐的音拍,一个节拍为单位(C调)
曲调值 DELAY 曲调值 DELAY
调4/4 125ms 调4/4 62ms
调3/4 187ms 调3/4 94ms
调2/4 250ms 调2/4 125ms
对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。
在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。
5. 程序框图
贴不了.
7. C语言源程序
#include <AT89X51.H>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
unsigned char temp;
unsigned char key;
unsigned char i,j;
unsigned char STH0;
unsigned char STL0;
unsigned int code tab[]={64021,64103,64260,64400,
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178};
void main(void)
{
TMOD=0x01;
ET0=1;
EA=1;
while(1)
{
P3=0xff;
P3_4=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=0;
break;
case 0x0d:
key=1;
break;
case 0x0b:
key=2;
break;
case 0x07:
key=3;
break;
}
temp=P3;
P1_0=~P1_0;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp=temp & 0x0f;
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
}
}
P3=0xff;
P3_5=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=4;
break;
case 0x0d:
key=5;
break;
case 0x0b:
key=6;
break;
case 0x07:
key=7;
break;
}
temp=P3;
P1_0=~P1_0;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp=temp & 0x0f;
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
}
}
P3=0xff;
P3_6=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=8;
break;
case 0x0d:
key=9;
break;
case 0x0b:
key=10;
break;
case 0x07:
key=11;
break;
}
temp=P3;
P1_0=~P1_0;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp=temp & 0x0f;
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
}
}
P3=0xff;
P3_7=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
key=12;
break;
case 0x0d:
key=13;
break;
case 0x0b:
key=14;
break;
case 0x07:
key=15;
break;
}
temp=P3;
P1_0=~P1_0;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp=temp & 0x0f;
while(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
}
TR0=0;
}
}
}
}
void t0(void) interrupt 1 using 0
{
TH0=STH0;
TL0=STL0;
P1_0=~P1_0;
}
根据自己的情况稍微改改就好了
⑼ STC89C58单片机ALE、PSEN、EA不需要,悬空可以吗
可以悬空,ALE是锁存信号,现在基本不用了。
PSEN(29脚): 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。不接也没关系
⑽ 80C51单片机的基本组成
该系列单片机是采用高性能的静态80C51 设计 由先进CMOS 工艺制造并带有非易失性Flash 程序存储器 全部支持12 时钟和6 时钟操作 P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口 可用于多机通信 I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0 。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作掉电模式保存RAM的内容 但是冻结振荡器 导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据 运行可从时钟停止处恢复