1)你好歹外围也接点基本的电路吧,比如晶振什么的,你要先做出最小系统板,硬件行了再考虑程序。
2)你的延时函数做什么用??发送是否完毕是通过判断TI的值来判断的,你延迟有什么用?
3)建议你初始化的时候这么写“TMOD |= 0X20 ;”这样写的好处是不影响到寄存器其他位。
4)建议你直接去做板,仿真行了不代表实际 *** 作就行了,实际 *** 作更能锻炼人。
毕业设计 (论文)任务书
机电系电气自动化专业 班级08电气 姓名学号
毕业设计名称:单片机点阵式LED显示屏设计
毕业设计主要研究内容及研究意义:
研究内容:1、用8051单片机显示字体 2、PROTEUS软件和KEIL软件的使用3、单片机的控制程序 4、点阵屏幕的使用
研究意义:利用51单片机和C语言程序的控制制定的汉字在点阵屏幕上的显示,了解51单片机的性质和使用,提高对PROTEUS软件和KEIL软件的使用。
毕业设计研究思路及方法: 通过介绍51单片机和所用到的元件,用KEIL软件写C程序并仿真对错与修改,还在PROTEUS软件里面画仿真电路图,把正确的C程序烧入51单片机的芯片里面,运行。在点阵屏幕上显示“单片机”三个字样。
这是我专门为你做的,很简单,我用protues进行了仿真,你可以按我的接法连接,可以吧你的那些个电阻去了,除了P0口要加上拉电阻,其余的IO口没有必要加电阻,芯片内部已经内置了,希望你能喜欢我的回答。
#include<reg51h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
sbit key=P1^0;
uchar num,ge,shi;
void delay(uint x)
{
uchar t;
while(x--) for(t=0;t<120;t++);
}
void keyscan()
{
if(key==0)
{
delay(10);
if(key==0)
{
while(key==0);
num++;
ge=num%10;
shi=num/10;
if(num==100)
num=0;
}
}
}
void main()
{
while(1)
{
keyscan();
P2=table[shi];
delay(2);
P3=table[ge];
delay(2);
}
}
超出范围就是单片机的容量不够了。
当编译完成后,会显示出来共占用多少字节容量的。
如果单片机选型容量不够,就会出现无法下载。
选择可以容纳下所编译程序的单片机。
如果自己还在学习中,最好网上买个学习板,都配置好了,并且有相应的教程与程序。
先搞懂原理和 *** 作,再进行独立设计。这是不能着急的事,一口无法吃成胖子的。
#include <intrinsh>
void delayms(unsigned char ms) // 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
main()
{
unsigned char LED;
LED = 0xff;
P0 = LED;
while(1)
{
delayms(1000);
LED = LED<<1; //循环右移1位,点亮下一个LED
if(LED==0x00)
{
LED=0xff;
}
P0 = LED;
}
}
哦,你看上面那个:
左边是: S使用软件仿真器 右边是 U使用 Keil Monitor-51 Driver
现在,你是选择的右边,这是错误的,因为你没有硬件仿真器,你选择左边那个,使用软件仿真器就行了
以上就是关于我用Keil写了简单的程序发送一个字符串到串口(com3),然后想用Delphi做的小界面接收全部的内容,包括:我用Keil写了简单的程序发送一个字符串到串口(com3),然后想用Delphi做的小界面接收、用Keil软件编写一个程序,要求:利用T0的工作方式0 ,实现一个LED的闪烁,时间间隔为1s、用Keil编写程序:我已经用Proteus画好图了,很简单的程序,老师留的作业,在线等等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)