有关PROTEUS仿真的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:09:27
基于STC2051单片机控制16*32点阵显示的仿真,595作为数据输入,154作为行扫描程序如下

#include<reg51.h>
#include<intrins.h>
unsigned char code hanzi[2][32]={
{0x1F,0xE0,0x10,0x20,0x1F,0xE0,0x10,0x20,0x1F,0xE0,0x01,0x00,0xFF,0xFC,0x00,0x00,0x1F,0xE0,0x10,0x20,0x1F,0xE0,0x09,0x40,0x11,0x20,0x61,0x18,0x05,0x00,0x03,0x00},//景
{0x01,0x00,0x7F,0xFC,0x00,0x00,0x0F,0xE0,0x08,0x20,0x0F,0xE0,0x00,0x00,0x3F,0xF8,0x20,0x08,0x27,0xC8,0x24,0x48,0x27,0xC8,0x20,0x08,0x20,0x18,0x00,0x00,0x00,0x00},//高
}
sbit SDI=P1^1;//数据输入线
sbit SRCLK=P1^0;//SHCP上升沿数据传入74HC595移位寄存器
sbit RCLK=P1^2;//STCP上升沿数据进入锁存器,并在OE为低电平时向点阵输入数据
#define LineCtrl P3//行扫描
void delay(unsigned int us)//延时子程序
{
while(us--);
}
void SendByte(unsigned char dat)//送一个字节的子程序
{ unsigned char i;
for(i=0;i<8;i++)
{ SRCLK=0;
if(dat&0x80)
SDI=1;
else
SDI=0;
SRCLK=1;//数据被下入到74HC595移位寄存器
dat=dat<<1;
}
}
void Display(unsigned ch

帮你看了看,你的这个程序有问题
unsigned char code hanzi[2][32]数组后面的大括号后面应该有个分号“;”才对……
在试试看……
其它的地方没有问题了
补充:是你的PROTEUS出现了问题,不是C程序,你PROTEUS中肯定是元件连接出了错误,或有元件的引脚该连的你没有连,或连错了,或哪里多画了多余的线条等,即使是C程序有问题,但PROTEUS没有问题,那么PROTEUS也不会报错的。
多检查你的PROTEUS中连线,若还是没有解决,所有的连线重画……

不是程问题,是电路连接有误,
可能是用了没有模型的元件
也可能是网络标号出问题了,说不准,嘿嘿。

你是直接从网上下载的DSN文件吧?

Compiling source files...
这应该只对汇编有效

你重新再照这个文件再画一遍,或者 菜单-source-add/remove 删除所有源文件。

以上纯属 猜测。

ERROR [PSM] : No model specified for 'WORDA#0011'.
ERROR [PSM] : No model specified for 'WORDA#0012'.
这是没有仿真模型,“WORDA#0011”“'WORDA#0012”,你检查下这两个元件,找两个有仿真模型的元件代替,这个问题就解决了