【Proteus仿真】ATMEGA16 ADC转化数码管显示
【Proteus仿真】ATMEGA16 ADC转化数码管显示
注意这是
ATMEGA16
AVR型号的单片机,不能在Keil平台上进行开发和编译的。
Proteus仿真
所使用的编译软件
ICCAVR
不懂的可以参考《AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例》
- 型号选择:
- 编译信息
程序源码
//ICC-AVR application builder : 2022/5/14 19:56:22
// Target : M16
// Crystal: 4.0000Mhz#include<iom16v.h>
#define uchar unsigned char
#define uint unsigned intuchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar Data[4]={0,0,0,0};void DelayMs(uint i) //0.25ms
{uchar j;for(;i!=0;i--){for(j=250;j!=0;j--) {;}}
}void Display(uchar *p) //间隔5ms显示
{uchar i,sel=0x01;for(i=0;i<4;i++){PORTD=sel;PORTB=0xff-Table[p[i]];DelayMs(10);sel=sel<<1;}
}uint ADC_Convert(void)
{uint temp1,temp2;temp1=(uint)ADCL;temp2=(uint)ADCH;temp2=(temp2<<8)+temp1;return(temp2);
}void Process(uint i,uchar *p)
{p[0]=i/1000;i=i%1000;p[1]=i/100;i=i%100;p[2]=i/10;i=i%10;p[3]=i;
}void main(void)
{uint i;DDRA=0x00; //设置A口为不带上拉输入;PORTA=0x00;DDRB=0xff; //设置B口为推挽1输出;PORTB=0xff;DDRD=0xff; //设置C口为推挽1输出;PORTD=0xff;PORTB=0x00; //B口初始化输出1;C口初始化输出0;点亮全部数码管;PORTD=0xff;ADMUX=0x01; //选择第二通道ADC1;ADCSR=0xe6; //125K转换速率,自由转换模式;启动AD转换器;DelayMs(3000); //延时待系统稳定;while(1){i=ADC_Convert();Process(i,Data);Display(Data);}
}
程序源码和仿真资源
链接:https://pan.baidu.com/s/1NG1c7U9OG-hYqsbVb8Xakw
提取码:42ko
生活是一件艺术品,每个人都有自己认为最美的一笔,每个人也都有认为不尽如人意的一笔,关键在于你怎样看待。与其整日被庸人自扰的愁闷所困扰,不如以一种顺其自然的态度淡看一切。接受已经发生的事实,是克服随之而来的任何困难的第一步。我们需要的只是一点豁达,让一切都顺其自然吧 |
---|
【Proteus仿真】ATMEGA16 ADC转化数码管显示相关推荐
- 【Proteus仿真】按键设置+数码管显示
[Proteus仿真]按键设置+数码管显示 Proteus仿真 采用的是7位共阴数码管段码作为显示,可以用于移植到所需的其他项目上,作为模板或参考程序来使用,其中包含了按键扫描功能的实现,显示和设置功 ...
- 【Proteus仿真】步进电机转速数码管显示
[Proteus仿真]步进电机转速数码管显示 Proteus仿真 采用4相8拍,数码管显示 40-90速度等级,数字越大,速度越慢. 示例代码 /* Main.c file generated by ...
- 【Proteus仿真】8位数码管动态扫描显示变化数据
[Proteus仿真]8位数码管动态扫描显示变化数据 Proteus仿真 示例代码 /*-----------------------------------------------名称:8位数码管动 ...
- 【Proteus仿真】6位数码管计时器(0-10^5)
[Proteus仿真]6位数码管计时器(0-105) Proteus仿真 仿真难点,如何控制数字显示时不闪屏问题 数码管第一位显示的是100毫秒递增+1的模式,2-6位是每秒计数, 程序源码 /* ...
- 【Proteus仿真】AT24C02数据读写+LCD1602显示
[Proteus仿真]AT24C02数据读写+LCD1602显示 Proteus仿真 程序说明 AT24C02采用的IIC通讯,SCK:P20;SDA:P21 按键K1-K4分别接到P30-P33引脚 ...
- 【Proteus仿真】键盘矩阵扫描+LCD128x64显示
[Proteus仿真]键盘矩阵扫描+LCD128x64显示 Proteus仿真演示 汉字取模工具和取模方式 取模工具:PCtoLCD2002 取模方式:阴码.逆向.列行式.C51格式. 主程序代码 # ...
- 【Proteus仿真】51单片机+DS1302+lcd1602显示
[Proteus仿真]51单片机+DS1302+lcd1602显示 Proteus仿真 工程架构 项目工程 文件结构 主程序代码 #include <reg52.h> #include & ...
- 【Proteus仿真】STC15单片机 + DS1302 + LCD1602显示时间
[Proteus仿真]STC15单片机 + DS1302 + LCD1602显示时间 Proteus仿真 本来想通过轮询方式读取DS1302秒时间的变化来刷新LCD1602显示的,但是这种方式在STC ...
- 【Proteus仿真】51单片机+LCD1602驱动显示模板程序
[Proteus仿真]51单片机+LCD1602驱动显示模板程序 Proteus仿真 范例工程架构 LCD1602相关驱动显示函数 //函数或者变量声明 extern void LCD1602_del ...
最新文章
- 寻找优秀的程序员之实战指南-2
- HDU 2865 Birthday Toy [Polya 矩阵乘法]
- linux kill命令信号,linux kill命令详解
- 延期毕业,只因实验用的鱼被野猫偷吃了………
- hadoop hive hbase 入门学习 (二)
- 告别CNN?计算机视觉也用上Transformer了
- 解读Linux命令格式
- lstm原始论文_RNN及其改版(LSTM, 双向RNN, seq2seq)总结
- 我的Android进阶之旅------解决:debug-stripped.ap_' specified for property 'resourceFile' does not exist....
- 大数据高地,这样炼成!
- 系统休眠(System Suspend)和设备中断处理
- 贪心算法--经典问题(java实现)
- 素数筛(埃氏筛、欧拉筛)
- 从矩阵谱分解到矩形的最少正方形剖分
- lsb算法 matlab隐藏图片算法,数字图像加密算法之空域LSB
- uefi启动服务器系统安装win7系统教程,uefi引导gpt安装win7教程
- 初次面试初生牛犊不怕虎,居然觉得面试就是聊天?
- 流量从“海量”到“僵化”,精细化运营是企业最后一根救命稻草
- 【C语言进阶】③探究浮点数在内存中的存储方式
- Centos7 -samba服务配置
热门文章
- MySQL:查询某年某月的数据
- 2016微软校招笔试题
- 无法连接至服务器用户sa 18456,用户'sa'登录失败(错误18456)解决方案图解
- UVA 11178-Morley's Theorem(计算几何_莫雷定理)
- L016-老男孩Linux高端运维课程-linux系统文件权限体系实战深入讲解
- 手机拍照-基础构图小结
- 刚体的相对运动与机器人连杆的运动
- 阿里云Intel Xeon(Ice Lake) Platinum 8369B服务器CPU性能评测
- 无缝移植J2ME程序到OPhone平台解决方案
- Cris 的 Scala 笔记整理(九):面向对象高级