barriers / 阅读 / 详情

请问ATMEGA的各款AVR单片机指令都一样吗??

2023-06-07 09:19:12
TAG: meg atmega
共4条回复
CarieVinne

理论上来说,你如果是做ATMEGA系列的,而且还用C语言,那和51是差不多的,比较大的差别就是端口有点差别

ATMEGA同系列的,唯一的差别可能就是功能上有些差别

比如MEGA有什么SPI传输啊什么的,可能有些就没有,MEGA16的定时器T1有比较中断模式啊,可能MEGA8就没有,的用起来感觉差不多

从逻辑使用上来说,都一样,不过最好备上一个中文说明书,随时查看资源。

nicehost

肯定不一样咯,要么现在怎么流行c,就是因为c的可移植性好,这恰是汇编的一大弊端。51单片机111条指令,avr才一半。

陶小凡

大同小异,

位操作

都是一样的,功能ATmega8515有总线,定时器的

寄存器配置

可能有点不同。8515和ATmega128倒是差不多。

可可

“C语言指令”?纠正一下你的错误,C语言没有“指令”这个说法!

Atmega16单片机和Atmega8515单片机的指令系统是相同的,这点完全确定。

相关推荐

ATMEGA16U2芯片的3脚,28脚的区别

速度和范围。1、ATMEGA16U2芯片的3脚的运行频率和速度会比较慢,而ATMEGA16U2芯片28脚的运行频率和速度相对较快。2、ATMEGA16U2芯片的3脚使用的范围相对较窄,而ATMEGA16U2芯片的28脚适用范围较广。
2023-06-07 04:01:011

ATmega328P与51单片机区别

有区别。ATmega328P属于ATMEL公司生产的AVR系列单片机。
2023-06-07 04:01:081

ATMEGA328P使用内部8MRC振荡器(2015-07-05 19:50:49)

计划做个蓝牙的接收机,用来控制四轴的飞控板。 使用的是ATMEAGE328P,不想再自己实现PWM了,它自带了6通道的PWM。为了能轻一点,没有设计外置晶振,打算用内部的。 板已经打好了,回来一对蓝牙控制板就吐血了,脚画错了。没办法,只能先试试程序了。为了能让Ardunio开发环境支持,参照这个网页,在Ardunio 1.0.4下测试成功 http://forum.arduino.cc/index.php?topic=124879.0 首先用文本编辑器打开arduino-1.0.4hardwarearduinoootloadersoptiboot下的Makefile文件,在标准的atmega328p这段后面,加入下面这段配置: # Standard atmega328, only at 38,400 baud for closer clock accuracy AND using 8Mhz internal RC oscillator # atmega328_384_8: TARGET = atmega328 atmega328_384_8: MCU_TARGET = atmega328p atmega328_384_8: CFLAGS += "-DLED_START_FLASHES=3" "-DBAUD_RATE=38400" atmega328_384_8: AVR_FREQ = 8000000L atmega328_384_8: LDSECTIONS= -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe atmega328_384_8: $(PROGRAM)_atmega328_384_8.hex atmega328_384_8: $(PROGRAM)_atmega328_384_8.lst atmega328_384_8_isp: atmega328 atmega328_384_8_isp: TARGET = atmega328 atmega328_384_8_isp: MCU_TARGET = atmega328p # 512 byte boot, SPIEN atmega328_384_8_isp: HFUSE = DE # Int. RC Osc. 8MHz, slowly rising power-65ms atmega328_384_8_isp: LFUSE = E2 # 2.7V brownout atmega328_384_8_isp: EFUSE = 05 atmega328_384_8_isp: isp 然后打开windows的控制台程序,进入hardwarearduinoootloadersoptiboot文件下 在控制台中输入并回车 omakeatmega328_384_8 这个atmega328_384_8参数指的就是上面定义的支持内部8M RC的HEX文件。 编译完成后,atmega328_384_8.hex就生成好了。 现在用文本编辑器打开arduino-1.0.4hardwarearduino下的board.txt文件,并添加下面这段文字 ############################################################## atmega328_384_8.name=ATmega328 Optiboot @ 38,400baud w/ 8MHz Int. RC Osc. atmega328_384_8.upload.protocol=arduino atmega328_384_8.upload.maximum_size=30720 atmega328_384_8.upload.speed=38400 atmega328_384_8.bootloader.low_fuses=0xE2 atmega328_384_8.bootloader.high_fuses=0xDE atmega328_384_8.bootloader.extended_fuses=0x05 atmega328_384_8.bootloader.path=optiboot atmega328_384_8.bootloader.file=optiboot_atmega328_384_8.hex atmega328_384_8.bootloader.unlock_bits=0x3F atmega328_384_8.bootloader.lock_bits=0x0F atmega328_384_8.build.mcu=atmega328p atmega328_384_8.build.f_cpu=8000000L atmega328_384_8.build.core=arduino atmega328_384_8.build.variant=standard 这样就定好了一个新的板子了。关掉ardunio IDE,再打开,板子列表里面就多了ATmega328 Optiboot @ 38,400baud w/ 8MHz Int. RC Osc.这一项。 选中后测试下烧入bootloader完全没有问题。 至于自己设计的板子,又得重打样了。
2023-06-07 04:01:141

