【Proteus仿真】ATMEGA16 ADC转化数码管显示


注意这是ATMEGA16AVR型号的单片机,不能在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转化数码管显示相关推荐

  1. 【Proteus仿真】按键设置+数码管显示

    [Proteus仿真]按键设置+数码管显示 Proteus仿真 采用的是7位共阴数码管段码作为显示,可以用于移植到所需的其他项目上,作为模板或参考程序来使用,其中包含了按键扫描功能的实现,显示和设置功 ...

  2. 【Proteus仿真】步进电机转速数码管显示

    [Proteus仿真]步进电机转速数码管显示 Proteus仿真 采用4相8拍,数码管显示 40-90速度等级,数字越大,速度越慢. 示例代码 /* Main.c file generated by ...

  3. 【Proteus仿真】8位数码管动态扫描显示变化数据

    [Proteus仿真]8位数码管动态扫描显示变化数据 Proteus仿真 示例代码 /*-----------------------------------------------名称:8位数码管动 ...

  4. 【Proteus仿真】6位数码管计时器(0-10^5)

    [Proteus仿真]6位数码管计时器(0-105) Proteus仿真 仿真难点,如何控制数字显示时不闪屏问题   数码管第一位显示的是100毫秒递增+1的模式,2-6位是每秒计数, 程序源码 /* ...

  5. 【Proteus仿真】AT24C02数据读写+LCD1602显示

    [Proteus仿真]AT24C02数据读写+LCD1602显示 Proteus仿真 程序说明 AT24C02采用的IIC通讯,SCK:P20;SDA:P21 按键K1-K4分别接到P30-P33引脚 ...

  6. 【Proteus仿真】键盘矩阵扫描+LCD128x64显示

    [Proteus仿真]键盘矩阵扫描+LCD128x64显示 Proteus仿真演示 汉字取模工具和取模方式 取模工具:PCtoLCD2002 取模方式:阴码.逆向.列行式.C51格式. 主程序代码 # ...

  7. 【Proteus仿真】51单片机+DS1302+lcd1602显示

    [Proteus仿真]51单片机+DS1302+lcd1602显示 Proteus仿真 工程架构 项目工程 文件结构 主程序代码 #include <reg52.h> #include & ...

  8. 【Proteus仿真】STC15单片机 + DS1302 + LCD1602显示时间

    [Proteus仿真]STC15单片机 + DS1302 + LCD1602显示时间 Proteus仿真 本来想通过轮询方式读取DS1302秒时间的变化来刷新LCD1602显示的,但是这种方式在STC ...

  9. 【Proteus仿真】51单片机+LCD1602驱动显示模板程序

    [Proteus仿真]51单片机+LCD1602驱动显示模板程序 Proteus仿真 范例工程架构 LCD1602相关驱动显示函数 //函数或者变量声明 extern void LCD1602_del ...

最新文章

  1. 寻找优秀的程序员之实战指南-2
  2. HDU 2865 Birthday Toy [Polya 矩阵乘法]
  3. linux kill命令信号,linux kill命令详解
  4. 延期毕业,只因实验用的鱼被野猫偷吃了………
  5. hadoop hive hbase 入门学习 (二)
  6. 告别CNN?计算机视觉也用上Transformer了
  7. 解读Linux命令格式
  8. lstm原始论文_RNN及其改版(LSTM, 双向RNN, seq2seq)总结
  9. 我的Android进阶之旅------解决:debug-stripped.ap_' specified for property 'resourceFile' does not exist....
  10. 大数据高地,这样炼成!
  11. 系统休眠(System Suspend)和设备中断处理
  12. 贪心算法--经典问题(java实现)
  13. 素数筛(埃氏筛、欧拉筛)
  14. 从矩阵谱分解到矩形的最少正方形剖分
  15. lsb算法 matlab隐藏图片算法,数字图像加密算法之空域LSB
  16. uefi启动服务器系统安装win7系统教程,uefi引导gpt安装win7教程
  17. 初次面试初生牛犊不怕虎,居然觉得面试就是聊天?
  18. 流量从“海量”到“僵化”,精细化运营是企业最后一根救命稻草
  19. 【C语言进阶】③探究浮点数在内存中的存储方式
  20. Centos7 -samba服务配置

热门文章

  1. MySQL:查询某年某月的数据
  2. 2016微软校招笔试题
  3. 无法连接至服务器用户sa 18456,用户'sa'登录失败(错误18456)解决方案图解
  4. UVA 11178-Morley's Theorem(计算几何_莫雷定理)
  5. L016-老男孩Linux高端运维课程-linux系统文件权限体系实战深入讲解
  6. 手机拍照-基础构图小结
  7. 刚体的相对运动与机器人连杆的运动
  8. 阿里云Intel Xeon(Ice Lake) Platinum 8369B服务器CPU性能评测
  9. 无缝移植J2ME程序到OPhone平台解决方案
  10. Cris 的 Scala 笔记整理(九):面向对象高级