单片机:输入0输出4,输入1输出5,输入2输出6的程序。用C51单片机。高手速来,最好带解释

作者&投稿:职张 (若有异议请与网页底部的电邮联系)
单片机:输入0输出4,输入1输出5,输入2输出6的程序。用C51单片机。高手速来,最好带解释~

是电脑(PC)发0后,单片机回发4?
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#20H ;定时器1为波特率发生器
MOV TH0,#0FDH ;波特率9600
MOV TL0,#0FDH
MOV SCON,#50H
SETB TR1
LOOP:
JNB RI,$ ;等待接收数据
CLR RI ;清接收标志
MOV A,SBUF ;读接收数据
ADD A,#4 ;加4
MOV SBUF,A ;回送
JNB TI,$ ;等待发送完
CLR TI ;清发送标志
SJMP LOOP
END

这个不难,你自己看看应该会,我给两个以前我写过的程序你参考参考。
这是个单个流水灯定时器写的
#include
#include
#define uchar unsigned char
uchar i,temp,aa;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
i=0;
temp=0xfe;
P0=temp;

while(1)
{
if(aa==10)
{
i++;
aa=0;
temp=(temp<<1)+1;
P0=temp;
if(i==8)
{
i=0;
temp=0xfe;
}
P0=temp;
}
}
}
void timer0()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}



再给你个数码管的
这是自左向右循环显示0——f这是按照我的开发板来的,你自己要改改口

