找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1191|回复: 1
打印 上一主题 下一主题
收起左侧

几个单片机作业题分享

[复制链接]
跳转到指定楼层
楼主
ID:340729 发表于 2018-5-29 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
超级刷哦
外部串口RAM中从8000H开始的12单元的字节及其校验和,以串口方式1波特率4800发送
#include<reg51.h>
#define uchar unsigned char
void init_ps(void);
void send_data(uchar idata*d);
uchar xdata buf[0x0C]_at_0x8000;
uchar ph;
void init_ps(void)
{
   TMOD=0x20;
   TH1=0xFD;
   TL1=0xFD;
   PCON=0;
   TR1=1;
   SCON=0x50;
}
void send_data(uchar idata*d)
{
uchar i;
ph=0;
for(i=0;i<10;i++)
{
       SBUF=d[i];
       Ph+=d[i];
       While(TI==0);
       TI=0;
}
SBUF=ph;
While(TI==0);
TI=0;
}
void main(void)
{
   Init_ps();
   for(i=0;i<12;i++)
{
   d[i]=i;
}
    Send_data(buf);
}



B口按键状态在A口对应发光二极管显示
#include<reg51.h>
#include<absacc.h>
# uchar unsigned char
#define CONT oxo1;
#define_8155_CMD XBYTE[0xEF00];
#define_8155_PA XBYTE[0xEF01];
#define_8155_PA XBYTE[0xEF02];
void main(void)
{
  uchar i;
  _8155_ CMD=CONT;
  While(1)
{
  i=_8155_PB;
  _8155_PA=i;
  delay();
}
}

波特率=(2/32)  x  f/【12x(256-初值)】
单片机数据存储器可寻址空间范围64K
复位状态:SP为07H   其余为00H
对单片机复位在RESET施加2个机器周期的高电平
总线驱动扩展:地址控制用240 ,241, 244    数据用245
扩展数据存储器RAM所需地址线:8KB要13条,16KB要14条,32KB要15条
指针SP指向栈顶,数据先入后出
指针长度为一个字节:idata*,data*,pdata*.  两个字节:code*,xdata*
ALE输出的下降沿锁存低八位,其频率为晶振频率的六分之一
EA为低电平时只访问外部程序存储器
一个机器周期包含12个机器周期6个状态周期12个节拍
8155有2个八位IO口,8255有3个,单片机有4个
C51的绝对地址访问方式:使用C51运行库中预定义宏,通过指针访问,关键字_at_
位寻址区地址范围:20H~2FH,   工作寄存器区地址范围:00H~1FH
指针DPTR用来访问外部的数据存储器
压栈操作汇编指令为PUSH,位变量清零指令为CLR
中断服务程序的返回指令是RETI
PC为访问程序存储器提供地址,DPTR为访问数据存储器提供地址






8-3编码器,P2口输入,P3口低三位输出,P3.5使能
#include<reg51.h>
void main()
{
  unsigned char n;
  while(1)
{
  P2=0xff;
  P3=0x20;
if(P3_5==0)
{
  n=P2;
  switch(n)
  {
     case 254:P3=0x00;  break;
     case 253:P3=0x01;  break;
     case 251:P3=x002;  break;
     case 247:P3=0x03;  break;
     case 239:P3=0x04;  break;
     case 223:P3=0x05;  break;
     case 191:P3=0x06;  break;
     case 127:P3=0x07;  break;
     default: P3=0x00;  break;
}
}
else
   P3=0xff;
}
}
1.请在xdata存储空间定义指向字符型的存储器指针变量px,该指针自身位于内部存储区data区。
char xdata *data px  
2.请定义中断服务函数service,该中断函数使用外部中断1作为中断源,并为其指定工作寄存器组1。
void service ( ) interrupt 2 using 1
3.简述MCS-51串行口发送数据的过程。
数据预先写入串行口数据缓冲器(1分), 然后在移位时钟脉冲(TXD)的控制下(1分),从串行口RXD端逐位移出(1分),发送完毕后,SCON寄存器的发送中断TI被自动置“1”(2分)。
4.MSC-51的定时器/计数器用作定时器时,其定时时间与哪些因素有关?作计数器时,对外界计数频率有何限制?
工作方式、计数初值、时钟频率
计数脉冲的频率不能高于震荡脉冲频率的1/24。

外部串口RAM中从8000H开始的12单元的字节及其校验和.docx

14.62 KB, 下载次数: 2, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:412543 发表于 2018-10-20 00:15 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表