ATmega单片机性能的优越处

ATmega最大的技术优势是它的FLSH技术非常成熟,是其它单片机无法比拟的。
2023-06-07 04:01:224

atmega328p与88pa通用吗

atmega328p与88pa通用ATmega48PA/88PA/168PA/328P的吞吐量接近每兆赫1MIPS,允许系统设计师根据处理速度优化功耗。
2023-06-07 04:01:291

ATmega怎么发音

跟我念:“哎提没嘎”(ei-ti-me-ga)
2023-06-07 04:01:363

atmega328p 5v和3.3v标志区分

就是晶振和工作电压的区别,其他都一样就是ATMEGA328P作为主控芯片,当供给电源VCC=3.3V,晶振8M时就是Arduino pro mini 3.3V板,当供给电源VCC=5V,晶振16M时就是Arduino pro mini 5V板,使用时先下载对应的booloater,然后就可以些相同的程序到这两块不同的板中硬件上两者有区别,看官方的网站,在pro mini这个产品下,有两个购买按钮, 分别指向两个不同的产品页 , 参考以下官网.https://www.arduino.cc/en/Main/ArduinoBoardProMini
2023-06-07 04:01:431

atmega162u和CH340区别

区别如下:ATmega162u:是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。CH340:是一个USB总线转接芯片,作用是实现USB转IrDA红外、USB转串口或USB转打印口。在串口方式下,CH340常被用于提供MODEM联络信号,应用在为计算机扩展异步串口,或将普通的串口通信设备直接升级到USB总线。CH340芯片支持5V电源电压或3.3V电源电压。
2023-06-07 04:01:501

Atmega与ATMEL是什么关系?

Atmega系列Atmel所有产品系列中AVR的一个小系列产品,我们专经销ATMEL产品,你可以BAIDU搜索斐熙电子王明祥雷驰科技王强新华成电子N3B062找我!我对ATMEL技术工程这方面有一定了解!相信可以帮到你!
2023-06-07 04:02:092

ATmega48V-10PI单片机编程

你说的太简单,别人可能帮不了你
2023-06-07 04:02:162

求问atmega系列单片机用什么开发软件好

都是用Atmel公司提供的开发软件最常用的是 AVR Studio 4,果然要用C语言开发还要安装WinAVR。最新的是Atmel Studio 6,可以直接用C语言开发这些软件都是免费的开发仿真软件常用的是Proteus,可以对你的程序进行软件仿真。如果可以帮到你请选择采纳,好吗!
2023-06-07 04:02:411

atmega328和51的区别

ATmega328性能比AT89C51好很多,第一是速度,同样的频率下mega328比89C51快不止10倍。第二,mega328比89C51外设丰富的多,比如定时器,AD转换等。第三,mega328稳定性好,抗干扰强。第四,mega328 I/O驱动灵活,上拉,推免,集电极开路可任意选择。第五,mega328程序空间和寻址能力都大很多,I/O接口也多。还有好多说不完。这两个区别大了,mega是属于AVR单片机,你的是328,还是比较好的AVR,速度快,内置一些常用硬件通讯接口,内置ADDA等,具体参数请查MEGA328的datasheet而89C51就是个最基本最常用学生们都学习的基础单片机,对于单片机入门来讲,算是必修课,实际产品中也常用,但显然比AVR低了一个档次
2023-06-07 04:02:481

