单片机课程设计报告-基于单片机的模数转换及pwm波形发生器(编辑修改稿)内容摘要:
14 参考文献 : [1] 李群芳等 .单片微型计算机与接口技术 .[M]北京:电子工业出版社 , [2] 谢辉 .单片机原理及应用 .[M]北京:化学工业出版社 , [3] 周向红 .51 系列单片机应用与实践教程 .[M]北京:北京航空航天大学出版社, 2020 [4] 谭浩强 .C 语言程序设计 .第 2 版 .北京: 清华大学 出版社, [5] 李光飞,楼然苗等 .单片机课程设计实例指导 .北京:清华大学出版社, 2020 [6] 何利民 .I178。 C总线应用系统设计 . 北京:机械工业出版社, 2020 [7] [8] [9] 15 附录 A 程序清单 延时子程序清单: include /* uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是 定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ,大致延时长度如下 T=tx2+5 uS */ void DelayUs2x(unsigned char t) { while(t)。 }/*mS 延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振 12M,精确延时 使用汇编 */ void DelayMs(unsigned char t) { while(t) { //大致延时 1mS DelayUs2x(65535)。 DelayUs2x(65535)。 } } 显示、定时器初始化及中断子函数清单 include include define DataPort P0 //定义数据端口 程序中遇到 DataPort 则用 P0 替换 //sbit LATCH1=P2^0。 //定义锁存使能端口 段锁存 //sbit LATCH2=P2^3。 // 位锁存 16 unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 // 显示段码值 0~9 unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。 //分别对应相应的数码管点亮 ,即位码 unsigned char TempData[8]。 //存储显示值的全局变量 /* 显示函数,用于动态扫描数码管 输入参数 FirstBit 表示需要显示的第一位,如赋值 2 表示从第三个数码管开始显示 如输入 0 表示从第一个显示。 Num 表示需要显示的位数,如需要显示 99 两位数值则该值输入 2 */ void Display(unsigned char FirstBit,unsigned char Num) { static unsigned char i=0。 DataPort=0。 //清空数据,防止有交替重影 LATCH1=1。 //段锁存 LATCH1=0。 DataPort=dofly_WeiMa[i+FirstBit]。 //取位码 LATCH2=1。 //位锁存 LATCH2=0。 DataPort=TempData[i]。 //取显示数据,段码 LATCH1=1。 //段锁存 LATCH1=0。 i++。 if(i==Num) 17 i=0。 } /* 定时器初始化子程序 */ void Init_Timer0(void) { TMOD |= 0x01。 //使用模式 1, 16 位定时器,使用 |符号可以 在使用多个定时器时不受影响 //TH0=0x00。 //给定初值 //TL0=0x00。 EA=1。 //总中断打开 ET0=1。 //定时器中断打开 TR0=1。 //定时器开关打开 } /* 定时器中断子程序 */ void Timer0_isr(void) interrupt 1 { TH0=(655362020)/256。 //重新赋值 2ms TL0=(655362020)%256。 Display(0,8)。 } 18 I178。 C 协议子程序 : include include define _Nop() _nop_() //定义空指令 bit ack。 //应答标志位 sbit SDA=P2^1。 sbit SCL=P2^0。 /* 启动总线。单片机课程设计报告-基于单片机的模数转换及pwm波形发生器(编辑修改稿)
相关推荐
T1 设置为定时方式,且定时时间为 1s。 计数器 T0 设置为外部脉冲计数工作方式,设在 1s 内测量的脉冲个数为 n,再将 n 乘上 60 即是转速( 分 /转)。 根据设计要求和设计思路,本系统由 AT89C51 单片机, LED 显示电路,时钟与复位电路以及独立式按键五个部分组成。 系统硬件框图如图22 所示。 9 图 22 系统框图 LED 显 示器 驱动电路 AT89C51 单片机
D+ d3 Δ2 8~10 D2 D0+(~3) d3 b 8~10 D4 (~)D h (~1)b 16 不带 O 型密封圈 带 O 型密封圈 D(f9) 40~80 35~110 115~170 D封 40 45 50 55 60 63 65 68 70 75 80 85 E2(h11) 5 6 8 d封 35 40 45 50 55 58 60 63 65 70 75 80 S 10 12
虑各个支路的情况,设置了一个压力继电器 1XJ,三个挡铁行程开关 XKXK XK3,其中压力继电器 1XJ 控 制整个系统的压力,当液压缸工作压力达到预定值时,压力继电器 1XJ 发出电气控制信号,电磁铁 2DT 断电,电液换向阀 6复中位,液压缸进回液腔封闭,液压系统卸荷。 合成后的液压系统如图 32 所示: 图 32 单缸液压压力机液压系统原理图 毕业论文 14 1— 主液压泵 ; 2—
TL1 TH0 TH1 AUXR 8FH 80H P0 SP DP0L DP0H DP1L DP1H PCON 87H 在表 中,对于没有定义的存储单元用户不能使用。 如果向这些存储单元写入数据将产生不确定的效果,从它们读取数据将得到一个随机 数。 对于字节地址低位为 8H 或者 FH的特殊功能存储器,既可以进行字节操作,也可以进行位操作。
12M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。 正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为 12。 设置对话框中的 OutPut 页面,如图 所示,这里面也有多个选择项,其中 Creat Hex file 用于生成可执行代码文件(可以用 编程器 写入单片机芯片的
MOV C, JC L2 STOP1: MOV C,。 = 0 时转移 JNC STOP1 LCALL DELAY1。 延时 MOV C, JNC STOP1 MOV 50H,00H LJMP MAIN。 设置闹钟。 SETATIME:LCALL DISPLAY2。 调用 DISPLAY2 显示闹钟 N0: LCALL DISPLAY2 MM2: JB ,N1。 =1 时转移 MOV C, JC