资源简介
使用C语言编写利用AT89C52单片机和ADC0809芯片实现的AD模数转换实验,内含proteus仿真和keil4的项目,供学习实验参考

代码片段和文件信息
#include
#include
#include
#include
#include
//0809地址锁存
sbit ADDC=P1^6;
sbit ADDB=P1^5;
sbit ADDA=P1^4;
sbit CLK=P1^3; //clock
sbit ST=P1^2; //start (转换启动信号)
sbit EOC=P1^1; //end of conversion (转换结束信号)
sbit OE=P1^0; //output enable (输出允许信号用于)
//0~9
unsigned char code SEG7[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x00};
/*
* 延时
*
* @param x 时间(不精确)
* @return
*/
void delay_ms(int i)
{
int j=0;
while(i--)
{
for(j=0;j<120;j++);
}
}
/*
* 显示函数
*
* @param ADx AD转换过后的八位数值
* @return
*/
void display(unsigned char ADx)
{
int AD = ADx*500.0/255.0;
P2=0xFD; P0=SEG7[AD/100]; delay_ms(5);//1111_1101 -> P2^1
P2=0xFB; P0=SEG7[(AD/10)%10]; delay_ms(5);//1111_1011 -> P2^2
P2=0xF7; P0=SEG7[AD%10]; delay_ms(5);//1111_0111 -> P2^3
}
/*
* 初始化
*
* @return
*/
void init()
{
// ABC=110选择第三通道
ADDC=0;
ADDB=1;
ADDA=1;
CLK=0;
ST=1; //内部寄存器清零
EOC=1; // 转换结束(未开始)
OE=0;
}
/*
* 中断
*
* @return
*/
void t0() interrupt 1
{
CLK=!CLK;
}
//主函数
void main()
{
init();
//TMOD定时器
TMOD=0x02; //0000_0010 8位 0~255
TH0=200;
TL0=200;
EA=1; // 总中断开关置高
ET0=1; // T0定时器总中断开关置高
TR0=1; // 启动T0的开定时器位置高
while(1)
{
ST=0;_nop_();ST=1;_nop_();ST=0;
while(EOC==0);
OE=1;
display(P3);
OE=0;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-05-30 15:44 AD模数转换实验0809\keil4工程\
文件 8365 2020-05-24 10:54 AD模数转换实验0809\keil4工程\ADC0809P
文件 3002 2020-05-24 10:54 AD模数转换实验0809\keil4工程\ADC0809P.hex
文件 46 2020-05-24 10:54 AD模数转换实验0809\keil4工程\ADC0809P.lnp
文件 8760 2020-05-24 10:54 AD模数转换实验0809\keil4工程\ADC0809P.M51
文件 184 2020-05-30 15:44 AD模数转换实验0809\keil4工程\ADC0809P.plg
文件 55656 2020-05-30 15:44 AD模数转换实验0809\keil4工程\ADC0809P.uvopt
文件 13402 2020-05-24 01:41 AD模数转换实验0809\keil4工程\ADC0809P.uvproj
文件 55650 2020-05-24 12:48 AD模数转换实验0809\keil4工程\ADC0809P_uvopt.bak
文件 13767 2020-05-24 01:19 AD模数转换实验0809\keil4工程\ADC0809P_uvproj.bak
文件 1482 2020-05-24 10:54 AD模数转换实验0809\keil4工程\mainX.c
文件 4043 2020-05-24 10:54 AD模数转换实验0809\keil4工程\mainX.LST
文件 7166 2020-05-24 10:54 AD模数转换实验0809\keil4工程\mainX.OBJ
文件 6376 2020-05-24 01:19 AD模数转换实验0809\keil4工程\STARTUP.A51
文件 14061 2020-05-24 10:54 AD模数转换实验0809\keil4工程\STARTUP.LST
文件 749 2020-05-24 10:54 AD模数转换实验0809\keil4工程\STARTUP.OBJ
目录 0 2020-05-30 15:43 AD模数转换实验0809\proteus仿真\
目录 0 2020-05-30 15:41 AD模数转换实验0809\proteus仿真\proteus2\
文件 3002 2020-05-24 10:54 AD模数转换实验0809\proteus仿真\proteus2\ADC0809P.hex
文件 19632 2020-05-30 15:41 AD模数转换实验0809\proteus仿真\proteus2\ADC0809模数转换与显示.pdsprj
文件 2199 2020-05-30 15:41 AD模数转换实验0809\proteus仿真\proteus2\ADC0809模数转换与显示.pdsprj.DESKTOP-OC16VVM.hope and freedom.workspace
文件 19641 2020-05-24 11:08 AD模数转换实验0809\proteus仿真\proteus2\Backup Of ADC0809模数转换与显示.pdsbak
文件 19658 2020-05-24 11:49 AD模数转换实验0809\proteus仿真\proteus2\Last Loaded ADC0809模数转换与显示.pdsbak
- 上一篇:算法竞赛入门经典 第2版 -刘汝佳清晰非扫描版
- 下一篇:C语言考研真题汇编
相关资源
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
- 算符优先语法分析器(C语言编写)
- 基于C语言的密码锁程序
评论
共有 条评论