问题补充说明:.什么是单片机?主要用途是什么?列举你所知道的单片机?答:随着微电子技术的不断发展,微处理器芯片及其外围芯片的集成度越来 越高,己经可以将CPU和外围芯片,如程序存储器、数据储存器、并行、串行 I/O 口、定时器/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成 单片机。单片机(Single—Chip Computer缩写SCC)是发展初期由结构命名的,它 从构成的侧面强调在单芯片上集成了必备成分的小计算机;微控制器(Microcontroller)是当前由功能命名的,是因为用计算机的逻辑 功能解决简单的控制问题比以往来得更容易,而且应用也更广泛;嵌入式系统SoC (System on Chip或Embedded System )是当前乂由结构命 名。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软 件系统等组成,它是可独立工作的系统及应用软件系统等组成,它是可独立工作 的“器件”。2.51核单片机是否代表当前先进水平的单片机?51核单片机不是代表当前先进水平的单片机,它是目前在中国大陆最流行 的单片机系列。作业:1・1、 51.1 .说明MCS-51有哪些产品,它们有何区别?答:MCS-51是Intel公司1980年开始推出的系列产品,主要有8031、8051、 8751; 8032、8052、8752; 8OC31、80C51 和 87C5U 它们的区别是末尾是 “1” 的,内部ROM (如果有的话)4K字节,内部RAM128字节,有TO、T1两个计 数器。末尾是“2”的,内部ROM (如果有的话)8K字节,内部RAM256字节, 有TO、T1和T2三个计数器。倒数第二位是“5”的有内部ROM,是“3”的无 内部ROMo第二位是“7”的内部是EPROM,是“0”的ROM必须有厂家才能 一次性写入代码。是“0”的ROM必须有厂家才能一次性写入代码。至于其它 厂家生产的51增强核系列是MCS-51的扩充,一般不再称为MCS-51。作业(教材中内容):MCS.51单片机串行口在4种工作方式下发送和接收波特率的产生方法 有何不同? MCS-51单片机串行口输出的电平是否为标准的RS-232电平?答:MCS-51单片机串行口工作在方式。模式时,波特率是固定值fosc/12 ;工作在方式1模式及方式3模式时,可选波特率= 2/32X定时器1溢出率(SMOD=1时)或1/32 X定时器1溢出率(SMOD=0时),工作在方式2模式时, 波特率是固定值fosc/32 (SMOD=1时)或fosc/64 (SMOD=0时)。RS-232C采用的是负逻辑,即逻辑“1”: 一5V至一25V;逻辑:“0”: +5V至 +25V。而CMOS电平为:逻辑“1”: 4.99V; 逻辑“0”: 0.01V; TTL电平的逻 辑“1”和“0”则分别为2.4V和0.4V。7-7.8051晶振频率为12MHz,以方式3(应该为方式3,教科书有错)进行 串行通信,设波特率为2400bit/s,第9位为奇校验位,以中断方式发送。编写 相关程序。
…(根据C与P中数判断偶校验)
第十五讲思考题与作业
思考:解释code、那date、idate、花据祖套女农难bdate、xdate含义
答:以上所有保留字均用于Cx51数据的存储类型说明:
code说明存储空间是代码存储齐纪由接感无区(64KB),由MOVC类指令访问;
date说明存储空间是内部RAM前128B存储区
idate说明存储少空间是内部RAM全部256B存储区。
bdate说明存储空间是内部RAM中可位寻址的16B存储区。
xdate说明存储空间是片外RAM(64KB)存储区。
作业(教材中内容):
8.2.什么是关键字?Cx51有哪些不同于ANSIC的关键字?
答:关键字是一类具候岁坏京且确诗有固定名称和特定含义的特殊字符,有时乂称保留字。
在编程时不允许标识符与保留字相同。
Cx51有如正光坚留下不同与ANSIC的关键字:
bit、sbit、sfr>sfrl6、data>bdata>idata、pdata>xdata、code>interrupt和
usingo
简要说明C积定流女重充丰x51的存储类型和存储模式之间的关系。
答:存储类型含data、bdata>idat器求歌油势那体a>pdata>xdata>code五种,编译器通过存储类型可以将变量、常量定位在不同的存储区。它们用在变量(叫尽牛倍还还良苦混伟将或常量)后面,可以陆盐德执往使不同的变量定义成不同的存储区。
存储模式含SMALL.COM场证轮列PACT>LARGE三种。示态调它们决定了变量的振挥量准清裂默认存
储类型。当变量说明后面无存储类型说明时,该变量按存储模式规定,定位存储空间。如果当变量说明后教至作连顾环逐洲息各方面有存储类型说明时,该变量极军冲越答关福万肉不理会存储模式规定,按存储类型定位存储空间。
ྋྌ1ྍྎྏ⽊തƐᐢͰ䀲䉨ᓪ̖Cx51如何定义一个位变量?如何给位变量赋值?位变量应位于8051系
列单片机的哪个存储区?位变量是否可以设定为指针变量?
答:用bit关键字定义位变量。如:
bitcon;定义了con为位变量。
类似“con=0”或“con=l”可以给位变量赋值。
位变量位于bdata区(0x20-0x2F)。
位变量不能设定为指针变量。
第十六讲思考题与作业
作业(教材中内容):
ll.LCx51的函数有哪几类?它们是如何定义的?什么是形式参数?什么是
实际参数?它们之间是如何传递参数的?
答:C语言从结构上分有主函数main()和普通函数两种。
从功能上分有标准库函数和用户自定义函数两种。
从函数的定义形式划分可以有3种形式:无参数函数、有参数函数和空函数。
这些Cx51与普通C一样。
无参数函数的定义方法:
返回值类型标识符函数名()
{函数体语句}
有参数函数的定义方法:
返回值类型标识符函数名(形式参数)
形式参数说明
{函数体语句}
如:
#include
intgcd(u,v)
intu,v;
(
inttemp;
while(v!=O)
{
temp=u%v;
u=v;
v=temp;
}
return(u);
)
main()
intresult,a=150,b=35;
printf("a=%d,b=%d,a,b);
result=gcd(a,b);
printf("Thegcdof%dand%dis%dn",a,b,result);
形式参数:在定义函数时,函数名后面括号中的变量名称为“形式参数”,简称形参。
实际参数:在函数调用时,主调用函数名后面括号中的表达式称为“实际参数”,简称实参。
在C语言的函数的函数调用中,实际参数与形式参数之间的数居传递是单向进行的,只能由实际参数传递给形式参数,而不能有形式参数传递给实际参数。
11・3.如何定义一个Cx51的中断函数?
答:定义一个Cx51的中断函数方法如下:
函数类型函数名(形式参S)interruptn[usingm]
Cx51关键字interrupt后面是中断号n,n的取值范围0-31,编译器从8n+3
处产生中断向量。Cx51关键字using后面的m是0-3的常整数,编译器据此选择4个工作寄存器组中的一个,作为中断函数的寄存器工作区。
11-6.CX51语言编写第7章思考与习题第7、8题,第6章思考题与习题第8、9题,第5章思考与习题第5题。
解:题7・7是8051晶振频率为12MHz,以方式3(教科书有错)进行串行通信,设波特率为2400bit/s,第9位为奇校验位,以中断方式发送。编写相关程序
初始化部分:
include#defineSCONWOxCO
#defineTMODW0x20
main()
(
SCON=SCONW;
TMOD=TMODW;
PCON=PCON&0x7F;
TH1=-13;
TL1=-13;
ES=1;
ET1=O;
TR1=1;
EA=1;
中断函数部分:
voidserial_ISR()interrupt4[using1]
{TI=0;
/*ACC=待发数据*/
TB8=P;
SBUF=ACC;
题7-8是8051晶振频率为12MHz,以方式3进行串行通信,设波特率为
2400bit/s,第9位为偶校验位,以查询方式接收,请编写程序
初始化部分:
include
#defineSCONWOxDO
#defineTMODW0x20
•••
main()
(
SCON=SCONW;
TMOD=TMODW;
PCON=PCON&0x7F;
TH1=.13;
TL1=-13;
ES=O;
ET1=O;
TR1=1;
串行口查询函数部分:
voidserial_ISR()
{if(TI==0);
(
CY=RB8;
ACC=SBUF;
题6-8已知8051单片机的fsoc=12MHz,试用P1.7输出矩形波。矩形波高电平