资源简介
PROTEUS仿真单片机最小系统,需要的就下吧

代码片段和文件信息
#include
/**********测温*************************/
#define uchar unsigned char
#define uint unsigned int
sbit DS=P1^7;
sbit E=P2^4;
sbit RS=P2^6;
sbit RW=P2^5;
const uchar NoDisp=0;
const uchar NoCur=1;
const uchar CurNoFlash=2;
const uchar CurFlash=3;
/**********测温*************************/
void long_delay(void);
void short_delay(void);
void delay10ms(unsigned char);
void write7279(unsigned char unsigned char); // 写入HD7279
void send_byte(unsigned char); //发送1个字节
unsigned char read7279(unsigned char); // 读HD7279
unsigned char receive_byte(void); //接受1个字节
unsigned char digit[5]; //变量即I/O口定义
unsigned char key_number j k;
unsigned int tmr;
unsigned long wait_cnter;
sbit cs=P2^0; //
sbit clk=P2^1; //
sbit dat=P2^2; //
sbit key=P2^3; //
//****** HD7279A ******
#define CMD_RESET 0xa4 //复位指令
#define CMD_TEST 0xbf //测试指令
#define DECODE0 0x80 //方式0译码
#define DECODE1 0xc8 //方式1译码
#define CMD_READ 0x15 //读键盘指令
#define UNDECODE 0x90 //不译码指令
#define RTL_CYCLE 0xa3 //循环左移
#define RTR_CYCLE 0xa2 //循环右移
#define RTL_UNCYL 0xa1 //左移
#define RTR_UNCYL 0xa0 //右移
#define ACTCTL 0x98 //消隐
#define SEGON 0xe0 //段电亮
#define SEGOFF 0xc0 //闪烁控制
#define blinkCTL 0x88
/*****************测温**********************************/
void mdelay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void WaitIdle()
{
RS=0;
RW=1;
//_nop_();也可以不要
E=1;
mdelay(5);
while((P0&0x80)==0x80)
{
E=0; //这两句protues仿真必须加;仿真器仿真也通过。
E=1;
};
E=0;
}
void LcdWcn(uchar c)
{
RS=0;
RW=0;
P0=c;
mdelay(5);
E=1;
mdelay(5);
E=0;
}
void LcdWc(uchar c)
{
WaitIdle();
LcdWcn(c);
}
void LcdWd(uchar c)
{
WaitIdle();
RS=1;
RW=0;
P0=c;
mdelay(5);
E=1;
mdelay(5);
mdelay(5);
E=0;
}
void ClrLcd()
{
LcdWc(0x01);
}
void RstLcd()
{
// dula=0;//关闭数码管锁存端,避免电流不够
// wela=0;
E=0;
LcdWc(0x38);
LcdWc(0x0f);
LcdWc(0x06);
LcdWc(0x01);
}
void SetCur(uchar Para)
{
mdelay(2);
switch(Para)
{
case 0:LcdWc(0x08);break;
case 1:LcdWc(0x0c);break;
case 2:LcdWc(0x0e);break;
case 3:LcdWc(0x0f);break;
default:break;
}
}
void LcdPos(uchar xPosuchar yPos)
{
uchar tmp;
xPos&=0x0f;
yPos&=0x01;
if(yPos==0)
tmp=xPos;
else
tmp=xPos+0x40;
tmp|=0x80;
LcdWc(tmp);
}
void WriteChar(uchar cuchar xPosuchar yPos)
{
LcdPos(xPosyPos);
LcdWd(c);
}
void WriteString(uchar *suchar xPosuchar yPos)
{
uchar i;
if(*s==0)
return;
for(i=0;;i++)
{
if(*(s+i)==0)
break;
WriteChar(*(s+i)xPosyPos);
xPos++;
if(xPos>=15)
break;
}
}
void dsreset(void) // DS18B20初始化
{
uint i;
DS=0; // 首先拉低,要求480us
i=103;
while(i>0)i--;
DS=1; // 上升沿,要求15~60us
i=4;
while(i>0)i--;
}
void rxwait()//等待应答脉冲
{
uint i;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 87871 2008-08-14 15:19 最小系统2\system_814 - CADCAM.ZIP
文件 130070 2008-08-14 15:19 最小系统2\system_814.LYT
文件 184384 2008-08-11 12:32 最小系统2\system_end_new.DSN
文件 10824 2008-08-24 19:44 最小系统2\复件 1\1.c
文件 24946 2008-08-24 19:28 最小系统2\复件 1\1.LST
文件 26474 2008-08-24 19:28 最小系统2\复件 1\1.OBJ
文件 23369 2008-08-24 19:28 最小系统2\复件 1\df
文件 7534 2008-08-24 19:28 最小系统2\复件 1\df.hex
文件 31649 2008-08-24 19:28 最小系统2\复件 1\df.M51
文件 1010 2008-08-25 18:14 最小系统2\复件 1\df.Opt
文件 193 2008-08-25 18:14 最小系统2\复件 1\df.plg
文件 1983 2008-08-24 09:48 最小系统2\复件 1\df.Uv2
文件 1006 2008-08-25 18:11 最小系统2\复件 1\df_Opt.Bak
文件 0 2008-08-24 08:58 最小系统2\复件 1\df_Uv2.Bak
目录 0 2009-08-12 15:09 最小系统2\复件 1
目录 0 2009-08-12 15:09 最小系统2
----------- --------- ---------- ----- ----
531313 16
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- proteus仿真 AT89C51输出各种波形
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
评论
共有 条评论