资源简介
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
相关资源
- 蜂鸣器播放音乐-小星星亮晶晶.rar
- 基于单片机的数字化语音存储与回放
- proteus+8086 IO口读写实现
- Proteus 7.5 sp3 破解文件 v2.1.2
- 24c04系列读写代码
- 分时操作系统在单片机中的实现
- MSP430单片机通过proteus仿真DS18B20程序
- 基于单片机和红外接近开关的图书馆
- 51 单片机 汇编 花样流水灯 经典连续
- 51单片机 RTL8019AS 网卡驱动程序(有
- MSP430g2553单片机实现的输出三路PWM,
- 单片机原理及接口技术 期末考试题
- ds12887+1602显示万年历proteus7.5仿真
- 基于单片机的十字路口红绿灯控制系
- 基于单片机的便携式电子称的设计
- 电子琴----基于Proteus仿真8086.zip
- DS18B20温度传感器的proteus仿真.rar
- 12864LCD无字库proteus仿真).rar
- TLC5615+可调频率正弦波.zip
- TLC5615C+输出三角波+仿真.zip
- 可以录制曲子的八音阶电子琴.pdsprj
- 基于单片机的酒精浓度测试仪的程序
- 源程序 - 副本.rar
- 基于单片机的交通灯控制系统设计程
- 单片机proteus8255A芯片扩展
- 图片提取软件内有教程
- 胡乾斌版单片机课后习题答案
- 基于51单片机的电子表
- 基于51单片机实现简单五子棋
- arduino最小系统pcb文件
评论
共有 条评论