单片机设计_单片机设计问题

基于单片机的毕业设计那个相对简单些1、基于单片机控制的电子密码锁设计
2、基于单片机的智能电子钟
3、基于AT89C52智能无线报警器的设计
4、基于单片机的数字秒表设计
5、路灯控制器电路设计
6、数字温度计的设计
7、实用便携式数字温度计电路设计
8、基于单片机的温度控制系统设计
9、单片机串行通信发射部分设计
10、室内照明控制系统设计
11、单片机在ABS系统应用
12、基于单片机的交通灯控制器的设计
13、基于8031单片机的汉字显示设计
14、PWM多路输出开关电源的设计
15、基于温度传感器的空调温控系统的设计
这些题中4.5.10是最简单的题,其实这些应该是课设级别才对 。
做单片机软件设计时 , 都应该考虑哪些事情1.首先要保证实现所需要的各种功能,要做到零故障 , 准确无误,做到零BUG 。
2.其次,凡是需要人工操作的,要做到操作简便,避免可能出现的误操作 , 必须在软件上加以限制 , 做到零错误 。
3.需要显示时,做到显示明确,避免用户误会,应准确显示出系统状态,出现故障时应及时提示和报警 。
4.在软件编写时 , 做到模块化,层次清晰,结构合理 , 易懂易读易移植,利用团队合作完成 。
5.在软件上 , 要有防止干扰的措,加看门狗,防止飞程序,禁止死循环 。
这些是主要几点,对于一个项目 , 一个产品,在研发时,公司会有严密的管理制度和措施,更会有硬件软件的设计要求的,会更详细具体 。
单片机设计看了上边的对话 , 挺有意思的 。有能力就自己做,想让别人做就花点钱,码程序300起步多正常 。
单片机硬件设计需要注意哪些问题(1)存储器扩展:容量需求,在选择时就考虑到单片机的内部存储器资源,如能满足要求就不需要进行扩展,在必须扩展时注意存储器的类型、容量和接口,一般尽量留有余地,并且尽可能减少芯片的数量 。选择合适的方法、ROM和RAM的形式,RAM是否要进行掉电保护等 。
(2)I/O接口的扩展:单片机应用系统在扩展I/O接口时应从体积、价格、负载能力、功能等几个方面考虑 。应根据外部需要扩展电路的数量和所选单片机的内部资源(空闲地址线的数量)选择合适的地址译码方法 。
(3)输入通道的设计:输入通道设计包括开关量和模拟输入通道的设计 。开关量要考虑接口形式、电压等级、隔离方式、扩展接口等 。模拟量通道的设计要与信号检测环节(传感器、信号处理电路等)结合起来,应根据系统对速度、精度和价格等要求来选择.
(4)输出通道的设计:输出通道设计包括开关量和模拟量输出通道的设计 。
(5)人机界面的设计:人机界面的设计包括输入键盘、开关、拨码盘、启/停操作、复位、显示器、打印、指示、报警等
(6)通信电路的设计:单片机应用系统往往作为现场测控设备 , 常与上位机或同位机构成测控网络 。
(7)印刷电路板的设计与制作:电路原理图和印刷电路板的设计常采用专业设计软件进行设计 , 如Protel,OrCAD等 。
(8)负载容限的考虑:单片机总线的负载能力是有限的 。如MCS-51的P0口的负载能力为4mA,最多驱动8个TTL电路 , P1~P3口的负载能力为2mA,最多驱动4个TTL电路 。
(9)信号逻辑电平兼容性的考虑:在所设计的电路中 , 可能兼有TTL和CMOS器件
(10)电源系统的配置:单片机应用系统一定需要电源,要考虑电源的组数、输出功率、抗干扰 。
(11)抗干扰的实施:采取必要的抗干扰措施是保证单片机系统正常工作的重要环节
关于单片机的毕业设计会单片机的,比如参加过竞赛的,一个星期就可以完成毕业设计
什么都不会的 , 除了抄,就是买,要不就来蒙混过关
按您的说法,估计你不太会单片机,这个真的自己做,多向老师同学请教,也至少需要数月吧 。否则作出“实物”,不太现实 。这个过程下来 , 你也可以了解下单片机是什么东西,看你自己愿意在实验室呆几个月 , 还是出去找一个适合自己的工作....
买一个是有钱人的上策!
单片机设计问题【单片机设计_单片机设计问题】#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
bit flag;
uchar cnt;
uint freq;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(void)
{
uchar i,j;
for(i=0;i<5;i++)
for(j=0;j<120;j++);
}
void display(void)
{
uchar dis[5],i;
dis[0]=freq/10000;
dis[1]=freq%10000/1000;
dis[2]=freq%1000/100;
dis[3]=freq%100/10;
dis[4]=freq%10;
for(i=0;i<5;i++)
    {
    P2=1<<i;
    P0=table[dis[i]];
    delay();
    }
}
void main(void)
{
TMOD=0x15;
TH0=0;
TL0=0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET1=1;
EA=1;
while(1)
    {
    display();
    if(flag)
    {
    flag=0;
    TH0=0;
    TL0=0;
    TR1=0;
    TR0=1;
    }
     }
}
void Time_T1(void) interrupt 3//中断计时器1S计算产生的频率 。
{
TH1=(65536-50000)/256;   
TL1=(65536-50000)%256;
cnt++;       //20ms
if(cnt>=20) //时间循环50次为1s
{
cnt=0;
TR0=0;
TR1=0;
freq=TH0*256+TL0;
flag=1;
}
}