#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar np;
//步进电机运行数据表
const uchar motortb[]={0x11,0x99,0x88,0xCC,0x44,0x66,0x22,0x33};
void delay_nms(uint ms)// 每步延时de子程序
{
uint i;
for(i=0;i _delay_loop_2(8*250);
}
void a_step(uchar d,uchar t) //步进电机走一步d=0 正转d=1 反转 t 越大走得越慢
{
if (d&0x01)
{
if (np==0)
np=7;
else
np--;
}
else
{
if (np==7)
np=0;
else
np++;
}
PORTD=motortb[np];
delay_nms(t);
}
void a_turn(uchar d,uchar t)// 步进电机走一圈
{
uchar i;
for (i=0;i<96;i++)
a_step(d,t);
}
int main(void)
{
DDRD=0xff;
PORTD=0x44;
DDRB=0xff;
PORTB=0xff;
np=4;
while (1)
a_turn(1,200);
}
关键字:ATMEGA8 单片机驱动 4线步进机
引用地址:
ATMEGA8单片机驱动4线步进机C程序
推荐阅读最新更新时间:2024-03-16 15:49
基于Atmega8及MSM7512的嵌入式Modem设计
摘要:介绍了一种基于AVR单片机Atmega8和调制解调芯片MSM7512设计的嵌入式Modem,详细地阐述了Modem的硬件及软件设计方法。在设计中,鉴于单片机串口资源匮乏的问题,采用单片机上I/O模拟UART口的技术予以解决。上位机软件用Delphi语言编写,通过嵌入式Modem实现了计算机与远方设备之间的数据传送。
关键词:嵌入式Modem Atmega8 MSM7512B 模拟串口
随着经济的发展,远程监控系统的应用日益广泛。其核心部分是远程信息交换,即系统需要在地域分布广泛的设备之间进行信息的交换及协调工作。对于某些采集点分散、传输量不大、对速度要求又不高的信息交换系统,目前有两种解决方案:一是采用Internet
[单片机]
stc12c5a60s2单片机驱动舵机程序
#include stc12c5a60s2.H //STC12C5A系列单片机 #define uchar unsigned char #define uint unsigned int //宏定义 #define ulint unsigned long int //宏定义 void delay(uint time); void Timer_init(); void Timer0(unsigned long int us); uint pwm_valu=500; sbit dj=P1^0; void main() { Timer_init(); //定时器初始化 Timer0(31); //通过一个定时值进入定时循环
[单片机]
北京君正:公司MCU主要配合公司LED驱动芯片,目前销量不大
9月13日,北京君正与投资者互动时表示,公司MCU主要配合公司LED驱动芯片,目前销量尚不大。 公开资料显示,北京君正为集成电路设计企业,自成立以来在嵌入式CPU、视频编解码、影像信号处理、神经网络处理器、AI算法等领域持续投入,形成自主创新的核心技术;基于这些核心技术,北京君正推出了微处理器芯片和智能视频芯片两条产品线,并且围绕着这两条产品线,研发了相应的软硬件平台和解决方案,帮助客户快速把产品推向市场。 今年上半年,北京君正各产品线市场需求旺盛,总体营业收入呈快速增长趋势,带动了净利润的持续增长。同时,北京君正因收购产生的存货、固定资产和无形资产等资产评估增值,其折旧与摊销等对北京君正报告期损益的影响金额合计为3,651.1
[手机便携]
atmega8 例程:按键输入检测
/*********************************************************** * 函数库说明:ATMEGE8 按键检测程序 * 版本: v1.0 * ************************************************************ *注意: button C0 * LED C5
[单片机]
用单片机驱动LED数码管显示总结
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。 静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。 硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BC
[单片机]
单片机蜂鸣器控制程序和驱动电路
蜂鸣器从结构区分分为压电式蜂鸣器和电磁式蜂鸣器。压电式为压电陶瓷片发音,电流比较小一些,电磁式蜂鸣器为线圈通电震动发音,体积比较小。 按照驱动方式分为有源蜂鸣器和无源蜂鸣器。这里的有源和无源不是指电源,而是振荡源。有源蜂鸣器内部带了振荡源,如图9-8所示中,给了 BUZZ 引脚一个低电平,蜂鸣器就会直接响。而无源蜂鸣器内部是不带振荡源的,要让他响必须给 500 Hz~4.5 KHz 之间的脉冲频率信号来驱动它才会响。有源蜂鸣器往往比无源蜂鸣器贵一些,因为里边多了振荡电路,驱动发音也简单,靠电平就可以驱动,而无源蜂鸣器价格比较便宜,此外无源蜂鸣器声音频率可以控制,而音阶与频率又有确定的对应关系,因此就可以做出来“do re mi f
[单片机]
ATmega8 掉电模式
当SM2..0 为010 时, SLEEP 指令将使MCU 进入掉电模式。在此模式下,外部晶体停 振,而外部中断、两线接口地址匹配及看门狗(如果使能的话)继续工作。只有外部复 位、看门狗复位、BOD 复位、两线接口地址匹配中断、外部电平中断INT0 或INT1,或 外部中断INT2 可以使MCU 脱离掉电模式。这个睡眠模式停止了所有的时钟,只有异步 模块可以继续工作。 当使用外部电平中断方式将MCU 从掉电模式唤醒时,必须保持外部电平一定的时间。具 体请参见 P 62“ 外部中断” 。 从施加掉电唤醒条件到真正唤醒有一个延迟时间,此时间用于时钟重新启动并稳定下来。 唤醒周期与由熔丝位CKSEL 定义的复位周期是一样的,如
[单片机]
利用单片机I/O口直接驱动LCD
如何将小家电成本降低的同时,又保证其性能,是对应用工程师提出的更高要求。本控制板需要进行温度控制,显示界面要求LCD显示。带专用LCD驱动器,又带A/D转换器的单片机成本太高,因此选用台湾义隆公司带A/D的单片机EM78P259N直接驱动LCD。该款单片机性价比高,性能可靠,很适合在家电控制中应用。
1 LCD简介
目前,市面主流LCD(液晶显示器)分成以下几大类:TN(扭曲阵列型)、STN(超扭曲阵列型)、DSTN(双层超扭曲阵列)、HPA(高性能定址或快速DSTN)、TFT(薄膜场效应晶体管)等。由于成本因素,目前小家电大多数采用的是TN型单色液晶显示器,它的原理是把液晶灌入两个列有细槽的平面之间。这两个平面上的槽互相垂直
[单片机]