各位大侠帮帮忙,小弟遇到点问题,求帮助,用C语言编写单片机程序

单片机的RXD接收到信号1,与89c52P0.0~P0.7口相连的lm016l加一,同时6秒后,p1.0输出高电平,P1.1输出低电平,当单片机的rxd接收到信号0时,LM016L不变,6秒后,P1.0输出低电平,P1.1输出高电平,按下接于rst的按钮,显示器清屏,从0开始。
LM016L的RS、RW、E端分别与AT89C52的P2.0/P2.1/P2.2端口相连,D0~D7与单片机P0.0~P0.7相连,单片机的RXD端口是P3.0,RST端口接的是复位按钮。
初始时 LM016L示数为0

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P2^2;
sbit lwr=P2^1;
sbit lrs=P2^0;
sbit rxd=P3^0;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
uchar num;
void delay(uint sec) //延时函数
{
uint i,j;
for(i=sec;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar com) //写命令
{
lrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date) //写数据
{
lrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init() //初始化
{
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void write_num(uint addr,uint num) //显示数字
{
write_com(0x80+addr);
write_data(num);
}
void main()
{
init();
write_num(10,num);
while(1)
{
if(rxd==1)
{
num++;
write_num(10,num);
delay(6000);
P1_1=1;
P1_0=0;
}
if(rxd==0)
{
delay(6000);
P1_0=0;
P1_1=1;
}
}
}追问

怎么仿真不出来啊?大侠,有没有需要补充的地方啊?

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-26

功能相近的 仿真实例 供参考,修改一下吧。

追问

这个悬殊有点大吧,能不能帮忙改成我提问的问题答案,谢谢

追答

意思已经差不了 多少了,你只要把图上 的连接 改一下 按照你要求 的 连接,
程序 的 定义 也 相应 改一下 就可以了。

各位大侠小弟遇到一题C语言小难题:程序已编译通过(用二进制方式读写文件...
要想在记事本得到你所希望的所谓无“乱码”的显示结果的话,也很简单,只需将程序中的写操作代码修改如下:if 0 if(fwrite(&Student[i],sizeof(struct Student_type),1,fp)!=1)printf("File write error!\\n");else fprintf( fp, "%s\\t%d\\t%d\\t%s\\n\\r",Student[i].name, Student...

各位C语言的高手们,小弟今个遇到一道:将若干字符串按字母顺序(由小到大...
这个编译应该是对的啊,首先说一下那个字符串数组char * name[]吧,它是一个数组,里面存放的是字符串的首地址,sort(name,n);传递的仍然是数组,只不过数组里存的是指向字符串首地址的指针而已。再说一下你的那个疑问,strcmp(name[k],name[j]),strcmp的参数就是指向字符串的指针啊,比较过程是...

各位C语言的大侠们,小弟又遇一道C语言小问题,这个函数是输出学生不及...
{ int i=0;float *pt;pt=NULL;for(i=0;i<4;i++)if(*(pointer+i)<60) pt=*pointer; \/\/这里的*(pointer+i)改为:*(*(pointer)+i)return (pt);}

求助各位前辈,小弟在自学51单片机,想请大侠们赐一个小程序给我学习,万...
你这第一下就想玩这难度要大点,因这有个控制亮度的麻烦点,你最好先玩玩流水灯啊,数码管自动加数啊,(本以后你这中也要用的)完成后再来玩你这才会达到事半功倍的效果,这类程序 网上多的是,你可根据你想玩C语言还是玩汇编去找相应的下载....

各位C语言的高手们,小弟今个遇到一道:将若干字符串按字母顺序(由小到大...
strcmp的函数原型是:int strcmp(const char *, const char *)name是char *的数组,所以每个name[i]都是char

单片机入门,急求高手大虾指教!!!
第三步:学习汇编语言,编几个小程序,把定时器、中断、串行口、键盘、显示等功能玩出来。第四步:在第三步玩过之后,你应该对单片机的硬件资源使用和编程规则比较熟悉了,然后在使用C语言编写单片机程序。然后找几个大学生电子设计竞赛的题目来练练手。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 ...

这是一道计算机考研的真题,希望各位大侠帮帮忙,小弟将不胜感激!_百度...
直接编码 一位代表一个微操作命令 那就是 3+3+5+8=19 字段直接编码 互斥的放一个段,还要留出一种情况不发 各段需要位数 2+2+3+4=11 同理水平型字段直接编码 2+2+3+4+3=14 26-14=12 故存储器的地址位数为12位 指令长为26位 ,所以2^12*26 ...

麻烦各位帮帮忙。小弟有一事不知如何解决,还望各位多给建议。谢谢。_百...
这很好,让我们来看一下:1.首先你称呼他是一般朋友,一般朋友的定义是什么,你说他羞辱你,你羞辱的定义是什么。他平时的为人怎么样。只是脾气急躁一点呢?还是平时就喜欢踩人。2.分析完之后是我的看法:首先,如果他和你是一个宿舍的,那我不推荐断交,天天要见面的人,断交不光让他看见你不舒服...

小弟刚学Lua碰到了个问题,望各位大侠来帮忙解答
首先 好的编程习惯 要写好注释和缩进 function maximum (a) --以table a为参数 local mi = 1 -- maximum index 一开始从下标1开始遍历 local m = a[mi] -- maximum value --m为下标为mi的变量 设置最大值初始值为第一个 for i,val in ipairs(a) do --ipair为lua的一个遍历...

各位大哥大姐、小弟遇到一个问题、一个加密的WORD2007文件忘了密码了...
由于本软件可以不用任何密码就能访问、修改、删除

相似回答
大家正在搜