- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机AD转换程序
C8051F系列SOC单片机原理及应用
该DA转换程序目的在于通过扫描键盘的输入讲数字信号转化为模拟信号,包括初始化、延时、扫描键盘输入等模块。
#includec8051f020.h
#includemath.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
#define jpan P1 //定义键盘
float DA_data; //DA数据
unsigned char Dkey;
//晶振初始化
void SysclkInit(void)
{
unsigned int i;
OSCXCN=0x67;
for(i=0;i256;i++);
while(!(OSCXCN0x80));
OSCICN=0x88;
}
//DAC的初始化
void DACInit(void)
{
REF0CN=0x03;
DAC0CN=0x80;(启动方式)
DAC1CN=0x80;
}
//延时
void delay1(int ms)
{
while(ms--)
{
uchar i;
for(i=0;i250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
//键盘扫描
void keyscan(void)
{
uchar temp,key;
jpan=0x0F; //低四位输入
delay1(1);
temp=jpan; //读P3口
temp=temp0x0F;
temp=~(temp|0xF0);
if(temp==1)
key=0;
else if(temp==2)
key=1;
else if(temp==4)
key=2;
else if(temp==8)
key=3;
else
key=16;
jpan=0xF0; //高四位输入
delay1(1);
temp=jpan; //读P3口
temp=temp0xF0;
temp=~((temp4)|0xF0);
if(temp==1)
key=key+0;
else if(temp==2)
key=key+4;
else if(temp==4)
key=key+8;
else if(temp==8)
key=key+12;
else
key=16;
switch(key)
{
case 0 :key=2;break;
case 1 : key=1;break;
case 2 : key=12;break;
case 3 : key=3;break;
case 4 : key=13;break;
case 5 : key=0;break;
case 6 : key=15;break;
case 7 : key=14;break;
case 8 : key=8;break;
case 9 : key=7;break;
case 10 : key=10;break;
case 11 : key=9;break;
case 12 : key=5;break;
case 13 : key=4;break;
case 14 : key=11;break;
case 15 : key=6;break;
default: key=16;
}
if(key==7)
{
DA_data=DA_data+1000;
}
if(key==8)
{
DA_data=DA_data+100;
}
if(key==9)
{
DA_data=DA_data+10;
}
if(key==10)
{
DA_data=DA_data+1;
}
if(key==4)
{
DA_data=DA_data-1000;
}
if(key==5)
{
DA_data=DA_data-100;
}
if(key==6)
{
文档评论(0)