Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Firstly, all programs are written in assembly language, even high level compilers use it, they hide it in libraries so you don't see it but it is still there.
Don't be frightened by assembly language, in many ways it is easier to use than C, Pascal and BASIC. Just remember that you have to break your programming task into the smallest steps possible, each step then becomes a single assembler instruction. You can make very efficient and very small programs by only using the steps you need, most other languages will add extra code to make thier routines 'general purpose' but irrelevant to your program.
I would suggest you pick which type of processor you want to use then look at the manufacturers web site. Download the data sheet and study it carefully. Don't think in terms of your overall project, just concentrate on the individual instructions the IC can do. A good understanding of the instruction set is essential to writing any program. When you have a good idea of what the device can do, see if you can download an assembler program for it. Most manufacturers offer you their own free assemblers and there are many others on the Internet if you search. Most also have simulators so you can try your program without having to use a real IC. Start by doing something very simple, for example making one pin rise and fall repeatedly. This will give you confidence you have configured the processor properly, managed to control the pin and managed to create a program loop. When you know it has the confidence it is running, start adding more code and experimenting with timers and other 'peripherals' inside the IC.