#include
#include
#define uchar unsigned char
#define dula P0
#define wela P2
uchar aa,i;
void init();
uchar code num_table[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
/*0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E , F */
void main()
{
init(); //初始化
i=0;
wela=0x7f;//选择点亮的数码管
while(1)
{

if(aa==10)
{
aa=0;
dula=num_table[i];
P0=dula;
i++;
wela=_crol_(wela,1) ;
}
if (i==16)
i=0;

}
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void timer0()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}

int x,y;
scan("",a);
y=a+4;
printf("%d",y);
串口输入,串口输出,你只要用键盘按,就会有输出了,在自己加上串口通讯就好了,可以用超级终端

汇编也是一样的,你的输入设备室什么,输出设备是什么,只要把你输入的数据放到累加器A加4,然后再存到寄存器Rn中,然后输出Rn就好了啊
你给的条件太少了,只能帮你分析了……

基本思路:
1、设计一个矩阵键盘并与键盘扫描函数(应该会吧!)
2、设计一个数码显示电路并编写显示函数(不难汉吧)
3、在主函数中对键盘扫描函数读取的键值进行显示处理。

y=x+4

这问题高手不会来的。


利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
反相放大器的输入端为XTAL1,输出端为XTAL2,两端连接石英晶体及两个电容形成稳定的自激振荡器。电容通常取30PF左右。振荡频率范围是1.2~12MHz。晶体振荡器的振荡信号从XTAL2端输出到片内的时钟发生器上。时钟发生器为二分频器。向CPU提供两相时钟信号P1和P2。每个时钟周期有两个节拍(相)P1和P2,CPU就以两相时钟P1...

电脑总出"0x43d0a3ac"指令引用的"0xo4d14168"内存。该内存不能为“rea...
6、运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellExecuteHooks 下,这个位置应该只有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。7、扫描修复硬盘,整理磁盘碎片。8、试用命令 开始-运行- 输入cmd-- 回车,在命令提示...

单片机控制一个4位的共阴数码管通电的状态下显示时间的程序
for(i=0;i<8;i++){ switch(i){ case 0:P3=b[7];P2=a[miaog];break;case 1:P3=b[6];P2=a[miaos];break;case 2:P3=b[5];P2=0x40;break;case 3:P3=b[4];P2=a[feng];break;case 4:P3=b[3];P2=a[fens];break;case 5:P3=b[2];P2=0x40;break;case 6:P3=b[1]...

电脑主板故障诊断卡代码大全
初始货输入输出端口地址。 0F 测试扩展的CMOS。 已计算CMOS检查总和写入诊断字节;CMOS开始初始准备。 10 测试DMA通道0。 CMOS已作初始准备,CMOS状态寄存器即将为日期和时间作初始准备。 第一个64K RAM第0位故障。 11 测试DMA通道1。 COMS状态寄存器已作初始准备,即将停用DMA和中断控制器。 第一个64K RAM第1位...

电脑诊断卡 上数字代表什么意思
0E 测试CMOS停机字节。 CMOS停开寄存器读\/写测试;将计算CMOS检查总和。 初始化输入\/输出端口地址。 0F 测试扩展的CMOS。 已计算CMOS检查总和写入诊断字节;CMOS开始初始准备。 . 10 测试DMA通道0。 CMOS已作初始准备,CMOS状态寄存器即将为日期和时间作初始准备。 第一个64K RAM第0位故障。 11 测试DMA通道1。

max485工作原理
它完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;\/RE和DE端分别为接收和发送的使能端,当\/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时...

打印名片用什么打印机
2、选取已有的两张名片,在位置卷帘窗中将水平改设为0毫米,将垂直改设为55毫米,其他项不变,然后连续点击应用再复制4次。 三、名片的输出 名片输出时应注意的一个问题就是别忘了在打印的属性中将纸张也设置成宽196毫米、高296毫米。 四、名片的切割 现在只要你沿着矩形边框,用直尺、美工刀等工具就可以轻易...

CRT电视机的零件问题?
3红字B所在的区域是场输出电路(也就是帧输出电路)B是场输出集成块。4红字7所在的区域是高频信号处理电路(调谐电路)7是高频头。5红字3所在的区域是色度亮度,小信号处理电路。3是信号处理芯片,这台电视是所谓的2片机其中一片指的就是这块低频信号处理电路,它还负责行输出信号的输出,场信号的输出...

哪位帮我做下面几个单片机的题目
2.MCS-51共有111条指令,可分为几种不同的寻址方式。如:MOV A,@Ri 属于寄存器间接寻址方式,MOV C, bit 属于直接寻址方式。3、片机位寻址区的单元地址是从20H单元到2FH单元,若某位地址是19H,它所在单元的地址应该是23H。4、当单片机复位时PSW=00H,这时当前的工作寄存器区是工作寄存器0...

目前,我国计算机界把计算机分为巨型机 大型机 中型机;小型机 单片机和...
把计算机分为巨型机,大型机,中型机,小型机,单片机和微型机。微型计算机简称“微型机”、“微机”,由于其具备人脑的某些功能,所以也称其为“微电脑”。微型计算机是由大规模集成电路组成的、体积较小的电子计算机。它是以微处理器为基础,配以内存储器及输入输出(I\/0)接口电路和相应的辅助电路而...

望花区18645387164: 单片机:输入0输出4,输入1输出5,输入2输出6的程序.用C51单片机.高手速来,最好带解释 -
耿关代芳: int x,y; scan("",a); y=a+4; printf("%d",y); 串口输入,串口输出,你只要用键盘按,就会有输出了,在自己加上串口通讯就好了,可以用超级终端 汇编也是一样的,你的输入设备室什么,输出设备是什么,只要把你输入的数据放到累加器A加4,然后再存到寄存器Rn中,然后输出Rn就好了啊 你给的条件太少了,只能帮你分析了……

望花区18645387164: 我现在用到一种单片机有四种输出模式,请问有什么区别 -
耿关代芳: 1.High-impedance output mode 这个没有听说过,这应该是用于输入的一种模式. 2.P-channel open drain output mode 这种模式下,输出1的时候输出有驱动能力,输出0的时候,相当于断开 3.N-channel open drain output mode 这种模式下,输出0的时候输出有驱动能力,输出1的时候,相当于断开 4.CMOS output mode , 这种模式下,无论输出0或1,均有驱动能力

望花区18645387164: 单片机读入输出什么意思? -
耿关代芳: 搞得那么复杂,键盘就是一个线与的关系,别说线与复杂,与逻辑与是一样有两根线,一根线输出高电平,一根输出低电平,两根线线与一下就是 1&&0 = 0键盘也是一样的道理的,管它什么输入输出的.以P0为例,反转法:unsigned char temp=0;P0 = 0xf0; temp = P0 ^ 0xf0;P0 = 0x0f;temp = P0 ^ 0x0f;然后temp就是键值了,就是这么简单,不要把它搞得太复杂了,不用去管什么输入输出的.

望花区18645387164: 单片机编程问题: P1=P1 | 0XF0;//声明高四位输入. 请问这里的 | 是什么意思?求讲解! -
耿关代芳: | 是 或 运算符 按位或的 0|0=0 0|1=1 1|1=1 或运算就是 只要就有一个为1 结果就为1 与之相对应的是 与 运算 & 与运算只要有一个为0 结果就为0 0&0=0 0&1= 0 1&1=1 P1|0xf0 就是把 P1的高4位都置为1 0xf0 二进制就是 11110000 高4位都是1 所以或运算后 高4位就变成了1 ,低4位因为是0 所以不会对P1低4位原有的值改动.

望花区18645387164: 怎么将s52单片机IO口设置输出输入 -
耿关代芳: 你好!p1.p2.p3口为准双向i/o口 输入时要先置1然后读数据 这与内部结构有关 P0不用 为双向i/o口 希望对你有所帮助,望采纳.

望花区18645387164: 单片机输入输出控制c语言程序 -
耿关代芳: p0=0x01; while(1) {if(p1.1==1) p0 |= 0x08; if(p1.1==0) p0 &= 0xf7; if(p1.2==1 || p1.2==0) p0 |= 0x08; if(p1.0==1 && p1.3==1) p0 &= 0xf7; p0 |= 0x01; } 一个思路吧......

望花区18645387164: 为什么单片机并行口用于输入时要先向端口写"1" -
耿关代芳: 可能你的问题没有问到点子上.设置端口的工作模式是由端口寄存器决定的.不同厂家的设置不一样甚至相反.比如PB口需要设置为输入,则需要先向B口控制寄存器写入为I/O工作模式,再向B口方向寄存器写入方向模式.针对PIC单片机,只需向B口寄存器写入0xFF;表示B口为输入;如果写入0x0F;则B口高4位为输出,第4位为输入.像51单片机端口是固定的,则只需要向端口写0 表示输出,写1表示输入.

望花区18645387164: 关于单片机引脚输入输出的问题 -
耿关代芳: 直接使用就可以了,外部给他一个0 就是0,给他1就是1 ,这和程序给他0或者1是一样的.

望花区18645387164: 这一句“P1DIR=0X0F;”是输入还是输出?
耿关代芳: 应该是一半输入一半输出,我没用过这个单片机,具体数据不清楚,但是DIR是表示方向的,和AVR单片机类似,0和1分别是输入和输出,具体0是输入还是1是输入你最好查手册.0x0F换成二进制是00001111所以其中四根线是输入,四根是输出.

望花区18645387164: 51单片机,四个不同按键,按第一个输出一个0.5秒脉冲,按第二个输出两个,第三个三个,第四个四个~ -
耿关代芳: #include<reg51.h>#define uchar unsigned char uchar num,key; sbit pulse=P0^0; void delay() { uchar i,j; for(i=0;i<250;i++) for(j=0;j<240;j++); } main() { while(1) { key=P1&0x0f; swtich(key) { case 0x01: pulse=1;delay();pulse=0; break; case 0x02: pulse=...

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