atmega168开发需要什么工具

人力资源是企业最宝贵的资源,要实现人力资源有效开发和管理,必须有一支高素质的人力资源管理专业队伍。因此,人力资源管理人员必须具备以下几种素质:思想道德素质。人力资源管理人员应具有较高的马克思主义理论水平和政策水平,把坚定正确的政治方向放在第一位,具有强烈的事业心和责任感,形成崇高的道德品质、高尚的道德情操和道德境界。在人力资源开发与管理中必须严格自律、坚持原则、不徇私情、秉公办事、脚踏实地、兢兢业业、与时俱进、开拓创新、团结协作、干事创业,以广大人民群众的根本利益为切入点,完成历史赋予的神圣职责,为企业可持续发展做出积极的贡献。心理素质。人力资源管理人员应具有较强的心理承受能力,良好的心理健康素质。面对各种压力要意志坚强、不怕压力、无所畏惧,还要心胸开阔、不计个人得失,并能容忍和原谅别人的过失,以良好的心理健康素质面对人和资源开发与管理中可能出现的新情况、新问题。知识素质。人力资源管理人员应具备本体性知识、信息知识、人文知识和实践知识,对企业经营管理活动的主要内容要有所了解和掌握,从而具备较强的政策水平、宽广的业务知识、精湛的理论水平、丰富的实践能力。只有这样才能得到别人的尊重和信任,才能在人力资源有效开发与管理中施展各自的才华,把握时代的脉搏,推动人力资源开发与管理工作的协调发展、整体推进。能力素质。人力资源管理人员应具备的能力主要有管理能力、文字组织能力、语言表达能力、计算机操作能力、外语能力、交流与合作能力、获取和处理信息的能力、学习能力、计算能力、分析和解决问题的能力等。科研素质。人力资源管理人员要加大科研创新力度,坚持不懈地探索和研究,从新的广度和深度上,从新的视角重新审视人力资源管理工作,以新的动力激发起重新研究探讨人力资源管理理论,以先进的理论组织好自己的本职工作,大力实施由经验型向科研型的转变。身体素质。身体是革命的本钱,干好本职工作,必须有健康的身体,要劳逸结合,做到精力充沛、精神饱满、身体健壮,适应人力资源开发与管理这一繁重的工作,承受住各种压力,始终保持旺盛的精力。
2023-06-07 04:02:582

ATmega单片机中的中断INT0与PCINT0有什么区别?

顾名思义:INT0是外部中断请求0引脚,而PCINT0是引脚变化中断请求0。两者不同
2023-06-07 04:03:073

请问ATMEGA AVR单片机内外晶振选择问题??

内部的晶振精度较差,比如说3MHZ和8MHZ它是RC振荡得来的,只在对频率要求不高的场合使用,如果你需要高精度的时钟,比如说计时,做数字钟,就得使用外部晶振。通信场合,要用到串口通信,需要特定的波特率,比如说9600,115200等,当然最好用外部晶振啦。
2023-06-07 04:03:163

atmega8515可以用在51的开发板上吗?我看它们引脚相似。 8515有什么替代单片机?先谢过!

一般是可以的,atmega8515多数情况下是可以在51开发板上仿真,但atmega8515的功能比51要强大的多,由于51开发板能力所限可能有些功能仿真不了。atmega8515是一种过渡IC,新版的AVR单片机引脚没有与之兼容的,但多数AVR的功能是可以替代它,只是要改变引脚。
2023-06-07 04:03:231

请问ATMEGA的各款AVR单片机指令都一样吗??

指令差不多,只是寄存器等有所变化
2023-06-07 04:03:436

atmega 16单片机可以使用串口,并且可以使用软件烧录程序吗

不可以 ATmega16是用SPI烧录程序的
2023-06-07 04:03:562

