推荐阅读最新更新时间:2024-03-16 16:06
基于32位单片机MC68HC376的高可靠性系统设计
引言 随着工业技术的不断发展,对单片机控制的要求也越来越高,需要单片机具备更高的反应速度和更强的数据处理能力,各种高性能的新型单片机得到了迅猛的发展和应用。单片机上主要是高速的数字信号,弱信号很容易受到外界的电磁干扰,同时,单片机系统也会发生掉电、死循环等问题。在工业控制场合,一旦控制发生错误,将会造成难以估计的损失。因此,如何提高控制的可靠性是长期以来的一个重要问题。本文介绍了应用32位高性能单片机MC68HC376的一种实际开发方案,同时重点讨论了提高系统可靠性的设计和实现方法。 MC68HC376是Motorola公司推出的一种新型的32位高性能单片机,具有极强的数据处理、逻辑运算和信息存储能力,且支持BDM(Backgr
[单片机]
51单片机|8个按键控制8个LED灯实现8种功能
任务描述: S1:LED灯全亮; S2:D1、D3、D5、D7亮,然后D2、D4、D6、D8再亮; S3:D5、D6、D7、D8亮; S4:D1、D2、D3、D4亮; S5:D2、D4、D6、D8亮; S6:D1、D3、D5、D7亮; S7:D3、D4、D7、D8亮; S8:D1、D2、D5、D6亮。 硬件电路图: 程序: #include reg51.h void delay(unsigned char i); void main() { unsigned char ledctr; P3=0xff; while(1) { ledctr=P3; switch(ledctr) { case 0xff:P1
[单片机]
51单片机dds 低频函数信号发生器Proteus仿真程序
单片机源程序如下: #include reg52.h #include lcd1602.h #include delay.h #include pltable.h #include key.h #include adc0832.h void timer0() interrupt 1 { TH0=THtemp; TL0=TLtemp; if(waveform==0) sine_out(); else if(waveform==1) triangle_out(); else if(waveform==2) square_out(); }
[单片机]
基于单片机SH79F168的航模无刷直流电机控制方案
1 概述 无位置传感器的无刷直流电机(Brushless Direct Current Motor, BLDCM)由于其快速、可靠性高、体积小、重量轻等特点,在航模领域得到了广泛的应用。但是与有刷电机和有位置传感器的无刷直流电机相比,其控制算法要复杂得多。加上航模设计中对重量和体积的要求非常严格,因此要求硬件电路尽可能简单,更增加了软件的难度。 本文提出了一种基于中颖8位单片机SH79F168的控制方案,借助于该芯片片内集成的针对电机控制的功能模块,只需很少的外围电路即可搭建控制系统,实现基于反电动势法的无位置传感器BLDC控制,在保证稳定性和可靠性的基础上大大降低了系统成本。而且该芯片与传统8051完全兼容,易于
[单片机]
KEIL单片机C语言精确延时值的计算
关于单片机C语言的精确延时,网上很多都是大约给出延时值没有准确那值是多少,也就没有达到精确高的要求,而51hei给出的本函数克服了以上缺点,能够精确计数出要延时值且精确达到1us,本举例所用CPU为STC12C5412系列12倍速的单片机,只要修改一下参数值其它系例单片机也通用,适用范围宽。 共有三条延时函数说明如下: 函数调用分两级:一级是小于10US的延时,二级是大于10US的延时 // //----------微秒级延时--------- 延时时间=(3+5*X)/12 提示(单位us, X不能大于255) // { uchar data i; for(;Ms 0;Ms--) for(i=
[单片机]
国芯科技:新一代汽车电子域控制MCU产品内测成功
国芯科技11月3日公告,公司研发的新一代汽车电子域控制MCU产品“CCFC2016BC”于近日在公司内部测试中获得成功。 图源:官方 汽车电子域控制芯片产品CCFC2016BC是基于公司自主 PowerPC架构C*Core CPU内核研发的新一代汽车电子域控制芯片,是在已有 CCFC2012BC芯片基础上根据客户需求对功能的进一步增强和完善。
[汽车电子]
51单片机开发中一些常用代码块
数码管中的16个字符 uchar code table ={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; 延时函数(使用之前先声明一遍) void delay(uint); void delay(uint z) { uint x,y; for(x=z;x 0;x--) for(y=110;y 0;y--); } 点亮第一个二级管 #include reg52.h //点亮第一个发光二级管 sbit D1=P1^0;//P1是P1口,P1^0代表D1,D1为自己命名的变量 m
[单片机]
51单片机的4×4键盘识别与74LS164驱动数码显示
;P1口外接4×4键盘,输出使用74LS164驱动一位数码显示器。 ;当按下任一键时,在数码显示器上显示键值。 ;程序用汇编语言编写,用PROTEUS仿真调试的画面如下: ;程序如下: ORG 0000H LJMP START ORG 0030H START: MOV P1, #255 MOV 60H, #16 MAIN: CALL DISPLAY ;SJMP $ M_LOOP: CALL K_SCAN ;扫描程序 JB ACC.4, M_LOOP LJMP MAIN ;--------------------------------------- DISPLAY: MOV
[单片机]