毕业论文-基于at89c51单片机的声光控制开关的设计内容摘要:
0=table[shi]。 西北民族大学学士学位论文 —————————————————————————————————————————————— 14 delay(1)。 P2=0xfd。 P0=table[ge]。 delay(1)。 P2=0xfc。 } AD 转换程序 uchar adc0832(unsigned char ch) //AD 转换,返回结果。 { uchar i=0。 uchar j。 uint dat1=0。 uchar dat2=0。 if(ch==0)ch=2。 if(ch==1)ch=3。 adDI=1。 _nop_()。 _nop_()。 adCS=0。 //拉低 CS 端。 _nop_()。 _nop_()。 adCLK=1。 //拉高 CLK 端。 _nop_()。 _nop_()。 adCLK=0。 //拉低 CLK 端 ,形成下降沿 1。 _nop_()。 _nop_()。 adCLK=1。 //拉高 CLK 端。 adDI=champ。 0x1。 _nop_()。 _nop_()。 adCLK=0。 //拉低 CLK 端 ,形成下降沿 2。 _nop_()。 _nop_()。 adCLK=1。 //拉高 CLK 端。 adDI=(ch1)amp。 0x1。 _nop_()。 _nop_()。 adCLK=0。 //拉低 CLK 端 ,形成下降沿 3。 adDI=1。 //控制命令结束。 _nop_()。 西北民族大学学士学位论文 —————————————————————————————————————————————— 15 _nop_()。 dat1=0。 for(i=0。 i8。 i++) { dat1|=adDO。 //收数据。 adCLK=1。 _nop_()。 _nop_()。 adCLK=0。 //形成一次时钟脉冲。 _nop_()。 _nop_()。 dat1=1。 if(i==7)dat1|=adDO。 } for(i=0。 i8。 i++) { j=0。 j=j|adDO。 //收数据。 adCLK=1。 _nop_()。 _nop_()。 adCLK=0。 //形成一次时钟脉冲。 _nop_()。 _nop_()。 j=j7。 dat2=dat2|j。 if(i7)dat2=1。 } adCS=1。 //拉低 CS 端。 adCLK=0。 //拉低 CLK 端。 adDO=1。 //拉 高数据端 ,回到初始状态。 dat1=8。 dat1|=dat2。 return(dat1)。 } 总程序 include include define uint unsigned int define uchar unsigned char uchar temp,aa,bai,shi,ge,tt。 西北民族大学学士学位论文 —————————————————————————————————————————————— 16 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 // //数码管段定义; uchar code table1[]={0xfb,0xfd,0xfe}。 //数码管位定义; sbit open=P3^7。 sbit key1=P1^0。 sbit key2=P1^1。 sbit key3=P1^2。 sbit light=P3^2。 //ADC0832 的引脚。 sbit adCS =P3^1。 //ADC0832 片选。 sbit adDI =P3^3。 //ADC0832 通道选择和初始化输入。 sbit adDO =P3^3。 //ADC0832 的数据输出。 sbit adCLK =P3^0。 //ADC0832 时钟信号。 uchar getdat。 //获取 ADC 转换回来的值。 void display(uchar shi,uchar ge)。 void delay(uint z)。 void keyscan()。 void init()。 uchar adc0832(unsigned char channel)。 //主程序 ; void main() { init()。 //初始化子程序 ; keyscan()。 while(1) { light=1。 //光线初始化为 0。 if(light==0) { getdat=adc0832(1)。 display(temp/10,temp%10)。 //显示数字; if (getdat120) //声音超过 后灯亮。 { shi=temp/10。 //取出十位数字; ge=temp%10。 //取出个位数字; display(shi,ge)。 //显示数字; TR0=1。 //启动定时器 0; if(aa==16) { open=0。 //开启照明灯; aa=0。 temp。 //倒计时; if(temp==1) { 西北民族大学学士学位论文 —————————————————————————————————————————————— 17 temp=0。 open=1。 //关闭照明灯; } } } } } } //延时函数; void delay(uint z) { uint x,y。 for(x=z。 x0。 x) for(y=125。 y0。 y)。 } //显示数码管内容; void display(uchar shi,uchar ge) { P2=0xfe。 P0=table[shi]。 delay(1)。 P2=0xfd。 P0=table[ge]。 delay(1)。 P2=0xfc。 } void init() { TMOD=0x01。 TH0=(6553650000)/256。 //给定时器 T0 的高 8 位赋初值; TL0=(6553650000)%256。 //给定时器 T0 的低 8 位赋初值; EA=1。 //开 cpu 总中断; ET0=1。 //开 T0 中断; TR0=0。 //关闭定时器 0; IE0=1。 //外中断 0 初始化。 IT0=1。 //下降沿触发。 EX0=1。 light=1。 //光线初始化为 0。 } //T0 中断函数。 void timer0() interrupt 1 { 西北民族大学学士学位论文 —————————————————————————————————————————————— 18 TH0=(6553650000)/256。 //赋初值; TL0=(6553650000)%256。 aa++。 } //外中断 0 函数。 void int0() interrupt 0 { light=0。 } //键盘扫描函数。 void keyscan() { if(key1==0) { delay(5)。 //消抖; if(key1==0) //按下 key1 灯亮时间为 10s; { temp=10。 //10s 延时; } } if(key2==0) { delay(5)。 //消抖; if(key2==0) //按下 key2 灯亮时间为 20s; { temp=20。 } } if(key3==0) { delay(5)。 //消抖; if(key3==0) //按下 key3 灯亮时间为 30s; { temp=30。 } } } uchar adc0832(unsigned char ch) //AD 转换,返回结果。 { uchar i=0。 uchar j。 uint dat1=0。 uchar dat2=0。 if(ch==0)ch=2。 西北民族大学学士学位论文 —————————————————————————————————————————————— 19 if(ch==1)ch=3。 adDI=1。 _nop_()。 _nop_()。 adCS=0。 //拉低 CS 端。 _nop_()。 _nop_()。 adCLK=1。 //拉高 CLK 端。 _nop_()。 _nop_()。 adCLK=0。 //拉低 CLK 端 ,形成下降沿 1。 _nop_()。 _nop_()。 adCLK=1。 //拉高 CLK 端。 adDI=champ。 0x1。 _nop_()。 _nop_()。 adCLK=0。 //拉低 CLK 端 ,形成下降沿 2。 _nop_()。 _nop_()。 adCLK=1。 //拉高 CLK 端。 adDI=(ch1)amp。 0x1。 _nop_()。 _nop_()。 adCLK=0。 //拉低 CLK 端 ,形成下降沿 3。 adDI=1。 //控制命令结束。 _nop_()。 _nop_()。 dat1=0。 for(i=0。 i8。 i++) { dat1|=adDO。 //收数据。 adCLK=1。 _nop_()。 _nop_()。 adCLK=0。 //形成一次时钟脉冲。 _nop_()。 _nop_()。 dat1=1。 if(i==7)dat1|=adDO。 } for(i=0。 i8。 i++) { j=0。 西北民族大学学士学位论文 —————————————————————————————————————————————— 20 j=j|adDO。 //收数据。 adCLK=1。 _nop_()。 _nop_()。 adCLK=0。 //形成一次时钟脉冲。 _nop_()。 _nop_()。 j=j7。 dat2=dat2|j。 if(i7)dat2=1。 } adCS=1。 //拉低 CS 端。 adCLK=0。 //拉低 CLK 端。 adDO=1。 //拉高数据端 ,回到初始状态。 dat1=8。 dat1|=dat2。 return(dat1)。 } 本设计的程序是采用 C 语言来编写,并且通过单片机 Proteus 仿真软件对程序进行仿真。 Proteus 软件中的 ISIS 模块是电子系统仿真平台软件,主要完成电路原 理图的绘制与仿真。 硬件仿真图如 41。毕业论文-基于at89c51单片机的声光控制开关的设计
相关推荐
设计 6 3 消防给水系统的特性及原理 给水系统基本特性 给水系统的参数表明了给水的性能。 但各参数之间不是静止孤立的,相互间存在一定的内在联系和变化规律。 这种联系和变化规律可用给水系统的特性曲线直观地反映,主要有扬程特 性曲线和管阻特性曲线。 见图。 水系统的基本特性和工作点扬程特性是以给水系统管路中的阀门开度不变为前提,表明水泵在某一转速下扬程 H 与流量 Q 之间的关系曲线 f( Q)。
位迅速过渡到 32 位、 64 位,并且不断提高运算速度和完善通用操作系统,以突出其高速海量数值运算的能力,在数据处理、模拟仿真、人工智能、图像处理、多媒体、网络通信中得到了广泛应用;单片机作为最典型的嵌入式系统,由于其微小的体积和极低的成本,广泛应用于 家用电器、机器人、仪器仪表、工业控制单元、办公自动化设备以及通信产品中,成为现代电子系统中最重要的智能化工具。 因此
图 音频处理模块电路原理图 电源模块电路原理图 由于本次设计的芯片的工作电压都为 5V,为了排除因为电压不稳定或者不准确影响电路的工作和软件的调试,本次设计单独用 LM7805 设计了一个输出 5V 的电压的电路,如图311 所示 ,其中 J0 为一变压器插排接口,输出电压在 ,为交流电压,经过整流桥进行整流,电容滤波,再经过 LM7805 稳压后,得到本次设计所需的 5V 直流电源。 XXX
电压随温度变化的关系了。 数字式电阻温度计设计工作的主要内容就是把热敏电阻两端的电压值经 A/D(模拟量转化为数字量)转换 为数字量,然后通过软件方法计算得到温度值,再进行显示等处理。 图 26 热敏 amp。 光敏传感器电路原理图 如图 26所示为开发板上的原理图, R39 为热敏电阻 ,AD 转换器采集 RT 处的电压值,再 15 通过软件处理得到温度值。 光敏敏传感器
在库存管理中,上架可以增加库存,而补货则可以减少库存。 通过有效的补货作业管 理,能够帮助企业减少库存,从而降低库存成本。 如何 确定准确的订货量对企业库存进行补货,保证企业在库存成本与缺货成本之间需求的平衡,对企业剩余空间的大小有着直接的影响。 拣货作业管理 在物流中心内部的所有作业中,拣货是十分重要的作业环节它是整个物流配送系统的核心。 在物流中心搬运成本中,拣货作业搬运成本约占 90%
广东 XX 大学 2020 届 毕业论文 基于 Android 手机天气预报系统 X 同学 11 第 五 章 掌上手上天气预报系统 程序设计 用户界面设计 根据需求分析可以知道,应用程序应包含三个主要的用户界面,这里需要进一步分析每个用户界面中应该包括哪些显示内容。 在“设置页面”中,需要对要显示天气预报的城市及更新频率进行设置。 在“显示页面”中,显示当前的天气状况,包括城市名称、温度、湿度