avr的ATmega2560和2561有什么区别???

区别如图Atmega2560比2561芯片管脚数多,功能更强。
2023-06-07 04:04:042

求教CH340G不能烧写atmega328P,附原理图

这个图最少CH340与单片机的连线是有错误的.正确的连接是CH340的3脚接STC单片机的P3.0引脚CH340的4脚接STC单片机的P3.1引脚就像用一根网线连接两台电脑一样,网线要做成是交叉线,A机的发射要连到B机的接收,A机的接收要连到B机的发射,交叉就是这个意思.
2023-06-07 04:04:211

arduino程序编好了,怎么烧录到自己焊的ATMega328板子上?

有 Arduino IDE吧?找个ISP下载器,用ISP下载的方法,从Arduino IDE里面给328烧写进去对应的bootloader.方法网上有,去DFrobot上找一下,上面说的比较细,bootloader文件不用你找了,在Arduino IDE里下载时,指定型号就要可以了。之后,通过串口与Ardino IDE ,就可以下载程序了。
2023-06-07 04:04:281

Atmega328p-pu和Atmega16有什么区别?

Atmega328p-pu和Atmega16最大的区别是它们的FLSAH容量不同,前者为32KB,后者为16KB,外部中断数也不一样,其余的基本上相同,ATMEGA系列的单片机主要都是FLASH容量不同,以及增加一些功能模块,本质上都是相同的,汇编指令基本上一样,没有什么实质上的区别。
2023-06-07 04:04:351

nano168p和328p区别

FLSAH容量不同,模块功能。1、FLSAH容量不同。nano168p和328p最大的区别是它们的FLSAH容量不同,前者为32KB,后者为16KB。2、模块功能不同。nano328p芯片使用的是Atmega328p,相比nano168p增加了一个有32KB的Flash-Memory闪存,其中的0.5kb是bootloader系统引导占用。ATMEGA系列的单片机主要都是FLASH容量不同,以及增加一些功能模块,本质上都是相同的,汇编指令基本上一样,没有什么实质上的区别。外部中断数也不一样,其余的基本上相同。
2023-06-07 04:04:561

328P-AU和328PB-AU有什么区别

328P-AU和328PB-AU的具体区别如下:一样的东西,只是封装不一样而已。PU的是PDIP20封装,AU的是TQFP32封装。前者是双列直插式封装,后者是薄四侧引脚扁平封装。【328P-AU】328P-AU,一种集成电路 (IC),核心处理器是AVR,闪存容量为32KB。ATMEGA328P-AU型号前几个月有一定程度的上升,但是交易量仍没有太大起色,不少买家还是持观望态度,其原装现货价格较便宜,但存货不多,而进口货价格较高。【328PB-AU】328P-AU,一种集成电路 (IC),核心处理器是AVR,闪存容量为32KB。ATMEGA328P-AU型号前几个月有一定程度的上升。
2023-06-07 04:05:021

STC15W4K32S4.STM32F103C8T6和ATmega328p这三个单片机哪个好?

第一个好应为实用性更好不容易坏
2023-06-07 04:05:379

单片机主控芯片 ATmega8/ATmega48/ATmega88/ATmega168它的那个好一些?

ATmega48
2023-06-07 04:05:563

atmega328p-pu和atmega328p-au有什么区别?哪个好

一样的东西,只是封装不一样而已。PU的是PDIP20封装,AU的是TQFP32封装。前者是双列直插式封装,后者是薄四侧引脚扁平封装。仅此而已。
2023-06-07 04:06:051

atmega328p单片机i/o控制三极管作开关驱动模块工作

yyyyh
2023-06-07 04:06:132

atmega32u4是什么芯片

这个是存储芯片
2023-06-07 04:06:282

ATmega328P定时器1库函数代码,新手看不懂

