跳至正文

单片机实战100例详解,单片机实战100例详解4

单片机C语言程序设计实训100例 – – 基于AVR+PROTEUS仿真

单片机C语言程序设计实训100例 - - 基于AVR+PROTEUS仿真

他给你的源程序告诉你用什么运行环境了么!我用的是AVRstudio6.0.打开一个文件的时候,有一个选择单片机的型号.在那里面选中你所用的单片机.之后打开扩展名为.C的文件!如果你的时项目文件,那就直接打开那个项目就可以了!编译之后生成的.hex文件,,用PROTEUS加载就可以进行仿真了!

ADC0804 单片机应用实例

ADC0804 单片机应用实例

CS片选口 wr启动转换 RD转换完成标志位 CLK时钟

单片机C语言程序设计实训100例的介绍

单片机C语言程序设计实训100例的介绍

本书为北京航空航天大学出版社出版,作者为彭伟.本书基于AVR Studio+WinAVR(GCC)组合环境和Proteus硬件仿真平台,精心安排了100个AVR单片机C程序设计案例.全书提供了所有寨例完整的C语言源程序,各案例设计了难易适中的实训目标.本书适合用作大专院校学生学匀实践AVR单片机C语言程序设计技术的参考书,也可用作电子工程技术人员、单片机技术爱好者的学习参考书.

《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 源码

http://wk.baidu.com/view/442c7d0302020740be1e9b15?pn=1&ssid=&from=&bd_page_type=1&uid=bd_1299948998_472&pu=sl@1,pw@1000,sz@225_294,pd@1,fz@2,lp@4,tpl@color,&st=1&wk=rd&maxpage=66

单片机汇编实例代码

;利用中断的99秒计时器 ,动态扫描两位数码管

;P0数据端口

;P2.2表示段码锁存

;P2.3标志位码锁存

LATCH1 BIT P2.2

LATCH2 BIT P2.3

ORG 00H

JMP START

ORG 0BH

JMP TIM0

START:MOV R3,#00 ;中断循环次数 MOV R4,#0 ;时间初值 MOV DPTR,#TABLE MOV SP,#40H MOV TMOD,#01H ;定时器工作方式 MOV TH0,#HIGH(65536-3800) MOV TL0,#LOW(65536-3800) ;初值4MS SETB TR0 MOV IE,#82H ;开中断

TIM0: MOV TH0,#HIGH(65536-3800) MOV TL0,#LOW(65536-3800) INC R3 CJNE R3,#250,X1 ;1S MOV R3,#0 MOV A,R4 ;十进制转换 MOV B,#10 DIV AB MOV 20H,B ; 个位 MOV 21H,A ; 十位 INC R4 CJNE R4,#100,LEDSCAN ;到100则清零 MOV R4,#0

LEDSCAN: CALL SCAN ;调用数码管扫描

X1: PUSH ACC PUSH PSW CALL SCAN POP PSW POP ACC RETI

SCAN: MOV A,21H MOVC A,@A+DPTR MOV P0,A SETB LATCH1 CLR LATCH1 MOV P0,#11111110B ;扫描子程序 SETB LATCH2 CLR LATCH2 CALL DELAY1

MOV A,20H MOVC A,@A+DPTR MOV P0,A SETB LATCH1 CLR LATCH1 MOV P0,#11111101B ;0代表选通该位数码管 SETB LATCH2 CLR LATCH2 CALL DELAY1 RET

DELAY:MOV R5,#50 ;典型延时程序

D1: MOV R6,#40

D2: MOV R7,#248 CALL SCAN DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET

DELAY1:MOV R6,#4 ;扫描延时

D3: MOV R7,#248 DJNZ R7,$ DJNZ R6,D3 RET

TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴字码表

END

单片机C语言程序设计实训100例中24C04的读写问题

so,,,,

急求80C51单片机的应用实例

80C51单片机做电子钟.

单片机C语言应用100例 有电子版吗?

应该有吧 好好百度下 有的只有论坛内部开发 回答完毕

单片机的实例

