找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6647|回复: 7
收起左侧

分享简洁51单片机常用子程序

[复制链接]
ID:29336 发表于 2011-6-15 01:12 | 显示全部楼层 |阅读模式

void delayms(int t)//51单片机常用延时子程序 毫秒级延时
{
int i; //声明变量i--内循环变量
int j; //声明变量j--外循环变量
for(j=0;j<t;j++)
{
for (i=0;i<150;i++);//循环加法计算,消耗CPU时间,达到延时的目的
}

}

uchar ADC(void) //adc 子程序, 本程序针对常用并行8位AD芯片ADC0804
{
uchar ADCRes; //声明一个uchar(无符号单字节变量,用于保存AD转换结果)
P0=0xFF;//拉高P0数据总线,为读做准备(51单片机中,读取IO端口时,必须先拉高对应端口)

WR=0;//把ADC0804的WR脚拉低
delayms(1);

WR=1;//把ADC0804的WR脚拉高


delayms(1);//延时1毫秒
RD=0;//把ADC0804的WR脚拉低
delayms(1);//延时1毫秒
ADCRes=P0;//读取AD转换结果到ADCRes变量
delayms(1);//延时1毫秒
RD=1;//拉高ADC0804 RD脚

return ADCRes;//返回AD转换结果
}

void jkc_Dac(void) //dac 子程序,输出阶梯波,本程序采用常用8位DAC芯片--DAC0832
{

uchar i;
P2=0XFF;//拉高P2
DAC_CS=1;//拉高DAC0832片选
DAC_WR=1;//接高DAC0832写

for (i=0;i<25;i++)//25次循环,每次电压增加10/255*Vref(参考电压,这里是5伏)伏,形成阶梯电压
{

P0=i*10;
DAC_CS=0;
DAC_WR=0;
_nop_();
_nop_();
DAC_WR=1;
delayms(1);

}

}

 

完整程序请看附件


分享简洁51单片机常用子程序.rar (91.22 KB, 下载次数: 266)
回复

使用道具 举报

ID:37135 发表于 2012-4-5 16:03 | 显示全部楼层
Thank you
回复

使用道具 举报

ID:35775 发表于 2012-4-5 17:48 | 显示全部楼层
下了先,看看
回复

使用道具 举报

ID:38390 发表于 2012-4-13 10:42 | 显示全部楼层

很好啊,学习一下

回复

使用道具 举报

ID:37005 发表于 2012-4-14 13:38 | 显示全部楼层
谢谢楼猪分享
回复

使用道具 举报

ID:59269 发表于 2014-3-9 13:22 | 显示全部楼层
下载学习
回复

使用道具 举报

ID:42393 发表于 2014-3-17 09:39 | 显示全部楼层
学习一下
回复

使用道具 举报

ID:61326 发表于 2014-5-4 08:22 | 显示全部楼层
谢谢你!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表