最简单的就是用 延迟函数控制 8MHZ晶振执行1141条指令就是1MSvoid delay(unsigned int ms){unsigned int i,j;for(i=0;i<ms;i++){for(j=0;j<1141;j++);}}void main(){while(1){DDRA=0x01;PORTA=0x01;delay(2000);PORTA=0x00;delay(2000);} 用定时器的话就是设置好溢出中断
2023-06-07 04:06:351

请教如何ATMEGA48V读出程序把它写入新的ATMEGA48V中

如果你要读的ATMEGA48V没加密的话你可以用一个编程器的读功能,读出内部的FLASH和eeprom内容到缓冲区内,换个新的ATMEGA48V写进去就行了。但是如果你要读的ATMEGA48V有加密那就读不出来了,需要找会解密的人先解密了
2023-06-07 04:06:421

atmega128a中文资料

说的详细一点
2023-06-07 04:06:501

ATmega328P与51单片机区别

有区别。ATmega328P属于ATMEL公司生产的AVR系列单片机。
2023-06-07 04:07:091

单片机中ATmega 128和AT89c51相比较有何优缺点

  ATmega128性能比AT89C51好很多;  第一、速度,同样的频率下mega128比89C51快不止10倍。  第二、mega128比89C51外设丰富的多,比如定时器,AD转换等。  第三、mega128稳定性好,抗干扰强。  第四、mega128 I/O驱动灵活,上拉,推免,集电极开路可任意选择。  第五、mega128程序空间和寻址能力都大很多,I/O接口也多。
2023-06-07 04:07:162

atmega128是否与atmega1280兼容?

1.它们都是Atmel公司的8位RISC高性能单片机,64,128指的是 64K / 128K 字节的系统内可编程Flash,其硬件架构上是一致的。在计时/定时器数量,ADC通道、精度和PWM端口数量,UART口数量等方面会有所不同。性能肯定是atmega128要好。2.ATmega128是ATMEL公司的 8位系列单片机的最高配置的一款单片机,稳定性极高,应用极其广泛。ATmega64是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega64 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
2023-06-07 04:07:221

ATMEGA328P-AU的基本参数:

类别:集成电路 (IC)核心处理器:AVR闪存容量:32KBEEPROM存储器容量:1KB时钟频率:20MHz接口类型:I2C, SPI, USART电源电压最小:1.8V 最大:5.5V电源电压表面安装器件:表面安装封装类型:TQFP针脚数:32工作温度范围:-40°C to +85°C存储器容量, RAM:2KB输入/输出线数:23模数转换器输入数:8速度:20MHz程序存储器容量:32KB (32K x 8)振荡器型:内部包装:托盘
2023-06-07 04:07:291

ATmega单片机中的中断INT0与PCINT0有什么区别?

顾名思义:INT0是外部中断请求0引脚,而PCINT0是引脚变化中断请求0。两者不同
2023-06-07 04:07:411

ATMEGA328P-AU的主要功能:

高性能、低功耗AVR 8位微控制器先进的RISC体系结构高耐力非易失性内存段微控制器的特殊功能上电复位和可编程布朗出检测内部校准的振荡器外部和内部中断源六个睡眠模式:空闲,ADC降噪、电源保存、关闭、待机状态,和待机扩展
2023-06-07 04:07:511

atmega328p是51单片机吗

不是,该单片机属于ATMEL公司生产的AVR系列单片机。
2023-06-07 04:08:051

atmega单片机用什么软件烧录程序

avr stduio 可以编程也可以烧录(需要有仿真器) 还可以用proisp USBISP下载
2023-06-07 04:08:111

ATMEGA2560单片机不能二次烧录求大神指教

实话实说,ATMEGA2560我没用过,但愿意尽我所能帮助你。在第一次通过ISP烧录,能烧录,老化2个小时后,再用USB烧录程序,烧录不进去 ,这是什么原因,芯片绝对是原装正品的,这不可能是芯片的问题吧?是哪方面操作错误了吗?你用烧录软件哪个功能烧录的?如果是自动烧录,是不是擦除芯片没设置?你可以试一下单步操作,就是手动烧录,先擦除,再查空,再烧录,再校验,就应该知道错在哪步了。
2023-06-07 04:08:192

单片机 atmega32a-pu和atmega32-16au可以互换吗?

可以。直接程序就能用,电源引脚好像多了几个地吧,别的都一样。
2023-06-07 04:08:262

atmega 16单片机可以使用串口,并且可以使用软件烧录程序吗

不知道你问的是该单片机是不是能用串口,还是是不是可以用串口烧程序。这样说吧,atmega16单片机是有串口的;它是通过单片机的SPI口烧录程序的(电脑这头是接并口或USB口),烧录时需要配置好熔丝位,不然功能完全不对,本人刚接触AVR单片机时就在这折腾过。本人用的是双龙的下载器,用着还行,如果是XP系统很多款可选,如果是WIN7系统,就必须买2代USB型号(当初也被这折腾过)。希望对你有帮助。
2023-06-07 04:08:451

求问atmega系列单片机用什么开发软件好

1、ICCV7 for AVR2、IAR Embedded Workbench
2023-06-07 04:08:511

AVR ATmega 芯片 AU 什么意思?比如mega128L 8AU等?

ATmega64 TQFP封装现主要有以下型号:ATmega64L-8AU、ATmega64L-8AI、ATmega64-16AU、ATmega64-16AI。 型号标识说明: (1)带“L”与不带“L”的区别:“L”是“Low”的缩写,表示它可以支持低电压,它支持的电压范围为:2.7-5.5V。不带“L”的则表示支持电压范围为:4.5-5.5V。 (2)后缀的数字部分代表MCU可以支持的最高系统时钟,比如ATmega64L-8AU及ATmega64L-8AI指的是可以支持到8MHZ的系统时钟。而,ATmega64-16AU及ATmega64-16AI指的是可以支持到16MHZ的系统时钟。 (3)后缀的第一个字母代表MCU的封装形式,“P”表示DIP封装,“A”表示TQFP封装。比如ATmega64L-8PI说明它是PDIP封装,ATmega64L-8AI说明它是TQFP封装。 (4)后缀的第二个字母代表MCU的应用级别,“C”表示商业级,“I”、“U”表示工业级。比如ATmega64L-8AC带“C”为商业级,ATmega64L-8AI带“I”为工业级。需要说明的是,由于现欧美要求使用无铅IC,所以,ATMEL未来将只推出带“U ”的AVR MCU,它将取代原来带“I”的型号,比如ATmge8L-8AU将取代原来的ATmega64L-8AI
2023-06-07 04:08:592

Atmega1280能否完成浮点运算,一次浮点数乘法大约需要多少个机器周期?

Atmega1280本身不支持浮点运算,但是可以自己编写程序实现浮点运算。本人原先用汇编编写过单精度的浮点乘法程序,好像需要1000个周期以上,如果用C语言,估计还要慢一些。
2023-06-07 04:09:071

8位单片机、16位单片机、32位单片机分别都有哪些?Atmega系列的呢?

八位51AVRMSP430十六位MSP430还有NEC的,型号忘了32位ARM比较流行,也有M32
2023-06-07 04:09:151

有谁能把arduino uno r3的电路原理图各部分讲解一下,谢谢!

最好具体的一部分,有疑问的地方。
2023-06-07 04:09:233

怎样将汇编语言烧录到我的ATMEGA88P中呢?急用,求解。

实话实说,你说的芯片和软件我都没用过,但根据多年工作经验,向芯片内烧录程序烧录的是目标代码,要么是二进制文件要么是十六进制文件,不存在将汇编语言编入ATMEGA88P的问题,试过Aruino来烧,但发现Arduino ide并不支持汇编语言,难道也不能调入目标文件?就算是不能调入目标文件,还是有办法。这个集成开发环境也要建工程?你随便接个工程,芯片就选ATMEGA88P,然后源程序做到最简单,能编译产生目标文件就行。之后退出开发环境,把你那个汇编目标文件更名替换刚才产生的目标文件,在启动开发环境,就骗过去了。
2023-06-07 04:09:381

用Atmega 16单片机做一个8段数码管显示时钟程序设计

#include <delay.h>#include <mega16.h>#define uchar unsigned charuchar lcd[8]={0,0,10,0,0,10,0,0};bit j04_b,j05_b,j06_b,j07_b;uchar dian;uchar s=0;uchar m=0;uchar h=0;char jishu=16;interrupt [TIM0_COMP] void timer0_comp_isr(void){if(--jishu==0){jishu=32;<br>if(s<59)s++;<br>else {s=0;m++;}if(m>59){m=0;h++;}if(h==24)h=0;}}void spi_xie(uchar i,uchar j) { DDRB=0xBF;//选通7219 SPCR=0x5e; //SPI设置 PORTB=PORTB&0xEF; //load_7219=0; SPDR=i; while(SPSR.7==0); //等待SPI发送完 SPDR=j; while(SPSR.7==0); PORTB=PORTB|0X10;//load_7219=1; 结束对7219的传送}void spi_7219c() //7219初始化{ spi_xie(0x0b,0x07); //显示8位 spi_xie(0x0a,0x0f); //亮度调节 spi_xie(0x09,0xff); //每位BCD输入 spi_xie(0x0c,0x01); //工作状态 spi_xie(0x0f,0x00); //非测试}void show_s(uchar sec){lcd[0]=sec%10;<br>lcd[1]=sec/10; <br>spi_xie(2,lcd[1]);<br>spi_xie(1,lcd[0]);<br>}void show_m(uchar min){lcd[3]=min%10;<br>lcd[4]=min/10; <br>spi_xie(5,lcd[4]);<br>spi_xie(4,lcd[3]);<br>}void show_h(uchar hou){lcd[6]=hou%10;<br>lcd[7]=hou/10; <br>spi_xie(8,lcd[7]);<br>spi_xie(7,lcd[6]);<br>}void show_d(uchar n){ uchar j; lcd[j]&=0x7f; for(j=0;j<8;j++) { if(n==j) lcd[j]=lcd[j]+0x80; //加入小数点 spi_xie(j+1,lcd[j]); } //送显示数据到7219 }void main(void){uchar i,ss=0,mm=0,hh=0, aa=0;PORTB=0x00;DDRB=0x00;dian=1;PORTD=0xfe;DDRD=0x0f;TCCR0=0x0D;TCNT0=0x00;OCR0=0xF4;TIMSK=0x02;spi_7219c();j04_b=PIND.4;j05_b=PIND.5;j06_b=PIND.6;for(i=0;i<8;i++)spi_xie(i+1,lcd[i]); while (1){if((j04_b==1&PIND.4==0)&&(aa==0)) {lcd[dian]&=0x7f;<br> if(dian==1||dian==4)dian+=2;else dian++;show_d(dian);if(dian>7)dian=0;}if((j05_b==1&PIND.5==0)&&(aa==0)) switch(dian) {case 0:<br> if(s%10<9)<br> s++;<br> else s=s-9;<br> break;<br> case 1:<br> if(s/10<5)<br> s+=10;<br> else s=s-50;<br> break;<br> <br> case 3:<br> if(m%10<9)<br> m++;<br> else m=m-9;<br> break;<br> case 4:<br> if(m/10<5)<br> m+=10;<br> else m=m-50;<br> break;<br> <br> case 6:<br> if(h/10!=2)<br> {<br> if(h/10<2&&h%10<9)<br> h++;<br> else h=h-9;<br> break;<br> }if(h%10<3&&h/10==2) h+=1; else h=h-3; break; case 7: if(h/10<2) h+=10; else h=h-20; break; }if(aa==0) { if(j06_b==1&PIND.6==0)aa=1; for(i=0;i<8;i++) {lcd[dian]&=0x7f;<br> if(dian==i) lcd[i]= lcd[i]+0x80;<br> spi_xie(i+1,lcd[i]); } }if(aa==1) {#asm("sei") for(i=0;i<8;i++) {lcd[i]&=0x7f;<br> spi_xie(i+1,lcd[i]); } }if(j07_b==1&PIND.7==0) {aa=0;SREG=0x00;lcd[dian]&=0x7f;<br> } j04_b=PIND.4; j05_b=PIND.5; j06_b=PIND.6; j07_b=PIND.7; delay_ms(40); if(s!=ss){show_s(s);ss=s;} if(m!=mm){show_m(m);mm=m;} if(h!=hh){show_h(h);hh=h;} };}
2023-06-07 04:09:461