这是用温度传感器DS18B20采集温度,用继电器控制电热棒进行恒温的装置,我自己做的,希望对你有用。

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit DQ=P1^1; //温度传感器信号线

sbit P24=P2^4; //数码管段选线

sbit P25=P2^5;

sbit P26=P2^6;

sbit P27=P2^7;

sbit s1=P2^0; //按键接口

sbit s2=P2^1;

sbit s3=P2^2;

sbit s4=P2^3;

uint temp=0,temp1=0;

float f_temp;

uchar bai,shi,ge,bai1,shi1,ge1;

uchar n=1,t=0,s=0;

uchar s1num,flag=0,k;

uint e1,e2,p_out,sum_e;

unsigned char code table[]={

0x28,0xEB,0x32,0xA2,0xE1,0xA4,0x24,0xEA,

0x20,0xA0,0x60,0x25,0x3c,0x23,0x34,0x74,0xFF}; //不带小数点和带小数点的编码

void delay(uint m) //毫秒级延迟函数

{

uint x,y;

for(x=m;x>0;x–)

for(y=110;y>0;y–);

}

void dsreset(void) //18B20复位,初始化函数

{

do

{

uint i;

DQ=0;

for(i=70;i>0;i–);//延时564微秒

DQ=1;

i=8;

while(i>0)i–; //延时64微秒

n=DQ;

}while(n==1);

delay(1);

}

bit tempreadbit(void) //读1位函数

{

uint i;

bit dat;

DQ=0;i++; //i++ 起延时作用

DQ=1;

dat=DQ;

i=10;while(i>0)i–;//延时80微妙

return (dat);

}

uint tempread(void) //读1个字节

{

uchar i;

uint j,dat=0;

for(i=1;i<=16;i++)

{

j=tempreadbit();

dat=(j<<15)|(dat>>1); //读出的数据最低位在最前面,这样刚好两个字节在DAT里

}

return(dat);

}

void tempwritebyte(uchar dat) //向18B20写一个字节数据

{

uint i;

uchar j;

bit testb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb) //写 1

{

DQ=0;

i++;i++;

DQ=1;

i=10;while(i>0)i–;

}

else

{

DQ=0; //写 0

i=10;while(i>0)i–;

DQ=1;

//i++;i++;

}

}

}

uint get_temp() //读取寄存器中存储的温度数据

{

dsreset();

delay(1);

tempwritebyte(0xcc); // 写跳过读ROM指令

tempwritebyte(0x44); // 写温度转换指令

dsreset();

tempwritebyte(0xcc);

tempwritebyte(0xbe);

delay(1);

temp=tempread();

f_temp=temp*0.0625; //温度在寄存器中为12位 分辨率位0.0625°

temp=f_temp*10+0.5; //乘以10表示小数点后面只取1位,加0.5是四舍五入

return temp; //temp是整型

}

////////////////////显示程序//////////////////////////

void dis_temp(uchar a,uchar b,uchar c) //数码管的动态显示

{

P25=1;

P26=1;

P27=1;

P24=0;

P0=table[a];

delay(3);

P24=1;

P26=1;

P27=1;

P25=0;

P0=table[b];

delay(3);

P25=1;

P24=1;

P27=1;

P26=0;

P0=table[c];

}

void main()

{

while (1)

{

TMOD=0x11;

TH0=(65536-20000)/256;//定时器装初值

TL0=(65536-20000)%256;

TH1=(65536-20000)/256;

TL1=(65536-20000)%256;

RCAP2H=(65536-50000)/256;

RCAP2L=(65536-50000)%256;

EA=1;

ET0=1;

TR0=0;

ET1=1;

TR1=0;

ET2=1;

TR2=1;

P25=1;

P26=1;

P27=1;

P24=1;

dsreset();

temp=get_temp();

delay(1500);

temp=get_temp();

bai=temp/100;

shi=temp%100/10;

ge=temp%10;

dis_temp(bai,shi,ge);

}

}

求单片机C语言程序设计实训100例基于PIC+Proteus仿真pdf版 是书内容不是光盘程序

下载这个 http://wenku.baidu.com/view/47a19811cc7931b765ce15dd.html